@exellix/ai-tasks 7.8.0 → 7.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/compile/compileTaskConfiguration.d.ts +3 -1
  2. package/dist/compile/compileTaskConfiguration.d.ts.map +1 -1
  3. package/dist/compile/compileTaskConfiguration.js +41 -5
  4. package/dist/compile/compileTaskConfiguration.js.map +1 -1
  5. package/dist/core/task-sdk.js +3 -3
  6. package/dist/core/task-sdk.js.map +1 -1
  7. package/dist/narrix/bundleToNarrixPack.d.ts +8 -0
  8. package/dist/narrix/bundleToNarrixPack.d.ts.map +1 -0
  9. package/dist/narrix/bundleToNarrixPack.js +60 -0
  10. package/dist/narrix/bundleToNarrixPack.js.map +1 -0
  11. package/dist/narrix/createNarrixRunnerFromBundle.d.ts +8 -0
  12. package/dist/narrix/createNarrixRunnerFromBundle.d.ts.map +1 -0
  13. package/dist/narrix/createNarrixRunnerFromBundle.js +17 -0
  14. package/dist/narrix/createNarrixRunnerFromBundle.js.map +1 -0
  15. package/dist/narrix/index.d.ts +1 -1
  16. package/dist/narrix/index.d.ts.map +1 -1
  17. package/dist/narrix/index.js +1 -1
  18. package/dist/narrix/index.js.map +1 -1
  19. package/dist/narrix/loadNarrixBundleFromCatalox.d.ts +8 -0
  20. package/dist/narrix/loadNarrixBundleFromCatalox.d.ts.map +1 -0
  21. package/dist/narrix/loadNarrixBundleFromCatalox.js +73 -0
  22. package/dist/narrix/loadNarrixBundleFromCatalox.js.map +1 -0
  23. package/dist/narrix/narrixCatalogBundleLoader.d.ts +15 -0
  24. package/dist/narrix/narrixCatalogBundleLoader.d.ts.map +1 -0
  25. package/dist/narrix/narrixCatalogBundleLoader.js +67 -0
  26. package/dist/narrix/narrixCatalogBundleLoader.js.map +1 -0
  27. package/dist/narrix/narrixCatalogCredentials.d.ts +8 -0
  28. package/dist/narrix/narrixCatalogCredentials.d.ts.map +1 -0
  29. package/dist/narrix/narrixCatalogCredentials.js +20 -0
  30. package/dist/narrix/narrixCatalogCredentials.js.map +1 -0
  31. package/dist/narrix/narrixClient.d.ts.map +1 -1
  32. package/dist/narrix/narrixClient.js +4 -3
  33. package/dist/narrix/narrixClient.js.map +1 -1
  34. package/dist/narrix/runNarrixForChat.d.ts.map +1 -1
  35. package/dist/narrix/runNarrixForChat.js +3 -1
  36. package/dist/narrix/runNarrixForChat.js.map +1 -1
  37. package/dist/narrix/runNarrixForDocs.d.ts.map +1 -1
  38. package/dist/narrix/runNarrixForDocs.js +3 -1
  39. package/dist/narrix/runNarrixForDocs.js.map +1 -1
  40. package/dist/narrix/runNarrixForRecord.d.ts.map +1 -1
  41. package/dist/narrix/runNarrixForRecord.js +3 -1
  42. package/dist/narrix/runNarrixForRecord.js.map +1 -1
  43. package/dist/narrix/runNarrixForText.d.ts.map +1 -1
  44. package/dist/narrix/runNarrixForText.js +3 -1
  45. package/dist/narrix/runNarrixForText.js.map +1 -1
  46. package/dist/narrix/runnerDispatch.d.ts.map +1 -1
  47. package/dist/narrix/runnerDispatch.js +2 -1
  48. package/dist/narrix/runnerDispatch.js.map +1 -1
  49. package/dist/narrix/seedBundleRouting.d.ts +13 -3
  50. package/dist/narrix/seedBundleRouting.d.ts.map +1 -1
  51. package/dist/narrix/seedBundleRouting.js +61 -11
  52. package/dist/narrix/seedBundleRouting.js.map +1 -1
  53. package/dist/types/task-configuration.d.ts +6 -0
  54. package/dist/types/task-configuration.d.ts.map +1 -1
  55. package/package.json +5 -3
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Convert a CataloxSeedBundle into the in-memory NarrixPack shape expected by narrix-engine.
3
+ * Mirrors `@exellix/narrix-runner/dist/catalog/bundle-to-pack.js` (not exported from the package).
4
+ */
5
+ export function bundleToNarrixPack(bundle) {
6
+ const cat = bundle.catalogs.categories[0];
7
+ const signalEntries = {};
8
+ for (const s of bundle.catalogs.signals) {
9
+ signalEntries[s.code] = {
10
+ title: s.title,
11
+ severityDefault: s.severityDefault,
12
+ description: s.description,
13
+ entityTypes: s.entityTypes,
14
+ expectedInputs: s.expectedInputs,
15
+ };
16
+ }
17
+ const signalsCatalog = { schema: "signals.catalog.v1", signals: signalEntries };
18
+ const mappings = {};
19
+ for (const m of bundle.catalogs.narratorMappings) {
20
+ mappings[m.mappingId] = {
21
+ schema: m.schema,
22
+ version: m.version,
23
+ subject: m.subject,
24
+ facts: m.facts,
25
+ };
26
+ }
27
+ const rulePacks = {};
28
+ for (const rp of bundle.catalogs.rulePacks) {
29
+ rulePacks[rp.processorId] ??= {};
30
+ rulePacks[rp.processorId][rp.passType] ??= [];
31
+ rulePacks[rp.processorId][rp.passType].push({
32
+ schema: rp.schema,
33
+ version: rp.version,
34
+ rules: rp.rules,
35
+ });
36
+ }
37
+ const processors = bundle.catalogs.processors.map((p) => ({
38
+ id: p.id,
39
+ entityKind: p.entityKind,
40
+ mappingKey: p.mappingKey,
41
+ route: p.route,
42
+ passes: p.passes,
43
+ entityIdentity: p.entityIdentity,
44
+ }));
45
+ const pipelineItem = bundle.catalogs.pipelines[0];
46
+ const pipeline = {
47
+ passes: pipelineItem.passes,
48
+ metaAttachPath: pipelineItem.metaAttachPath,
49
+ };
50
+ return {
51
+ id: cat?.packId ?? bundle.categoryId,
52
+ version: cat?.version ?? "0.0.0",
53
+ signalsCatalog,
54
+ mappings,
55
+ rulePacks,
56
+ processors,
57
+ pipeline,
58
+ };
59
+ }
60
+ //# sourceMappingURL=bundleToNarrixPack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundleToNarrixPack.js","sourceRoot":"","sources":["../../src/narrix/bundleToNarrixPack.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAyB;IAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,aAAa,GAA4C,EAAE,CAAC;IAClE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;YACtB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,cAAc,EAAE,CAAC,CAAC,cAAc;SACjC,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAEhF,MAAM,QAAQ,GAA4C,EAAE,CAAC;IAC7D,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QACjD,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAE,CAAC,CAAC,KAAK;SACf,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAA8C,EAAE,CAAC;IAChE,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC3C,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACjC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC9C,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YAC1C,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,OAAO,EAAE,EAAE,CAAC,OAAO;YACnB,KAAK,EAAE,EAAE,CAAC,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,cAAc,EAAE,CAAC,CAAC,cAAc;KACjC,CAAC,CAA6B,CAAC;IAEhC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,cAAc,EAAE,YAAY,CAAC,cAAc;KAClB,CAAC;IAE5B,OAAO;QACL,EAAE,EAAE,GAAG,EAAE,MAAM,IAAI,MAAM,CAAC,UAAU;QACpC,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,OAAO;QAChC,cAAc;QACd,QAAQ;QACR,SAAS;QACT,UAAU;QACV,QAAQ;KACK,CAAC;AAClB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { CataloxSeedBundle } from "@exellix/narrix-catalox";
2
+ import type { CreateRunnerOptions, NarrixRunner } from "@exellix/narrix-runner";
3
+ /**
4
+ * Build a {@link NarrixRunner} from an already-resolved catalog bundle (archive or Catalox).
5
+ * Avoids `@exellix/narrix-runner` `createRunner()` which always reads `.archive/packages` on disk.
6
+ */
7
+ export declare function createNarrixRunnerFromBundle(bundle: CataloxSeedBundle, options?: CreateRunnerOptions): Promise<NarrixRunner>;
8
+ //# sourceMappingURL=createNarrixRunnerFromBundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNarrixRunnerFromBundle.d.ts","sourceRoot":"","sources":["../../src/narrix/createNarrixRunnerFromBundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAIhF;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,YAAY,CAAC,CASvB"}
@@ -0,0 +1,17 @@
1
+ import { bundleToNarrixPack } from "./bundleToNarrixPack.js";
2
+ import { getNarrixRunnerModule } from "./narrixRunnerModule.js";
3
+ /**
4
+ * Build a {@link NarrixRunner} from an already-resolved catalog bundle (archive or Catalox).
5
+ * Avoids `@exellix/narrix-runner` `createRunner()` which always reads `.archive/packages` on disk.
6
+ */
7
+ export async function createNarrixRunnerFromBundle(bundle, options = {}) {
8
+ const { NarrixRunner } = await getNarrixRunnerModule();
9
+ const { createNarrixEngine } = await import("@exellix/narrix-engine");
10
+ const pack = bundleToNarrixPack(bundle);
11
+ const engine = await createNarrixEngine({
12
+ pack,
13
+ featureRegistry: options.featureRegistry,
14
+ });
15
+ return new NarrixRunner(bundle, pack, engine, options);
16
+ }
17
+ //# sourceMappingURL=createNarrixRunnerFromBundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNarrixRunnerFromBundle.js","sourceRoot":"","sources":["../../src/narrix/createNarrixRunnerFromBundle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAyB,EACzB,UAA+B,EAAE;IAEjC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACvD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;QACtC,IAAI;QACJ,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC;IACH,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC"}
@@ -5,7 +5,7 @@ export { runNarrixForChat } from "./runNarrixForChat.js";
5
5
  export { getNarrixClient } from "./narrixClient.js";
