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.
Files changed (52) hide show
  1. package/README.md +21 -0
  2. package/dist/archives.cjs +91 -17
  3. package/dist/archives.cjs.map +1 -1
  4. package/dist/archives.d.ts +8 -2
  5. package/dist/archives.js +92 -17
  6. package/dist/archives.js.map +1 -1
  7. package/dist/conversions.cjs +23 -5
  8. package/dist/conversions.cjs.map +1 -1
  9. package/dist/conversions.d.ts +6 -1
  10. package/dist/conversions.js +23 -5
  11. package/dist/conversions.js.map +1 -1
  12. package/dist/default-worker.cjs +34 -11
  13. package/dist/default-worker.cjs.map +1 -1
  14. package/dist/default-worker.d.ts +1 -0
  15. package/dist/default-worker.js +34 -11
  16. package/dist/default-worker.js.map +1 -1
  17. package/dist/embedding.cjs +2 -1
  18. package/dist/embedding.cjs.map +1 -1
  19. package/dist/embedding.d.ts +4 -4
  20. package/dist/embedding.js +2 -1
  21. package/dist/embedding.js.map +1 -1
  22. package/dist/index.cjs +336 -46
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.ts +26 -9
  25. package/dist/index.js +337 -47
  26. package/dist/index.js.map +1 -1
  27. package/dist/{jobs-xIm_kshM.d.ts → jobs-CRK-DZ40.d.ts} +5 -0
  28. package/dist/local-config.cjs +2 -1
  29. package/dist/local-config.cjs.map +1 -1
  30. package/dist/local-config.js +2 -1
  31. package/dist/local-config.js.map +1 -1
  32. package/dist/maintenance.cjs +2 -1
  33. package/dist/maintenance.cjs.map +1 -1
  34. package/dist/maintenance.d.ts +4 -1
  35. package/dist/maintenance.js +2 -1
  36. package/dist/maintenance.js.map +1 -1
  37. package/dist/runtime-config.cjs +4 -3
  38. package/dist/runtime-config.cjs.map +1 -1
  39. package/dist/runtime-config.d.ts +4 -1
  40. package/dist/runtime-config.js +4 -3
  41. package/dist/runtime-config.js.map +1 -1
  42. package/dist/stage-BnWI3Rqt.d.ts +33 -0
  43. package/dist/stage.cjs +22 -12
  44. package/dist/stage.cjs.map +1 -1
  45. package/dist/stage.d.ts +2 -14
  46. package/dist/stage.js +22 -12
  47. package/dist/stage.js.map +1 -1
  48. package/dist/worker.cjs +2 -1
  49. package/dist/worker.cjs.map +1 -1
  50. package/dist/worker.js +2 -1
  51. package/dist/worker.js.map +1 -1
  52. package/package.json +2 -2
@@ -2,6 +2,7 @@ import { WikiGraphRuntimeConfig } from './runtime-config.js';
2
2
  import 'zod';
3
3
 
4
4
  interface WikiGraphQueueWorkerOptions {
5
+ readonly idleTimeoutMs?: number;
5
6
  readonly signal?: AbortSignal;
6
7
  }
7
8
  declare function runWikiGraphQueueWorker(options?: WikiGraphQueueWorkerOptions): Promise<void>;
@@ -49,12 +49,16 @@ function getWikiGraphSDKRuntimeContext() {
49
49
  return runtimeContext.getStore() ?? {
50
50
  cwd: process.cwd(),
51
51
  env: process.env,
52
- envPolicy: "production"
52
+ envPolicy: "production",
53
+ providers: {}
53
54
  };
54
55
  }
55
56
  function getWikiGraphSDKStateDir() {
56
57
  return getWikiGraphSDKRuntimeContext().stateDir;
57
58
  }
59
+ function getWikiGraphSDKProviders() {
60
+ return getWikiGraphSDKRuntimeContext().providers ?? {};
61
+ }
58
62
 
59
63
  // src/node-platform.ts
60
64
  import * as asyncHooks from "async_hooks";
@@ -1076,8 +1080,8 @@ var inlineLLMConfigSchema = z.object({
1076
1080
  });
