wiki-graph-sdk 0.8.0 → 0.8.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.
- package/README.md +21 -0
- package/dist/archives.cjs +91 -17
- package/dist/archives.cjs.map +1 -1
- package/dist/archives.d.ts +8 -2
- package/dist/archives.js +92 -17
- package/dist/archives.js.map +1 -1
- package/dist/conversions.cjs +23 -5
- package/dist/conversions.cjs.map +1 -1
- package/dist/conversions.d.ts +6 -1
- package/dist/conversions.js +23 -5
- package/dist/conversions.js.map +1 -1
- package/dist/default-worker.cjs +34 -11
- package/dist/default-worker.cjs.map +1 -1
- package/dist/default-worker.d.ts +1 -0
- package/dist/default-worker.js +34 -11
- package/dist/default-worker.js.map +1 -1
- package/dist/embedding.cjs +2 -1
- package/dist/embedding.cjs.map +1 -1
- package/dist/embedding.d.ts +4 -4
- package/dist/embedding.js +2 -1
- package/dist/embedding.js.map +1 -1
- package/dist/index.cjs +336 -46
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +26 -9
- package/dist/index.js +337 -47
- package/dist/index.js.map +1 -1
- package/dist/{jobs-xIm_kshM.d.ts → jobs-CRK-DZ40.d.ts} +5 -0
- package/dist/local-config.cjs +2 -1
- package/dist/local-config.cjs.map +1 -1
- package/dist/local-config.js +2 -1
- package/dist/local-config.js.map +1 -1
- package/dist/maintenance.cjs +2 -1
- package/dist/maintenance.cjs.map +1 -1
- package/dist/maintenance.d.ts +4 -1
- package/dist/maintenance.js +2 -1
- package/dist/maintenance.js.map +1 -1
- package/dist/runtime-config.cjs +4 -3
- package/dist/runtime-config.cjs.map +1 -1
- package/dist/runtime-config.d.ts +4 -1
- package/dist/runtime-config.js +4 -3
- package/dist/runtime-config.js.map +1 -1
- package/dist/stage-BnWI3Rqt.d.ts +33 -0
- package/dist/stage.cjs +22 -12
- package/dist/stage.cjs.map +1 -1
- package/dist/stage.d.ts +2 -14
- package/dist/stage.js +22 -12
- package/dist/stage.js.map +1 -1
- package/dist/worker.cjs +2 -1
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.js +2 -1
- package/dist/worker.js.map +1 -1
- package/package.json +2 -2
package/dist/archives.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { ChapterEntry, IndexArtifactKind, ReadonlyDocument, WikiGraphProgressCallback, QueryIndexScope, ArchiveFindOptions, ArchiveFindResult, ArchiveCollectionOptions, ArchiveCollectionResult, ArchiveSourceLocatorResult, readSearchIndexCapabilityStatus, rebuildArchiveSearchIndex, ChapterDetails, ChapterStage, setChapterSource, setChapterTitle, ChapterTree, applyChapterTree, ChapterTreeApplyResult, ArchivePage, ArchiveRelatedResult, ArchiveEvidence, ArchivePack, BookMeta } from 'wiki-graph-core';
|
|
2
|
-
import { W as WikiGraphJobRuntime } from './jobs-
|
|
1
|
+
import { ChapterEntry, IndexArtifactKind, ReadonlyDocument, WikiGraphProgressCallback, SearchIndexQueryMode, QueryIndexScope, ArchiveFindOptions, ArchiveFindResult, ArchiveCollectionOptions, ArchiveCollectionResult, ArchiveSourceLocatorResult, readSearchIndexCapabilityStatus, rebuildArchiveSearchIndex, ChapterDetails, ChapterStage, setChapterSource, setChapterTitle, ChapterTree, applyChapterTree, ChapterTreeApplyResult, ArchivePage, ArchiveRelatedResult, ArchiveEvidence, ArchivePack, BookMeta } from 'wiki-graph-core';
|
|
2
|
+
import { W as WikiGraphJobRuntime } from './jobs-CRK-DZ40.js';
|
|
3
3
|
import { W as WikiGraphArchiveTarget } from './target-CZ7elwmj.js';
|
|
4
4
|
export { a as WikiGraphArchiveOwnershipError } from './target-CZ7elwmj.js';
|
|
5
|
+
import './default-worker.js';
|
|
6
|
+
import './runtime-config.js';
|
|
7
|
+
import 'zod';
|
|
5
8
|
|
|
6
9
|
interface WikiGraphArchiveIndexArtifactInspection {
|
|
7
10
|
readonly current: boolean;
|
|
@@ -128,6 +131,7 @@ interface WikiGraphArchiveRelatedOptions extends WikiGraphOperationOptions {
|
|
|
128
131
|
readonly limit?: number;
|
|
129
132
|
readonly order?: "doc-asc" | "doc-desc";
|
|
130
133
|
readonly query?: string;
|
|
134
|
+
readonly queryMode?: SearchIndexQueryMode;
|
|
131
135
|
readonly role?: "any" | "object" | "self" | "subject";
|
|
132
136
|
readonly skipUnindexed?: boolean;
|
|
133
137
|
readonly sourceContext?: number;
|
|
@@ -137,6 +141,7 @@ interface WikiGraphArchiveEvidenceOptions extends WikiGraphOperationOptions {
|
|
|
137
141
|
readonly limit?: number;
|
|
138
142
|
readonly order?: "doc-asc" | "doc-desc";
|
|
139
143
|
readonly query?: string;
|
|
144
|
+
readonly queryMode?: SearchIndexQueryMode;
|
|
140
145
|
readonly skipUnindexed?: boolean;
|
|
141
146
|
readonly sourceContext?: number;
|
|
142
147
|
}
|
|
@@ -200,6 +205,7 @@ declare class WikiGraphArchiveHandle {
|
|
|
200
205
|
getMetadata(objectPath: string, options?: WikiGraphOperationOptions): Promise<Readonly<Record<string, unknown>>>;
|
|
201
206
|
readBookMeta(options?: WikiGraphOperationOptions): Promise<BookMeta | undefined>;
|
|
202
207
|
replaceBookMeta(meta: BookMeta, options?: WikiGraphArchiveWriteOptions): Promise<BookMeta>;
|
|
208
|
+
setArchiveTitle(title: string | null, options?: WikiGraphArchiveWriteOptions): Promise<string | null>;
|
|
203
209
|
readCover(options?: WikiGraphOperationOptions): Promise<WikiGraphArchiveCover | undefined>;
|
|
204
210
|
replaceMetadata(objectPath: string, value: Readonly<Record<string, unknown>>, options?: WikiGraphArchiveWriteOptions): Promise<Readonly<Record<string, unknown>>>;
|
|
205
211
|
putMetadata(objectPath: string, key: string, value: unknown, options?: WikiGraphArchiveWriteOptions): Promise<Readonly<Record<string, unknown>>>;
|
package/dist/archives.js
CHANGED
|
@@ -11,6 +11,7 @@ import { Readable as Readable2 } from "stream";
|
|
|
11
11
|
import {
|
|
12
12
|
addChapter,
|
|
13
13
|
applyChapterTree,
|
|
14
|
+
assertArchiveIndexArtifactsReady,
|
|
14
15
|
assertNoActiveBuildJobConflicts,
|
|
15
16
|
assertNoActiveBuildJobs,
|
|
16
17
|
deleteArchiveSearchSessions,
|
|
@@ -832,12 +833,16 @@ function getWikiGraphSDKRuntimeContext() {
|
|
|
832
833
|
return runtimeContext.getStore() ?? {
|
|
833
834
|
cwd: process.cwd(),
|
|
834
835
|
env: process.env,
|
|
835
|
-
envPolicy: "production"
|
|
836
|
+
envPolicy: "production",
|
|
837
|
+
providers: {}
|
|
836
838
|
};
|
|
837
839
|
}
|
|
838
840
|
function getWikiGraphSDKStateDir() {
|
|
839
841
|
return getWikiGraphSDKRuntimeContext().stateDir;
|
|
840
842
|
}
|
|
843
|
+
function getWikiGraphSDKProviders() {
|
|
844
|
+
return getWikiGraphSDKRuntimeContext().providers ?? {};
|
|
845
|
+
}
|
|
841
846
|
|
|
842
847
|
// src/local-config.ts
|
|
843
848
|
import { join as join2 } from "path";
|
|
@@ -1055,8 +1060,8 @@ var inlineLLMConfigSchema = z.object({
|
|
|
1055
1060
|
});
|
|
1056
1061
|
async function loadWikiGraphRuntimeConfig(options) {
|
|
1057
1062
|
const [embedding, localLLM, concurrent, wikimedia, wikispine] = await Promise.all([
|
|
1058
|
-
readLocalConfigSection("embeddings"),
|
|
1059
|
-
readLocalConfigSection("llm"),
|
|
1063
|
+
options?.skipEmbeddingConfig === true ? Promise.resolve({}) : readLocalConfigSection("embeddings"),
|
|
1064
|
+
options?.skipLLMConfig === true ? Promise.resolve({}) : readLocalConfigSection("llm"),
|
|
1060
1065
|
readLocalConfigSection("concurrent"),
|
|
1061
1066
|
readLocalConfigSection("wikimedia"),
|
|
1062
1067
|
readLocalConfigSection("wikispine")
|
|
@@ -1252,6 +1257,14 @@ function formatError2(error) {
|
|
|
1252
1257
|
return error instanceof Error ? error.message : String(error);
|
|
1253
1258
|
}
|
|
1254
1259
|
|
|
1260
|
+
// src/providers.ts
|
|
1261
|
+
function resolveWikiGraphLLMJSON(options) {
|
|
1262
|
+
if (options.llm !== void 0 && options.llmJSON !== void 0) {
|
|
1263
|
+
throw new Error("Pass either llm or llmJSON, not both.");
|
|
1264
|
+
}
|
|
1265
|
+
return options.llm === void 0 ? options.llmJSON : JSON.stringify(options.llm);
|
|
1266
|
+
}
|
|
1267
|
+
|
|
1255
1268
|
// src/runtime-path.ts
|
|
1256
1269
|
import { homedir as homedir3 } from "os";
|
|
1257
1270
|
import { isAbsolute as isAbsolute2, resolve as resolve2 } from "path";
|
|
@@ -1455,12 +1468,18 @@ var WikiGraphConversionManager = class {
|
|
|
1455
1468
|
}
|
|
1456
1469
|
const requiresDigest = options.input.format !== "wikg";
|
|
1457
1470
|
const requiresLLM = requiresDigest && targetStage !== "planned" && targetStage !== "sourced";
|
|
1471
|
+
const llmJSON = resolveWikiGraphLLMJSON(options);
|
|
1472
|
+
const injectedLLM = llmJSON === void 0 ? getWikiGraphSDKProviders().llm : void 0;
|
|
1458
1473
|
const config = await loadWikiGraphRuntimeConfig({
|
|
1459
|
-
...
|
|
1474
|
+
...llmJSON === void 0 ? {} : { llmJSON },
|
|
1475
|
+
...injectedLLM === void 0 ? {} : { skipLLMConfig: true },
|
|
1476
|
+
...getWikiGraphSDKProviders().embedding === void 0 ? {} : { skipEmbeddingConfig: true }
|
|
1460
1477
|
});
|
|
1461
1478
|
const app = new WikiGraph({
|
|
1462
1479
|
...options.verbose === true ? { verbose: true } : {},
|
|
1463
|
-
...requiresLLM ? {
|
|
1480
|
+
...requiresLLM ? {
|
|
1481
|
+
llm: injectedLLM === void 0 ? buildWikiGraphLLMOptions(config) : { streamProvider: injectedLLM }
|
|
1482
|
+
} : {}
|
|
1464
1483
|
});
|
|
1465
1484
|
const documentDirectory = await prepareDigestDirectory(
|
|
1466
1485
|
options.digestDirectory,
|
|
@@ -1750,6 +1769,8 @@ function createOpenAICompatibleName2(baseURL) {
|
|
|
1750
1769
|
|
|
1751
1770
|
// src/query-runtime.ts
|
|
1752
1771
|
async function createConfiguredEmbeddingProvider() {
|
|
1772
|
+
const injected = getWikiGraphSDKProviders().embedding;
|
|
1773
|
+
if (injected !== void 0) return injected;
|
|
1753
1774
|
const config = await readWikiGraphEmbeddingConfig();
|
|
1754
1775
|
if (config.provider === void 0 || config.model === void 0 || config.provider === "openai-compatible" && config.baseURL === void 0 || config.provider === "openai" && config.baseURL !== void 0) {
|
|
1755
1776
|
return void 0;
|
|
@@ -2001,13 +2022,15 @@ var WikiGraphArchiveHandle = class {
|
|
|
2001
2022
|
);
|
|
2002
2023
|
}
|
|
2003
2024
|
async search(query, options = {}) {
|
|
2004
|
-
const embeddingProvider = await this.#
|
|
2005
|
-
|
|
2025
|
+
const embeddingProvider = await this.#resolveQueryEmbeddingProvider(
|
|
2026
|
+
options.queryMode,
|
|
2006
2027
|
options.signal
|
|
2007
2028
|
);
|
|
2008
2029
|
return await this.#writeDocument(
|
|
2009
2030
|
async (document) => {
|
|
2010
|
-
const chapters = await this.#resolveQueryChapters(document, options
|
|
2031
|
+
const chapters = await this.#resolveQueryChapters(document, options, {
|
|
2032
|
+
embeddingProvider
|
|
2033
|
+
});
|
|
2011
2034
|
await ensureArchiveSearchIndex(document, {
|
|
2012
2035
|
...chapters === void 0 ? {} : { chapters },
|
|
2013
2036
|
...embeddingProvider === void 0 ? {} : { embeddingProvider }
|
|
@@ -2305,6 +2328,9 @@ var WikiGraphArchiveHandle = class {
|
|
|
2305
2328
|
}
|
|
2306
2329
|
async related(objectUri = this.objectUri, options = {}) {
|
|
2307
2330
|
if (options.query === void 0) {
|
|
2331
|
+
if (options.queryMode !== void 0) {
|
|
2332
|
+
throw new Error("`queryMode` requires `query`.");
|
|
2333
|
+
}
|
|
2308
2334
|
return await this.#readDocument(async (document) => {
|
|
2309
2335
|
const chapters = await this.#resolveScope(document, {});
|
|
2310
2336
|
return await listRelatedArchiveObjects(document, objectUri, {
|
|
@@ -2313,19 +2339,22 @@ var WikiGraphArchiveHandle = class {
|
|
|
2313
2339
|
});
|
|
2314
2340
|
}, options);
|
|
2315
2341
|
}
|
|
2316
|
-
const embeddingProvider = await this.#
|
|
2317
|
-
|
|
2342
|
+
const embeddingProvider = await this.#resolveQueryEmbeddingProvider(
|
|
2343
|
+
options.queryMode,
|
|
2318
2344
|
options.signal
|
|
2319
2345
|
);
|
|
2320
2346
|
return await this.#writeDocument(
|
|
2321
2347
|
async (document) => {
|
|
2322
|
-
const chapters = await this.#resolveQueryChapters(document, options
|
|
2348
|
+
const chapters = await this.#resolveQueryChapters(document, options, {
|
|
2349
|
+
embeddingProvider
|
|
2350
|
+
});
|
|
2323
2351
|
await ensureArchiveSearchIndex(document, {
|
|
2324
2352
|
...chapters === void 0 ? {} : { chapters },
|
|
2325
2353
|
...embeddingProvider === void 0 ? {} : { embeddingProvider }
|
|
2326
2354
|
});
|
|
2327
2355
|
return await listRelatedArchiveObjects(document, objectUri, {
|
|
2328
2356
|
...withoutOperation(options),
|
|
2357
|
+
...embeddingProvider === void 0 ? {} : { embeddingProvider },
|
|
2329
2358
|
...chapters === void 0 ? {} : { chapters }
|
|
2330
2359
|
});
|
|
2331
2360
|
},
|
|
@@ -2337,6 +2366,9 @@ var WikiGraphArchiveHandle = class {
|
|
|
2337
2366
|
}
|
|
2338
2367
|
async evidence(objectUri = this.objectUri, options = {}) {
|
|
2339
2368
|
if (options.query === void 0) {
|
|
2369
|
+
if (options.queryMode !== void 0) {
|
|
2370
|
+
throw new Error("`queryMode` requires `query`.");
|
|
2371
|
+
}
|
|
2340
2372
|
return await this.#readDocument(async (document) => {
|
|
2341
2373
|
const chapters = await this.#resolveScope(document, {});
|
|
2342
2374
|
return await listArchiveEvidence(document, objectUri, {
|
|
@@ -2345,19 +2377,22 @@ var WikiGraphArchiveHandle = class {
|
|
|
2345
2377
|
});
|
|
2346
2378
|
}, options);
|
|
2347
2379
|
}
|
|
2348
|
-
const embeddingProvider = await this.#
|
|
2349
|
-
|
|
2380
|
+
const embeddingProvider = await this.#resolveQueryEmbeddingProvider(
|
|
2381
|
+
options.queryMode,
|
|
2350
2382
|
options.signal
|
|
2351
2383
|
);
|
|
2352
2384
|
return await this.#writeDocument(
|
|
2353
2385
|
async (document) => {
|
|
2354
|
-
const chapters = await this.#resolveQueryChapters(document, options
|
|
2386
|
+
const chapters = await this.#resolveQueryChapters(document, options, {
|
|
2387
|
+
embeddingProvider
|
|
2388
|
+
});
|
|
2355
2389
|
await ensureArchiveSearchIndex(document, {
|
|
2356
2390
|
...chapters === void 0 ? {} : { chapters },
|
|
2357
2391
|
...embeddingProvider === void 0 ? {} : { embeddingProvider }
|
|
2358
2392
|
});
|
|
2359
2393
|
return await listArchiveEvidence(document, objectUri, {
|
|
2360
2394
|
...withoutOperation(options),
|
|
2395
|
+
...embeddingProvider === void 0 ? {} : { embeddingProvider },
|
|
2361
2396
|
...chapters === void 0 ? {} : { chapters }
|
|
2362
2397
|
});
|
|
2363
2398
|
},
|
|
@@ -2391,6 +2426,24 @@ var WikiGraphArchiveHandle = class {
|
|
|
2391
2426
|
return meta;
|
|
2392
2427
|
}, options);
|
|
2393
2428
|
}
|
|
2429
|
+
async setArchiveTitle(title, options = {}) {
|
|
2430
|
+
const normalized = title?.trim() ?? null;
|
|
2431
|
+
if (title !== null && normalized === "") {
|
|
2432
|
+
throw new Error("Archive title cannot be empty.");
|
|
2433
|
+
}
|
|
2434
|
+
return await this.#writeDocument(async (document) => {
|
|
2435
|
+
if (normalized === null) {
|
|
2436
|
+
await document.metadata.deleteKey("", "title");
|
|
2437
|
+
} else {
|
|
2438
|
+
await document.metadata.put(
|
|
2439
|
+
{ kind: ObjectMetadataKind.Archive, objectPath: "" },
|
|
2440
|
+
"title",
|
|
2441
|
+
normalized
|
|
2442
|
+
);
|
|
2443
|
+
}
|
|
2444
|
+
return normalized;
|
|
2445
|
+
}, options);
|
|
2446
|
+
}
|
|
2394
2447
|
async readCover(options = {}) {
|
|
2395
2448
|
const app = new WikiGraph2({});
|
|
2396
2449
|
return await this.#runtime.run(
|
|
@@ -2461,11 +2514,20 @@ var WikiGraphArchiveHandle = class {
|
|
|
2461
2514
|
if (options.chapters !== void 0) return options.chapters;
|
|
2462
2515
|
return (await resolveArchiveScope(document, this.objectUri, options.depth))?.chapterIds;
|
|
2463
2516
|
}
|
|
2464
|
-
async #resolveQueryChapters(document, options) {
|
|
2517
|
+
async #resolveQueryChapters(document, options, capabilities) {
|
|
2465
2518
|
const chapters = await this.#resolveScope(document, options);
|
|
2466
|
-
|
|
2519
|
+
const coverageOptions = {
|
|
2520
|
+
...chapters === void 0 ? {} : { chapters },
|
|
2521
|
+
...capabilities.embeddingProvider === void 0 ? {} : { embeddingProvider: capabilities.embeddingProvider },
|
|
2522
|
+
requireEmbeddingProvider: true,
|
|
2523
|
+
...options.queryMode === void 0 ? {} : { queryMode: options.queryMode }
|
|
2524
|
+
};
|
|
2525
|
+
if (options.skipUnindexed !== true) {
|
|
2526
|
+
await assertArchiveIndexArtifactsReady(document, coverageOptions);
|
|
2527
|
+
return chapters;
|
|
2528
|
+
}
|
|
2467
2529
|
const queryable = await listArchiveQueryableChapterIds(document, {
|
|
2468
|
-
...
|
|
2530
|
+
...coverageOptions
|
|
2469
2531
|
});
|
|
2470
2532
|
if (queryable.length === 0) {
|
|
2471
2533
|
throw new Error(
|
|
@@ -2474,6 +2536,19 @@ var WikiGraphArchiveHandle = class {
|
|
|
2474
2536
|
}
|
|
2475
2537
|
return queryable;
|
|
2476
2538
|
}
|
|
2539
|
+
async #resolveQueryEmbeddingProvider(queryMode, signal) {
|
|
2540
|
+
if (queryMode === "fts") return void 0;
|
|
2541
|
+
const provider = await this.#runtime.run(
|
|
2542
|
+
createConfiguredEmbeddingProvider,
|
|
2543
|
+
signal
|
|
2544
|
+
);
|
|
2545
|
+
if (queryMode === "embedding" && provider === void 0) {
|
|
2546
|
+
throw new Error(
|
|
2547
|
+
"Embedding query mode requires embeddings configuration at `wikg://local/config/embeddings`."
|
|
2548
|
+
);
|
|
2549
|
+
}
|
|
2550
|
+
return provider;
|
|
2551
|
+
}
|
|
2477
2552
|
};
|
|
2478
2553
|
async function ensureArchiveSearchIndex(document, options = {}) {
|
|
2479
2554
|
const scope = options.chapters === void 0 ? {} : { chapters: options.chapters };
|