6
6
  export { narrixFlags } from "./flags.js";
7
7
  export { NARRIX_RUN_SKILL_KEY } from "./task.js";
8
- export { getNarrixCatalogBundle, pickQuestionIdForDataset, resolveDatasetIngestHints } from "./seedBundleRouting.js";
8
+ export { ensureNarrixCatalogBundle, getNarrixCatalogBundle, listRunnableNarrixDatasetIds, pickQuestionIdForDataset, pickRunnableNarrixDataset, resolveDatasetIngestHints, isNarrixCatalogSourceAvailable, narrixArchivePresent, resetNarrixCatalogBundleCache, } from "./seedBundleRouting.js";
9
9
  export type { DatasetIngestHints } from "./seedBundleRouting.js";
10
10
  export type { NarrixMedium, NarrixRunRouting, NarrixRunInput, NarrixRunInputRecord, NarrixRunInputText, NarrixRunInputDocs, NarrixRunInputChat, NarrixRunOutput, NarrixRunOutputSuccess, NarrixRunOutputFailure, } from "./types.js";
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/narrix/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACrH,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/narrix/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,8BAA8B,EAC9B,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
@@ -10,5 +10,5 @@ export { runNarrixForChat } from "./runNarrixForChat.js";
10
10
  export { getNarrixClient } from "./narrixClient.js";
11
11
  export { narrixFlags } from "./flags.js";
12
12
  export { NARRIX_RUN_SKILL_KEY } from "./task.js";