1077
1081
  async function loadWikiGraphRuntimeConfig(options) {
1078
1082
  const [embedding, localLLM, concurrent, wikimedia, wikispine] = await Promise.all([
1079
- readLocalConfigSection("embeddings"),
1080
- readLocalConfigSection("llm"),
1083
+ options?.skipEmbeddingConfig === true ? Promise.resolve({}) : readLocalConfigSection("embeddings"),
1084
+ options?.skipLLMConfig === true ? Promise.resolve({}) : readLocalConfigSection("llm"),
1081
1085
  readLocalConfigSection("concurrent"),
1082
1086
  readLocalConfigSection("wikimedia"),
1083
1087
  readLocalConfigSection("wikispine")
@@ -1357,7 +1361,10 @@ function createOpenAICompatibleName2(baseURL) {
1357
1361
 
1358
1362
  // src/stage.ts
1359
1363
  function createStageLLM(config, options) {
1360
- const llmOptions = buildWikiGraphLLMOptions(config);
1364
+ const llmOptions = options?.provider === void 0 ? buildWikiGraphLLMOptions(config) : {
1365
+ ...config.concurrent?.request === void 0 ? {} : { concurrent: config.concurrent.request },
1366
+ streamProvider: options.provider
1367
+ };
1361
1368
  return new LLM({
1362
1369
  sampling: createDefaultWikiGraphSampling({
1363
1370
  ...llmOptions.temperature === void 0 ? {} : { temperature: llmOptions.temperature },
@@ -1371,10 +1378,13 @@ function createStageLLM(config, options) {
1371
1378
  });
1372
1379
  }
1373
1380
  async function loadRequiredStageConfig(options) {
1381
+ const injected = options.llmJSON === void 0 ? getWikiGraphSDKProviders().llm : void 0;
1374
1382
  const config = await loadWikiGraphRuntimeConfig({
1375
- ...options.llmJSON === void 0 ? {} : { llmJSON: options.llmJSON }
1383
+ ...options.llmJSON === void 0 ? {} : { llmJSON: options.llmJSON },
1384
+ ...options.llmJSON === void 0 && injected !== void 0 ? { skipLLMConfig: true } : {},
1385
+ ...getWikiGraphSDKProviders().embedding === void 0 ? {} : { skipEmbeddingConfig: true }
1376
1386
  });
1377
- if (config.llm?.provider === void 0 || config.llm.model === void 0) {
1387
+ if (injected === void 0 && (config.llm?.provider === void 0 || config.llm.model === void 0)) {
1378
1388
  throw new Error(
1379
1389
  "Missing LLM configuration. Set --llm for one run, or configure `wikg://local/config/llm` with provider and model."
1380
1390
  );
@@ -1697,7 +1707,11 @@ async function runBuildJobWorker(options) {
1697
1707
 
1698
1708
  // src/default-worker.ts
1699
1709
  async function runWikiGraphQueueWorker(options = {}) {
1700
- const config = await loadWikiGraphRuntimeConfig();
1710
+ const providers = getWikiGraphSDKProviders();
1711
+ const config = await loadWikiGraphRuntimeConfig({
1712
+ ...providers.embedding === void 0 ? {} : { skipEmbeddingConfig: true },
1713
+ ...providers.llm === void 0 ? {} : { skipLLMConfig: true }
1714
+ });
1701
1715
  await runBuildJobWorker({
1702
1716
  concurrency: config.concurrent?.job ?? DEFAULT_GENERATION_JOB_CONCURRENCY,
1703
1717
  executeJob: async (job, reporter, context) => {
@@ -1706,12 +1720,16 @@ async function runWikiGraphQueueWorker(options = {}) {
1706
1720
  async () => await executeBuildJob(job, reporter, context)
1707
1721
  );
1708
1722
  },
1723
+ ...options.idleTimeoutMs === void 0 ? {} : { idleTimeoutMs: options.idleTimeoutMs },
1709
1724
  ...options.signal === void 0 ? {} : { signal: options.signal }
1710
1725
  });
1711
1726
  }
1712
1727
  async function executeBuildJob(job, reporter, context) {
1728
+ const providers = getWikiGraphSDKProviders();
1713
1729
  const config = await loadWikiGraphRuntimeConfig({
1714
- ...job.llmJSON === void 0 ? {} : { llmJSON: job.llmJSON }
1730
+ ...job.llmJSON === void 0 ? {} : { llmJSON: job.llmJSON },
1731
+ ...providers.embedding === void 0 ? {} : { skipEmbeddingConfig: true },
1732
+ ...job.llmJSON === void 0 && providers.llm !== void 0 ? { skipLLMConfig: true } : {}
1715
1733
  });
1716
1734
  const execution = await openJobExecutor(
1717
1735
  job,
@@ -1846,12 +1864,17 @@ async function openJobExecutor(job, config, signal, reporter) {
1846
1864
  const stageConfig = generation ? await loadRequiredStageConfig({
1847
1865
  ...job.llmJSON === void 0 ? {} : { llmJSON: job.llmJSON }
1848
1866
  }) : void 0;
1867
+ const injectedLLM = job.llmJSON === void 0 ? getWikiGraphSDKProviders().llm : void 0;
1849
1868
  const llm = stageConfig === void 0 ? void 0 : createStageLLM(stageConfig, {
1850
1869
  cacheDirectory: job.cache,
1851
1870
  logDirectory: job.log,
1852
1871
  onTokenUsage: async (usage) => {
1853
1872
  await reporter.addTokenUsage(usage);
1854
- }
1873
+ },
1874
+ onStreamProgress: async ({ outputCharacters }) => {
1875
+ await reporter.addOutputCharacters(outputCharacters);
1876
+ },
1877
+ ...injectedLLM === void 0 ? {} : { provider: injectedLLM }
1855
1878
  });
1856
1879
  const promptSource = job.prompt ?? stageConfig?.prompt;
1857
1880
  const wikispine = job.target === "knowledge-graph" ? requireKnowledgeGraphWikispineConfig(config) : void 0;
@@ -1872,7 +1895,7 @@ async function openJobExecutor(job, config, signal, reporter) {
1872
1895
  "Local Wikimedia resolution requires an LLM."
1873
1896
  ),
1874
1897
  llmModelId: requireValue(
1875
- stageConfig?.llm?.model,
1898
+ stageConfig?.llm?.model ?? injectedLLM?.model,
1876
1899
  "Local Wikimedia resolution requires an LLM model."
1877
1900
  )
1878
1901
  } : {
@@ -1881,7 +1904,7 @@ async function openJobExecutor(job, config, signal, reporter) {
1881
1904
  token: config.wikimedia.token
1882
1905
  }
1883
1906
  );
1884
- const embeddingProvider = job.target === "index-embedding-source" || job.target === "index-embedding-summary" ? buildSearchIndexEmbeddingProvider(requireEmbeddingConfig(config)) : void 0;
1907
+ const embeddingProvider = job.target === "index-embedding-source" || job.target === "index-embedding-summary" ? getWikiGraphSDKProviders().embedding ?? buildSearchIndexEmbeddingProvider(requireEmbeddingConfig(config)) : void 0;
1885
1908
  return {
1886
1909
  async close() {
1887
1910
  await wikimediaResolver?.close();