13
- export { getNarrixCatalogBundle, pickQuestionIdForDataset, resolveDatasetIngestHints } from "./seedBundleRouting.js";
13
+ export { ensureNarrixCatalogBundle, getNarrixCatalogBundle, listRunnableNarrixDatasetIds, pickQuestionIdForDataset, pickRunnableNarrixDataset, resolveDatasetIngestHints, isNarrixCatalogSourceAvailable, narrixArchivePresent, resetNarrixCatalogBundleCache, } from "./seedBundleRouting.js";
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/narrix/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEnE,mFAAmF;AACnF,iBAAiB,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;AAE1D,yCAAyC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/narrix/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEnE,mFAAmF;AACnF,iBAAiB,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;AAE1D,yCAAyC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,8BAA8B,EAC9B,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { CataloxSeedBundle } from "@exellix/narrix-catalox";
2
+ import type { Catalox } from "@x12i/catalox";
3
+ /**
4
+ * Rebuild a {@link CataloxSeedBundle} from Narrix native catalogs in Catalox/Firestore
5
+ * (same rows written by `@exellix/narrix-catalox` `runCataloxSeed`).
6
+ */
7
+ export declare function loadNarrixBundleFromCatalox(catalox: Catalox): Promise<CataloxSeedBundle>;
8
+ //# sourceMappingURL=loadNarrixBundleFromCatalox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadNarrixBundleFromCatalox.d.ts","sourceRoot":"","sources":["../../src/narrix/loadNarrixBundleFromCatalox.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,eAAe,CAAC;AA2D7D;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2B9F"}
@@ -0,0 +1,73 @@
1
+ import { CATALOG_SPECS } from "@exellix/narrix-catalox";
2
+ import { resolveNarrixCataloxAppId } from "./narrixCatalogCredentials.js";
3
+ const CATALOG_ID_TO_BUNDLE_KEY = {
4
+ categories: "categories",
5
+ signals: "signals",
6
+ narratives: "narratives",
7
+ "narrator-mappings": "narratorMappings",
8
+ "rule-packs": "rulePacks",
9
+ processors: "processors",
10
+ pipelines: "pipelines",
11
+ "answer-mappings": "answerMappings",
12
+ "record-schemas": "recordSchemas",
13
+ "record-properties": "recordProperties",
14
+ "use-cases": "useCases",
15
+ };
16
+ function asRecord(v) {
17
+ return v && typeof v === "object" && !Array.isArray(v) ? v : {};
18
+ }
19
+ async function listAllNativeCatalogData(catalox, ctx, catalogId) {
20
+ const rows = [];
21
+ let offset = 0;
22
+ let cursor;
23
+ for (;;) {
24
+ const page = await catalox.listCatalogItems(ctx, catalogId, {
25
+ limit: 500,
26
+ ...(cursor ? { cursor } : { offset }),
27
+ scope: { superAdmin: true },
28
+ });
29
+ if (page.listOutcome === "mapping_blocked") {
30
+ throw new Error(`Catalox listCatalogItems mapping_blocked for catalog "${catalogId}"` +
31
+ (page.issues?.length ? `: ${JSON.stringify(page.issues)}` : ""));
32
+ }
33
+ for (const item of page.items) {
34
+ rows.push(asRecord(item.data));
35
+ }
36
+ if (page.nextCursor) {
37
+ cursor = page.nextCursor;
38
+ offset = 0;
39
+ continue;
40
+ }
41
+ if (!page.items.length || page.items.length < 500)
42
+ break;
43
+ offset += page.items.length;
44
+ }
45
+ return rows;
46
+ }
47
+ /**
48
+ * Rebuild a {@link CataloxSeedBundle} from Narrix native catalogs in Catalox/Firestore
49
+ * (same rows written by `@exellix/narrix-catalox` `runCataloxSeed`).
50
+ */
51
+ export async function loadNarrixBundleFromCatalox(catalox) {
52
+ const appId = resolveNarrixCataloxAppId();
53
+ const ctx = {
54
+ appId,
55
+ superAdmin: true,
56
+ actor: { type: "service", id: "ai-tasks-narrix-catalog" },
57
+ };
58
+ const catalogs = {};
59
+ for (const spec of CATALOG_SPECS) {
60
+ const bundleKey = CATALOG_ID_TO_BUNDLE_KEY[spec.catalogId];
61
+ if (!bundleKey)
62
+ continue;
63
+ catalogs[bundleKey] = (await listAllNativeCatalogData(catalox, ctx, spec.catalogId));
64
+ }
65
+ const categories = catalogs.categories ?? [];
66
+ const categoryId = categories[0]?.categoryId ?? "network-security";
67
+ if (!catalogs.processors?.length) {
68
+ throw new Error(`Narrix Catalox catalog is empty or not seeded for appId="${appId}". ` +
69
+ "Run `@exellix/narrix-catalox` seed against this app, or populate `.archive/packages` locally.");
70
+ }
71
+ return { categoryId, catalogs };
72
+ }
73
+ //# sourceMappingURL=loadNarrixBundleFromCatalox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadNarrixBundleFromCatalox.js","sourceRoot":"","sources":["../../src/narrix/loadNarrixBundleFromCatalox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAI1E,MAAM,wBAAwB,GAAqC;IACjE,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,mBAAmB,EAAE,kBAAkB;IACvC,YAAY,EAAE,WAAW;IACzB,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,WAAW;IACtB,iBAAiB,EAAE,gBAAgB;IACnC,gBAAgB,EAAE,eAAe;IACjC,mBAAmB,EAAE,kBAAkB;IACvC,WAAW,EAAE,UAAU;CACxB,CAAC;AAEF,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,OAAgB,EAChB,GAAmB,EACnB,SAAiB;IAEjB,MAAM,IAAI,GAA8B,EAAE,CAAC;IAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAA0B,CAAC;IAE/B,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE;YAC1D,KAAK,EAAE,GAAG;YACV,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,MAAM,EAAyB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;YAC7D,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;SAC5B,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,WAAW,KAAK,iBAAiB,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,yDAAyD,SAAS,GAAG;gBACnE,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAClE,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YACzB,MAAM,GAAG,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;YAAE,MAAM;QACzD,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,OAAgB;IAChE,MAAM,KAAK,GAAG,yBAAyB,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAmB;QAC1B,KAAK;QACL,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,yBAAyB,EAAE;KAC1D,CAAC;IAEF,MAAM,QAAQ,GAAG,EAAmC,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAU,CAAC;IAChG,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IAC7C,MAAM,UAAU,GACb,UAAU,CAAC,CAAC,CAAyC,EAAE,UAAU,IAAI,kBAAkB,CAAC;IAE3F,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,4DAA4D,KAAK,KAAK;YACpE,+FAA+F,CAClG,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type CataloxSeedBundle } from "@exellix/narrix-catalox";
2
+ /** True when the on-disk Narrix pack archive is present (dev checkout layout). */
3
+ export declare function narrixArchivePresent(): boolean;
4
+ /** Archive on disk or Catalox credentials to load Narrix catalogs from Firestore. */
5
+ export declare function isNarrixCatalogSourceAvailable(): boolean;
6
+ export declare function resetNarrixCatalogBundleCache(): void;
7
+ /**
8
+ * Load Narrix catalog once (archive first, then Catalox). Safe to call concurrently.
9
+ */
10
+ export declare function ensureNarrixCatalogBundle(): Promise<CataloxSeedBundle>;
11
+ /**
12
+ * Sync accessor after {@link ensureNarrixCatalogBundle} (or when `.archive` is present).
13
+ */
14
+ export declare function getNarrixCatalogBundleSync(): CataloxSeedBundle;
15
+ //# sourceMappingURL=narrixCatalogBundleLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrixCatalogBundleLoader.d.ts","sourceRoot":"","sources":["../../src/narrix/narrixCatalogBundleLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAejC,kFAAkF;AAClF,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,qFAAqF;AACrF,wBAAgB,8BAA8B,IAAI,OAAO,CAExD;AAED,wBAAgB,6BAA6B,IAAI,IAAI,CAGpD;AAsBD;;GAEG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAa5E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,iBAAiB,CAS9D"}
@@ -0,0 +1,67 @@
1
+ import { existsSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { getSeedBundle, narrixArchiveManifest, } from "@exellix/narrix-catalox";
4
+ import { loadNarrixBundleFromCatalox } from "./loadNarrixBundleFromCatalox.js";
5
+ import { narrixCataloxCredentialsReady } from "./narrixCatalogCredentials.js";
6
+ const ARCHIVE_SIGNAL = path.join(process.cwd(), ".archive", "packages", "pack", "signals.catalog.json");
7
+ let cachedBundle = null;
8
+ let loading = null;
9
+ /** True when the on-disk Narrix pack archive is present (dev checkout layout). */
10
+ export function narrixArchivePresent() {
11
+ return existsSync(ARCHIVE_SIGNAL);
12
+ }
13
+ /** Archive on disk or Catalox credentials to load Narrix catalogs from Firestore. */
14
+ export function isNarrixCatalogSourceAvailable() {
15
+ return narrixArchivePresent() || narrixCataloxCredentialsReady();
16
+ }
17
+ export function resetNarrixCatalogBundleCache() {
18
+ cachedBundle = null;
19
+ loading = null;
20
+ }
21
+ function loadNarrixCatalogBundleFromArchive() {
22
+ return getSeedBundle(narrixArchiveManifest());
23
+ }
24
+ async function loadNarrixCatalogBundleAuto() {
25
+ if (narrixArchivePresent()) {
26
+ return loadNarrixCatalogBundleFromArchive();
27
+ }
28
+ if (narrixCataloxCredentialsReady()) {
29
+ const { createCataloxFromEnv } = await import("@exellix/ai-skills");
30
+ const catalox = createCataloxFromEnv();
31
+ return loadNarrixBundleFromCatalox(catalox);
32
+ }
33
+ throw new Error("Narrix catalog unavailable: populate `.archive/packages` (see BREAKING-CHANGES-NARRIX-V5.md) " +
34
+ "or configure Catalox env (FIREBASE_PROJECT_ID, GOOGLE_SERVICE_ACCOUNT_BASE64, CATALOX_APP_ID) " +
35
+ "with Narrix native catalogs seeded via @exellix/narrix-catalox.");
36
+ }
37
+ /**
38
+ * Load Narrix catalog once (archive first, then Catalox). Safe to call concurrently.
39
+ */
40
+ export async function ensureNarrixCatalogBundle() {
41
+ if (cachedBundle)
42
+ return cachedBundle;
43
+ if (!loading) {
44
+ loading = loadNarrixCatalogBundleAuto()
45
+ .then((bundle) => {
46
+ cachedBundle = bundle;
47
+ return bundle;
48
+ })
49
+ .finally(() => {
50
+ loading = null;
51
+ });
52
+ }
53
+ return loading;
54
+ }
55
+ /**
56
+ * Sync accessor after {@link ensureNarrixCatalogBundle} (or when `.archive` is present).
57
+ */
58
+ export function getNarrixCatalogBundleSync() {
59
+ if (cachedBundle)
60
+ return cachedBundle;
61
+ if (narrixArchivePresent()) {
62
+ cachedBundle = loadNarrixCatalogBundleFromArchive();
63
+ return cachedBundle;
64
+ }
65
+ throw new Error("Narrix catalog bundle not loaded. Await ensureNarrixCatalogBundle() when `.archive/packages` is absent.");
66
+ }
67
+ //# sourceMappingURL=narrixCatalogBundleLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrixCatalogBundleLoader.js","sourceRoot":"","sources":["../../src/narrix/narrixCatalogBundleLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,qBAAqB,GAEtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAE9E,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAC9B,OAAO,CAAC,GAAG,EAAE,EACb,UAAU,EACV,UAAU,EACV,MAAM,EACN,sBAAsB,CACvB,CAAC;AAEF,IAAI,YAAY,GAA6B,IAAI,CAAC;AAClD,IAAI,OAAO,GAAsC,IAAI,CAAC;AAEtD,kFAAkF;AAClF,MAAM,UAAU,oBAAoB;IAClC,OAAO,UAAU,CAAC,cAAc,CAAC,CAAC;AACpC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,8BAA8B;IAC5C,OAAO,oBAAoB,EAAE,IAAI,6BAA6B,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,YAAY,GAAG,IAAI,CAAC;IACpB,OAAO,GAAG,IAAI,CAAC;AACjB,CAAC;AAED,SAAS,kCAAkC;IACzC,OAAO,aAAa,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,2BAA2B;IACxC,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,OAAO,kCAAkC,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,6BAA6B,EAAE,EAAE,CAAC;QACpC,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;QACvC,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,IAAI,KAAK,CACb,+FAA+F;QAC7F,gGAAgG;QAChG,iEAAiE,CACpE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB;IAC7C,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,2BAA2B,EAAE;aACpC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,YAAY,GAAG,MAAM,CAAC;YACtB,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B;IACxC,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IACtC,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,YAAY,GAAG,kCAAkC,EAAE,CAAC;QACpD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,MAAM,IAAI,KAAK,CACb,yGAAyG,CAC1G,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /** True when Catalox/Firebase env is sufficient for {@link createCataloxFromEnv}. */
2
+ export declare function narrixCataloxCredentialsReady(): boolean;
3
+ /**
4
+ * Catalox app that owns Narrix native catalogs (`categories`, `processors`, …).
5
+ * Defaults to `CATALOX_APP_ID` (same as `@exellix/narrix-catalox` seed).
6
+ */
7
+ export declare function resolveNarrixCataloxAppId(): string;
8
+ //# sourceMappingURL=narrixCatalogCredentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrixCatalogCredentials.d.ts","sourceRoot":"","sources":["../../src/narrix/narrixCatalogCredentials.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,wBAAgB,6BAA6B,IAAI,OAAO,CAIvD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAQlD"}
@@ -0,0 +1,20 @@
1
+ /** True when Catalox/Firebase env is sufficient for {@link createCataloxFromEnv}. */
2
+ export function narrixCataloxCredentialsReady() {
3
+ const projectId = process.env.FIREBASE_PROJECT_ID?.trim();
4
+ const b64 = process.env.GOOGLE_SERVICE_ACCOUNT_BASE64?.trim();
5
+ return Boolean(projectId && b64);
6
+ }
7
+ /**
8
+ * Catalox app that owns Narrix native catalogs (`categories`, `processors`, …).
9
+ * Defaults to `CATALOX_APP_ID` (same as `@exellix/narrix-catalox` seed).
10
+ */
11
+ export function resolveNarrixCataloxAppId() {
12
+ const explicit = process.env.NARRIX_CATALOX_APP_ID?.trim();
13
+ if (explicit)
14
+ return explicit;
15
+ const appId = process.env.CATALOX_APP_ID?.trim();
16
+ if (appId)
17
+ return appId;
18
+ throw new Error("Narrix Catalox app id is required when loading catalog from Firestore. Set NARRIX_CATALOX_APP_ID or CATALOX_APP_ID.");
19
+ }
20
+ //# sourceMappingURL=narrixCatalogCredentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrixCatalogCredentials.js","sourceRoot":"","sources":["../../src/narrix/narrixCatalogCredentials.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,UAAU,6BAA6B;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,EAAE,CAAC;IAC9D,OAAO,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC;IAC3D,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;IACjD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,IAAI,KAAK,CACb,qHAAqH,CACtH,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"narrixClient.d.ts","sourceRoot":"","sources":["../../src/narrix/narrixClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAuB3D,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAIF,wBAAgB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAqBvD"}
1
+ {"version":3,"file":"narrixClient.d.ts","sourceRoot":"","sources":["../../src/narrix/narrixClient.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAuB3D,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAIF,wBAAgB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAoBvD"}
@@ -1,5 +1,6 @@
1
1
  import { createIngest } from "@exellix/narrix-ingest";
2
- import { getNarrixRunnerModule } from "./narrixRunnerModule.js";
2
+ import { createNarrixRunnerFromBundle } from "./createNarrixRunnerFromBundle.js";
3
+ import { ensureNarrixCatalogBundle } from "./narrixCatalogBundleLoader.js";
3
4
  import { recordAdapter } from "@exellix/narrix-adapter-records";
4
5
  import { adapter as textAdapter } from "@exellix/narrix-adapter-text";
5
6
  import { toCni as chatToCni } from "@exellix/narrix-adapter-chat";
@@ -27,8 +28,8 @@ export function getNarrixClient() {
27
28
  if (!singleton) {
28
29
  singleton = (async () => {
29
30
  const ingest = createFullIngest();
30
- const { createRunner } = await getNarrixRunnerModule();
31
- const runner = await createRunner({
31
+ const bundle = await ensureNarrixCatalogBundle();
32
+ const runner = await createNarrixRunnerFromBundle(bundle, {
32
33
  runtime: {
33
34
  onProcessorNotMatched: "attachError",
34
35
  onMissingMapping: "attachError",
@@ -1 +1 @@
1
- {"version":3,"file":"narrixClient.js","sourceRoot":"","sources":["../../src/narrix/narrixClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAItE,MAAM,eAAe,GAAG,8BAA8B,CAAC;AACvD,MAAM,YAAY,GAAG,OAAO,CAAC;AAE7B,MAAM,YAAY,GAAmB;IACnC,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,YAAY;IACrB,KAAK,CAAC,KAAc,EAAE,OAAiB;QACrC,OAAO,SAAS,CAAC,KAAwC,EAAE,OAA0C,CAAC,CAAC;IACzG,CAAC;CACF,CAAC;AAEF,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD,IAAI,SAAS,GAAiC,IAAI,CAAC;AAEnD,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,CAAC,KAAK,IAAI,EAAE;YACtB,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAElC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;gBAChC,OAAO,EAAE;oBACP,qBAAqB,EAAE,aAAa;oBACpC,gBAAgB,EAAE,aAAa;oBAC/B,iBAAiB,EAAE,IAAI;iBACxB;aACF,CAAC,CAAC;YAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC5B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"narrixClient.js","sourceRoot":"","sources":["../../src/narrix/narrixClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAItE,MAAM,eAAe,GAAG,8BAA8B,CAAC;AACvD,MAAM,YAAY,GAAG,OAAO,CAAC;AAE7B,MAAM,YAAY,GAAmB;IACnC,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,eAAe;IAC1B,OAAO,EAAE,YAAY;IACrB,KAAK,CAAC,KAAc,EAAE,OAAiB;QACrC,OAAO,SAAS,CAAC,KAAwC,EAAE,OAA0C,CAAC,CAAC;IACzG,CAAC;CACF,CAAC;AAEF,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD,IAAI,SAAS,GAAiC,IAAI,CAAC;AAEnD,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,CAAC,KAAK,IAAI,EAAE;YACtB,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,yBAAyB,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,4BAA4B,CAAC,MAAM,EAAE;gBACxD,OAAO,EAAE;oBACP,qBAAqB,EAAE,aAAa;oBACpC,gBAAgB,EAAE,aAAa;oBAC/B,iBAAiB,EAAE,IAAI;iBACxB;aACF,CAAC,CAAC;YAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC5B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runNarrixForChat.d.ts","sourceRoot":"","sources":["../../src/narrix/runNarrixForChat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQtE,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,eAAe,CAAC,CAqD1B"}
1
+ {"version":3,"file":"runNarrixForChat.d.ts","sourceRoot":"","sources":["../../src/narrix/runNarrixForChat.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQtE,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,eAAe,CAAC,CAsD1B"}
@@ -1,11 +1,13 @@
1
1
  import { getNarrixClient } from "./narrixClient.js";
2
2
  import { resolveDatasetIngestHints } from "./seedBundleRouting.js";
3
+ import { ensureNarrixCatalogBundle } from "./narrixCatalogBundleLoader.js";
3
4
  import { dispatchNarrixRunner } from "./runnerDispatch.js";
4
5
  function isIngestError(res) {
5
6
  return "error" in res && res.error === true;
6
7
  }
7
8
  export async function runNarrixForChat(input) {
8
9
  const { datasetId, thread } = input;
10
+ await ensureNarrixCatalogBundle();
9
11
  const hints = resolveDatasetIngestHints(datasetId);
10
12
  const { ingest, runner } = await getNarrixClient();
11
13
  const ingestRes = ingest.toCni({
@@ -29,7 +31,7 @@ export async function runNarrixForChat(input) {
29
31
  meta: { datasetId, packId: hints.packId, entityKind: hints.recordType },
30
32
  };
31
33
  }
32
- const runRes = await dispatchNarrixRunner(runner, datasetId, ingestRes.cni, { questionId: input.questionId, narrativeTypeId: input.narrativeTypeId }, { sourceMeta: {} });
34
+ const runRes = await dispatchNarrixRunner(runner, datasetId, ingestRes.cni, { questionId: input.questionId ?? hints.questionId, narrativeTypeId: input.narrativeTypeId }, { sourceMeta: {} });
33
35
  return {
34
36
  ok: true,
35
37
  entity: runRes.entity,
@@ -1 +1 @@
1
- {"version":3,"file":"runNarrixForChat.js","sourceRoot":"","sources":["../../src/narrix/runNarrixForChat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,SAAS,aAAa,CACpB,GAAwE;IAExE,OAAO,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAyB;IAEzB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,EAAE,CAAC;IAEnD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,SAAS;aACV;SACF;KACF,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE;SACxE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,MAAM,EACN,SAAS,EACT,SAAS,CAAC,GAAG,EACb,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,EACxE,EAAE,UAAU,EAAE,EAAE,EAAE,CACnB,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,IAAI,EAAE;YACJ,SAAS;YACT,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;YAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;YACpC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;YAClC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;YACpC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;SACrC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"runNarrixForChat.js","sourceRoot":"","sources":["../../src/narrix/runNarrixForChat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,SAAS,aAAa,CACpB,GAAwE;IAExE,OAAO,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAyB;IAEzB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,yBAAyB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,EAAE,CAAC;IAEnD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,SAAS;aACV;SACF;KACF,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE;SACxE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,MAAM,EACN,SAAS,EACT,SAAS,CAAC,GAAG,EACb,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,EAC5F,EAAE,UAAU,EAAE,EAAE,EAAE,CACnB,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,IAAI,EAAE;YACJ,SAAS;YACT,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;YAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;YACpC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;YAClC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;YACpC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;SACrC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runNarrixForDocs.d.ts","sourceRoot":"","sources":["../../src/narrix/runNarrixForDocs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQtE,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,eAAe,CAAC,CAoD1B"}
1
+ {"version":3,"file":"runNarrixForDocs.d.ts","sourceRoot":"","sources":["../../src/narrix/runNarrixForDocs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQtE,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,eAAe,CAAC,CAqD1B"}
@@ -1,11 +1,13 @@
1
1
  import { getNarrixClient } from "./narrixClient.js";
2
2
  import { resolveDatasetIngestHints } from "./seedBundleRouting.js";
3
+ import { ensureNarrixCatalogBundle } from "./narrixCatalogBundleLoader.js";
3
4
  import { dispatchNarrixRunner } from "./runnerDispatch.js";
4
5
  function isIngestError(res) {
5
6
  return "error" in res && res.error === true;
6
7
  }
7
8
  export async function runNarrixForDocs(input) {
8
9
  const { datasetId, document } = input;
10
+ await ensureNarrixCatalogBundle();
9
11
  const hints = resolveDatasetIngestHints(datasetId);
10
12
  const { ingest, runner } = await getNarrixClient();
11
13
  const ingestRes = ingest.toCni({
@@ -28,7 +30,7 @@ export async function runNarrixForDocs(input) {
28
30
  meta: { datasetId, packId: hints.packId, entityKind: hints.recordType },
29
31
  };
30
32
  }
31
- const runRes = await dispatchNarrixRunner(runner, datasetId, ingestRes.cni, { questionId: input.questionId, narrativeTypeId: input.narrativeTypeId }, { sourceMeta: {} });
33
+ const runRes = await dispatchNarrixRunner(runner, datasetId, ingestRes.cni, { questionId: input.questionId ?? hints.questionId, narrativeTypeId: input.narrativeTypeId }, { sourceMeta: {} });
32
34
  return {
33
35
  ok: true,
34
36
  entity: runRes.entity,
@@ -1 +1 @@
1
- {"version":3,"file":"runNarrixForDocs.js","sourceRoot":"","sources":["../../src/narrix/runNarrixForDocs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,SAAS,aAAa,CACpB,GAAwE;IAExE,OAAO,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAyB;IAEzB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,EAAE,CAAC;IAEnD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE;YACL,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,UAAU,EAAE;gBACV,IAAI,EAAE,KAAK;gBACX,SAAS;aACV;SACF;KACF,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE;SACxE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,MAAM,EACN,SAAS,EACT,SAAS,CAAC,GAAG,EACb,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,EACxE,EAAE,UAAU,EAAE,EAAE,EAAE,CACnB,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,IAAI,EAAE;YACJ,SAAS;YACT,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;YAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;YACpC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;YAClC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;YACpC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;SACrC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"runNarrixForDocs.js","sourceRoot":"","sources":["../../src/narrix/runNarrixForDocs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,SAAS,aAAa,CACpB,GAAwE;IAExE,OAAO,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAyB;IAEzB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,yBAAyB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,EAAE,CAAC;IAEnD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE;YACL,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,UAAU,EAAE;gBACV,IAAI,EAAE,KAAK;gBACX,SAAS;aACV;SACF;KACF,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE;SACxE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,MAAM,EACN,SAAS,EACT,SAAS,CAAC,GAAG,EACb,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,EAC5F,EAAE,UAAU,EAAE,EAAE,EAAE,CACnB,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,IAAI,EAAE;YACJ,SAAS;YACT,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;YAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;YACpC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;YAClC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;YACpC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;SACrC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runNarrixForRecord.d.ts","sourceRoot":"","sources":["../../src/narrix/runNarrixForRecord.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQxE,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAiD1B"}
1
+ {"version":3,"file":"runNarrixForRecord.d.ts","sourceRoot":"","sources":["../../src/narrix/runNarrixForRecord.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQxE,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAkD1B"}
@@ -1,11 +1,13 @@
1
1
  import { getNarrixClient } from "./narrixClient.js";
2
2
  import { resolveDatasetIngestHints } from "./seedBundleRouting.js";
3
+ import { ensureNarrixCatalogBundle } from "./narrixCatalogBundleLoader.js";
3
4
  import { dispatchNarrixRunner } from "./runnerDispatch.js";
4
5
  function isIngestError(res) {
5
6
  return "error" in res && res.error === true;
6
7
  }
7
8
  export async function runNarrixForRecord(input) {
8
9
  const { datasetId, record } = input;
10
+ await ensureNarrixCatalogBundle();
9
11
  const hints = resolveDatasetIngestHints(datasetId);
10
12
  const recordType = input.recordType ?? hints.recordType;
11
13
  const { ingest, runner } = await getNarrixClient();
@@ -25,7 +27,7 @@ export async function runNarrixForRecord(input) {
25
27
  meta: { datasetId, packId: hints.packId, entityKind: recordType },
26
28
  };
27
29
  }
28
- const runRes = await dispatchNarrixRunner(runner, datasetId, ingestRes.cni, { questionId: input.questionId, narrativeTypeId: input.narrativeTypeId }, { sourceMeta: input.sourceMeta ?? {} });
30
+ const runRes = await dispatchNarrixRunner(runner, datasetId, ingestRes.cni, { questionId: input.questionId ?? hints.questionId, narrativeTypeId: input.narrativeTypeId }, { sourceMeta: input.sourceMeta ?? {} });
29
31
  return {
30
32
  ok: true,
31
33
  entity: runRes.entity,
@@ -1 +1 @@
1
- {"version":3,"file":"runNarrixForRecord.js","sourceRoot":"","sources":["../../src/narrix/runNarrixForRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,SAAS,aAAa,CACpB,GAAwE;IAExE,OAAO,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAA2B;IAE3B,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;IACxD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,EAAE,CAAC;IAEnD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,IAAI,EAAE,SAAS;QACf,KAAK,EAAE;YACL,MAAM;YACN,UAAU;YACV,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD;KACF,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE;SAClE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,MAAM,EACN,SAAS,EACT,SAAS,CAAC,GAAG,EACb,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,EACxE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE,CACvC,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,IAAI,EAAE;YACJ,SAAS;YACT,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;YAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;YACpC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;YAClC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;YACpC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;SACrC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"runNarrixForRecord.js","sourceRoot":"","sources":["../../src/narrix/runNarrixForRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,SAAS,aAAa,CACpB,GAAwE;IAExE,OAAO,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAA2B;IAE3B,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,yBAAyB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;IACxD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,EAAE,CAAC;IAEnD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,IAAI,EAAE,SAAS;QACf,KAAK,EAAE;YACL,MAAM;YACN,UAAU;YACV,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD;KACF,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE;SAClE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,MAAM,EACN,SAAS,EACT,SAAS,CAAC,GAAG,EACb,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,EAC5F,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE,CACvC,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,IAAI,EAAE;YACJ,SAAS;YACT,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;YAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;YACpC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;YAClC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;YACpC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;SACrC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runNarrixForText.d.ts","sourceRoot":"","sources":["../../src/narrix/runNarrixForText.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQtE,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,eAAe,CAAC,CAmD1B"}
1
+ {"version":3,"file":"runNarrixForText.d.ts","sourceRoot":"","sources":["../../src/narrix/runNarrixForText.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQtE,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,eAAe,CAAC,CAoD1B"}
@@ -1,11 +1,13 @@
1
1
  import { getNarrixClient } from "./narrixClient.js";
2
2
  import { resolveDatasetIngestHints } from "./seedBundleRouting.js";
3
+ import { ensureNarrixCatalogBundle } from "./narrixCatalogBundleLoader.js";
3
4
  import { dispatchNarrixRunner } from "./runnerDispatch.js";
4
5
  function isIngestError(res) {
5
6
  return "error" in res && res.error === true;
6
7
  }
7
8
  export async function runNarrixForText(input) {
8
9
  const { datasetId, text, meta } = input;
10
+ await ensureNarrixCatalogBundle();
9
11
  const hints = resolveDatasetIngestHints(datasetId);
10
12
  const { ingest, runner } = await getNarrixClient();
11
13
  const ingestRes = ingest.toCni({
@@ -27,7 +29,7 @@ export async function runNarrixForText(input) {
27
29
  meta: { datasetId, packId: hints.packId, entityKind: hints.recordType },
28
30
  };
29
31
  }
30
- const runRes = await dispatchNarrixRunner(runner, datasetId, ingestRes.cni, { questionId: input.questionId, narrativeTypeId: input.narrativeTypeId }, { sourceMeta: {} });
32
+ const runRes = await dispatchNarrixRunner(runner, datasetId, ingestRes.cni, { questionId: input.questionId ?? hints.questionId, narrativeTypeId: input.narrativeTypeId }, { sourceMeta: {} });
31
33
  return {
32
34
  ok: true,
33
35
  entity: runRes.entity,
@@ -1 +1 @@
1
- {"version":3,"file":"runNarrixForText.js","sourceRoot":"","sources":["../../src/narrix/runNarrixForText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,SAAS,aAAa,CACpB,GAAwE;IAExE,OAAO,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAyB;IAEzB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACxC,MAAM,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,EAAE,CAAC;IAEnD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE;YACL,IAAI;YACJ,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,SAAS;aACV;YACD,IAAI;SACL;KACF,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE;SACxE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,MAAM,EACN,SAAS,EACT,SAAS,CAAC,GAAG,EACb,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,EACxE,EAAE,UAAU,EAAE,EAAE,EAAE,CACnB,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,IAAI,EAAE;YACJ,SAAS;YACT,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;YAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;YACpC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;YAClC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;YACpC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;SACrC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"runNarrixForText.js","sourceRoot":"","sources":["../../src/narrix/runNarrixForText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,SAAS,aAAa,CACpB,GAAwE;IAExE,OAAO,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAyB;IAEzB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACxC,MAAM,yBAAyB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,EAAE,CAAC;IAEnD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE;YACL,IAAI;YACJ,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM;gBACZ,SAAS;aACV;YACD,IAAI;SACL;KACF,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,SAAS,CAAC,IAAI;YACrB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE;SACxE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,MAAM,EACN,SAAS,EACT,SAAS,CAAC,GAAG,EACb,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,EAC5F,EAAE,UAAU,EAAE,EAAE,EAAE,CACnB,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,IAAI,EAAE;YACJ,SAAS;YACT,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;YAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;YACpC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;YACxB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;YAClC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;YACpC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW;SACrC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runnerDispatch.d.ts","sourceRoot":"","sources":["../../src/narrix/runnerDispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAIvE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,UAAU,GACnB,OAAO,CAAC,YAAY,CAAC,CAevB"}
1
+ {"version":3,"file":"runnerDispatch.d.ts","sourceRoot":"","sources":["../../src/narrix/runnerDispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAIvE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,UAAU,GACnB,OAAO,CAAC,YAAY,CAAC,CAgBvB"}
@@ -1,5 +1,5 @@
1
1
  import { getNarrixRunnerModule } from "./narrixRunnerModule.js";
2
- import { getNarrixCatalogBundle, pickQuestionIdForDataset } from "./seedBundleRouting.js";
2
+ import { ensureNarrixCatalogBundle, getNarrixCatalogBundle, pickQuestionIdForDataset } from "./seedBundleRouting.js";
3
3
  /**
4
4
  * Prefer explicit narrativeTypeId; else questionId; else first catalog question for datasetId.
5
5
  */
@@ -9,6 +9,7 @@ export async function dispatchNarrixRunner(runner, datasetId, cni, routing, runO
9
9
  if (routing.narrativeTypeId && !routing.questionId) {
10
10
  return runner.runByNarrative(routing.narrativeTypeId, cni, opts);
11
11
  }
12
+ await ensureNarrixCatalogBundle();
12
13
  const bundle = getNarrixCatalogBundle();
13
14
  const qid = routing.questionId ?? pickQuestionIdForDataset(datasetId, bundle);
14
15
  if (!qid) {
@@ -1 +1 @@
1
- {"version":3,"file":"runnerDispatch.js","sourceRoot":"","sources":["../../src/narrix/runnerDispatch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAO1F;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAoB,EACpB,SAAiB,EACjB,GAAW,EACX,OAA2B,EAC3B,OAAoB;IAEpB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACtD,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,IAAI,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,WAAW,CACnB,uBAAuB,EACvB,gDAAgD,SAAS,wCAAwC,CAClG,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"runnerDispatch.js","sourceRoot":"","sources":["../../src/narrix/runnerDispatch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAOrH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAoB,EACpB,SAAiB,EACjB,GAAW,EACX,OAA2B,EAC3B,OAAoB;IAEpB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACtD,MAAM,IAAI,GAAG,OAAO,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,yBAAyB,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,IAAI,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9E,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,WAAW,CACnB,uBAAuB,EACvB,gDAAgD,SAAS,wCAAwC,CAClG,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC"}