@marinoscar/kvox-eval 0.0.0-bootstrap → 0.1.0-next.0

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 (245) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/LICENSE +21 -0
  3. package/README.md +166 -0
  4. package/dist/ask/index.d.ts +6 -0
  5. package/dist/ask/index.js +28 -0
  6. package/dist/ask/question-schema.d.ts +121 -0
  7. package/dist/ask/question-schema.js +167 -0
  8. package/dist/ask/report.d.ts +88 -0
  9. package/dist/ask/report.js +170 -0
  10. package/dist/ask/scorer.d.ts +104 -0
  11. package/dist/ask/scorer.js +164 -0
  12. package/dist/ask-run/ask-command.d.ts +62 -0
  13. package/dist/ask-run/ask-command.js +254 -0
  14. package/dist/ask-run/host/app.d.ts +65 -0
  15. package/dist/ask-run/host/app.js +146 -0
  16. package/dist/ask-run/host/db.d.ts +38 -0
  17. package/dist/ask-run/host/db.js +126 -0
  18. package/dist/ask-run/host/ports.d.ts +35 -0
  19. package/dist/ask-run/host/ports.js +113 -0
  20. package/dist/ask-run/index.d.ts +13 -0
  21. package/dist/ask-run/index.js +35 -0
  22. package/dist/ask-run/replay.d.ts +128 -0
  23. package/dist/ask-run/replay.js +212 -0
  24. package/dist/ask-run/run-ask-eval.d.ts +125 -0
  25. package/dist/ask-run/run-ask-eval.js +193 -0
  26. package/dist/ask-run/seed-golden-graph.d.ts +64 -0
  27. package/dist/ask-run/seed-golden-graph.js +495 -0
  28. package/dist/cli/index.d.ts +3 -0
  29. package/dist/cli/index.js +12 -0
  30. package/dist/cli/kg-command.d.ts +66 -0
  31. package/dist/cli/kg-command.js +238 -0
  32. package/dist/cli/main.d.ts +18 -0
  33. package/dist/cli/main.js +69 -0
  34. package/dist/fixtures/domains.d.ts +16 -0
  35. package/dist/fixtures/domains.js +33 -0
  36. package/dist/fixtures/fixture-schema.d.ts +323 -0
  37. package/dist/fixtures/fixture-schema.js +199 -0
  38. package/dist/fixtures/index.d.ts +16 -0
  39. package/dist/fixtures/index.js +40 -0
  40. package/dist/fixtures/load.d.ts +73 -0
  41. package/dist/fixtures/load.js +137 -0
  42. package/dist/fixtures/questions.d.ts +15 -0
  43. package/dist/fixtures/questions.js +26 -0
  44. package/dist/index.d.ts +20 -0
  45. package/dist/index.js +36 -0
  46. package/dist/kg/gold-runner.d.ts +13 -0
  47. package/dist/kg/gold-runner.js +57 -0
  48. package/dist/kg/index.d.ts +17 -0
  49. package/dist/kg/index.js +65 -0
  50. package/dist/kg/internals.d.ts +7 -0
  51. package/dist/kg/internals.js +17 -0
  52. package/dist/kg/prediction-schema.d.ts +245 -0
  53. package/dist/kg/prediction-schema.js +102 -0
  54. package/dist/kg/predictions.d.ts +11 -0
  55. package/dist/kg/predictions.js +49 -0
  56. package/dist/kg/report.d.ts +84 -0
  57. package/dist/kg/report.js +125 -0
  58. package/dist/kg/run-kg-eval.d.ts +77 -0
  59. package/dist/kg/run-kg-eval.js +137 -0
  60. package/dist/kg/runner.d.ts +72 -0
  61. package/dist/kg/runner.js +51 -0
  62. package/dist/kg/runners/extract-resolve-runner.d.ts +40 -0
  63. package/dist/kg/runners/extract-resolve-runner.js +199 -0
  64. package/dist/kg/runners/extract-runner.d.ts +65 -0
  65. package/dist/kg/runners/extract-runner.js +243 -0
  66. package/dist/kg/scorer.d.ts +226 -0
  67. package/dist/kg/scorer.js +463 -0
  68. package/dist/kg/targets.d.ts +17 -0
  69. package/dist/kg/targets.js +16 -0
  70. package/dist/kg/text.d.ts +45 -0
  71. package/dist/kg/text.js +100 -0
  72. package/dist/live/adapters.d.ts +16 -0
  73. package/dist/live/adapters.js +58 -0
  74. package/dist/live/env.d.ts +39 -0
  75. package/dist/live/env.js +56 -0
  76. package/dist/live/index.d.ts +6 -0
  77. package/dist/live/index.js +16 -0
  78. package/dist/live/live-ai.d.ts +104 -0
  79. package/dist/live/live-ai.js +157 -0
  80. package/dist/parity/constants.d.ts +79 -0
  81. package/dist/parity/constants.js +104 -0
  82. package/dist/parity/index.d.ts +20 -0
  83. package/dist/parity/index.js +38 -0
  84. package/dist/parity/internals.d.ts +8 -0
  85. package/dist/parity/internals.js +16 -0
  86. package/dist/parity/scenario.d.ts +45 -0
  87. package/dist/parity/scenario.js +245 -0
  88. package/dist/parity/script.d.ts +44 -0
  89. package/dist/parity/script.js +136 -0
  90. package/dist/parity/snapshot.d.ts +43 -0
  91. package/dist/parity/snapshot.js +71 -0
  92. package/dist/real-data/index.d.ts +2 -0
  93. package/dist/real-data/index.js +12 -0
  94. package/dist/real-data/real-data.d.ts +76 -0
  95. package/dist/real-data/real-data.js +156 -0
  96. package/fixtures/kg-golden/README.md +136 -0
  97. package/fixtures/kg-golden/ask-questions.json +458 -0
  98. package/fixtures/kg-golden/meetings/m01-northwind-pilot-kickoff.json +792 -0
  99. package/fixtures/kg-golden/meetings/m02-halden-migration-planning.json +814 -0
  100. package/fixtures/kg-golden/meetings/m03-larkspur-weekly-sync.json +601 -0
  101. package/fixtures/kg-golden/meetings/m04-corvid-intake-discovery.json +690 -0
  102. package/fixtures/kg-golden/meetings/m05-hosting-vendor-selection.json +631 -0
  103. package/fixtures/kg-golden/meetings/m06-northwind-floor-data-review.json +649 -0
  104. package/fixtures/kg-golden/meetings/m07-gullwing-intro-notes.json +428 -0
  105. package/fixtures/kg-golden/meetings/m08-halden-migration-checkpoint.json +672 -0
  106. package/fixtures/kg-golden/meetings/m09-northwind-platform-org-update.json +711 -0
  107. package/fixtures/kg-golden/meetings/m10-corvid-prototype-review.json +623 -0
  108. package/fixtures/kg-golden/meetings/m11-solvane-grid-dashboard-scoping.json +689 -0
  109. package/fixtures/kg-golden/meetings/m12-northwind-pilot-replan.json +681 -0
  110. package/fixtures/kg-golden/meetings/m13-halden-cutover-go-no-go.json +721 -0
  111. package/fixtures/kg-golden/meetings/m14-gullwing-discovery-readout.json +719 -0
  112. package/fixtures/kg-golden/meetings/m15-halden-handover-ravi-leaving.json +716 -0
  113. package/fixtures/kg-golden/meetings/m16-varden-claims-portal-intro.json +704 -0
  114. package/fixtures/kg-golden/meetings/m17-corvid-usability-debrief.json +572 -0
  115. package/fixtures/kg-golden/meetings/m18-hosting-decision-revisited.json +655 -0
  116. package/fixtures/kg-golden/meetings/m19-solvane-integration-kickoff.json +726 -0
  117. package/fixtures/kg-golden/meetings/m20-northwind-go-live-retro.json +673 -0
  118. package/fixtures/kg-golden/meetings/m21-quarterly-account-review.json +449 -0
  119. package/fixtures/kg-golden/meetings/m22-halden-intro-call-2020.json +558 -0
  120. package/fixtures/kg-golden/meetings/m23-gullwing-model-review.json +702 -0
  121. package/fixtures/kg-golden/meetings/m24-varden-discovery-midpoint.json +643 -0
  122. package/fixtures/kg-golden/meetings/m25-corvid-rollout-planning.json +642 -0
  123. package/fixtures/kg-golden/meetings/m26-larkspur-engineering-prep.json +695 -0
  124. package/fixtures/kg-golden/meetings/m27-solvane-phase-one-demo.json +649 -0
  125. package/fixtures/kg-golden/meetings/m28-northwind-building-5-scoping.json +715 -0
  126. package/fixtures/kg-golden/meetings/m29-halden-southern-cutover-review.json +752 -0
  127. package/fixtures/kg-golden/meetings/m30-varden-portal-build-kickoff.json +697 -0
  128. package/fixtures/kg-golden/meetings/m31-gullwing-rollout-renewal.json +681 -0
  129. package/fixtures/kg-golden/meetings/m32-brambleway-weekly-sync.json +472 -0
  130. package/fixtures/kg-golden/meetings/m33-nina-oliver-one-on-one.json +342 -0
  131. package/fixtures/kg-golden/meetings/m34-coffee-with-dana.json +249 -0
  132. package/fixtures/kg-golden/meetings/m35-brambleway-june-sync.json +553 -0
  133. package/fixtures/kg-golden/meetings/m36-copenhagen-conference-planning.json +296 -0
  134. package/host/generated/client.d.ts +1 -0
  135. package/host/generated/client.js +5 -0
  136. package/host/generated/default.d.ts +1 -0
  137. package/host/generated/default.js +5 -0
  138. package/host/generated/edge.d.ts +1 -0
  139. package/host/generated/edge.js +1658 -0
  140. package/host/generated/index-browser.js +1684 -0
  141. package/host/generated/index.d.ts +192335 -0
  142. package/host/generated/index.js +1658 -0
  143. package/host/generated/package.json +139 -0
  144. package/host/generated/query_compiler_fast_bg.js +2 -0
  145. package/host/generated/query_compiler_fast_bg.wasm +0 -0
  146. package/host/generated/query_compiler_fast_bg.wasm-base64.js +2 -0
  147. package/host/generated/runtime/client.d.ts +3433 -0
  148. package/host/generated/runtime/client.js +110 -0
  149. package/host/generated/runtime/index-browser.d.ts +90 -0
  150. package/host/generated/runtime/index-browser.js +6 -0
  151. package/host/generated/runtime/wasm-compiler-edge.js +100 -0
  152. package/host/generated/schema.prisma +6312 -0
  153. package/host/generated/wasm-edge-light-loader.mjs +5 -0
  154. package/host/generated/wasm-worker-loader.mjs +5 -0
  155. package/host/prisma/fragments/kvox.ask.prisma +126 -0
  156. package/host/prisma/fragments/kvox.graph.prisma +1073 -0
  157. package/host/prisma/fragments/kvox.notes.prisma +787 -0
  158. package/host/prisma/fragments/kvox.search.prisma +211 -0
  159. package/host/prisma/fragments/kvox.transcripts.prisma +790 -0
  160. package/host/prisma/kvox.lock +101 -0
  161. package/host/prisma/migrations/20240101000000_initial/migration.sql +297 -0
  162. package/host/prisma/migrations/20240101000001_add_personal_access_tokens/migration.sql +31 -0
  163. package/host/prisma/migrations/20240101000002_add_credentials/migration.sql +20 -0
  164. package/host/prisma/migrations/20240101000003_add_notification_deliveries/migration.sql +27 -0
  165. package/host/prisma/migrations/20240101000004_drop_stale_uuid_defaults/migration.sql +35 -0
  166. package/host/prisma/migrations/20240101000005_add_notifications/migration.sql +22 -0
  167. package/host/prisma/migrations/20240101000006_add_push_subscriptions/migration.sql +25 -0
  168. package/host/prisma/migrations/20240101000007_add_jobs/migration.sql +110 -0
  169. package/host/prisma/migrations/20240101000008_add_worker_nodes/migration.sql +90 -0
  170. package/host/prisma/migrations/20240101000009_add_database_backup_runs/migration.sql +104 -0
  171. package/host/prisma/migrations/20240101000010_add_notification_broadcasts/migration.sql +57 -0
  172. package/host/prisma/migrations/20240101000011_add_backup_run_job_link/migration.sql +87 -0
  173. package/host/prisma/migrations/20240101000012_add_job_node_secrets/migration.sql +61 -0
  174. package/host/prisma/migrations/20240101000013_add_backup_run_pg_dump_version/migration.sql +26 -0
  175. package/host/prisma/migrations/20240101000014_add_job_claim_token/migration.sql +92 -0
  176. package/host/prisma/migrations/20240101000015_add_ai_platform/migration.sql +108 -0
  177. package/host/prisma/migrations/20240101000016_revoke_viewer_ai_use/migration.sql +32 -0
  178. package/host/prisma/migrations/20240101000017_add_user_credentials/migration.sql +29 -0
  179. package/host/prisma/migrations/20240101000018_add_device_session_credential_link/migration.sql +52 -0
  180. package/host/prisma/migrations/20240101000019_add_worker_node_vitals/migration.sql +3 -0
  181. package/host/prisma/migrations/20240101000020_add_job_trace_context/migration.sql +6 -0
  182. package/host/prisma/migrations/20240101000021_add_retention_created_at_indexes/migration.sql +13 -0
  183. package/host/prisma/migrations/20240101000022_add_organizations/migration.sql +142 -0
  184. package/host/prisma/migrations/20240101000023_split_system_org_roles/migration.sql +131 -0
  185. package/host/prisma/migrations/20240101000024_org_scoped_rls/migration.sql +215 -0
  186. package/host/prisma/migrations/20240101000025_add_groups/migration.sql +165 -0
  187. package/host/prisma/migrations/20240101000026_add_grants/migration.sql +117 -0
  188. package/host/prisma/migrations/20240101000027_add_org_settings/migration.sql +49 -0
  189. package/host/prisma/migrations/20240101000028_add_org_credentials/migration.sql +54 -0
  190. package/host/prisma/migrations/20240101000029_add_jobs_org_id/migration.sql +18 -0
  191. package/host/prisma/migrations/20240101000030_add_jobs_org_id_status_index/migration.sql +6 -0
  192. package/host/prisma/migrations/20240101000031_add_broadcast_target_org/migration.sql +21 -0
  193. package/host/prisma/migrations/20240101000032_add_android_app/migration.sql +60 -0
  194. package/host/prisma/migrations/20240101000033_open_job_reason/migration.sql +16 -0
  195. package/host/prisma/migrations/20240101000034_ai_usage_feature/migration.sql +37 -0
  196. package/host/prisma/migrations/20240101000035_add_app_metadata/migration.sql +49 -0
  197. package/host/prisma/migrations/20240101000036_open_sharing_vocabularies/migration.sql +97 -0
  198. package/host/prisma/migrations/20260914130000_kvox_add_transcripts/migration.sql +322 -0
  199. package/host/prisma/migrations/20260914140000_kvox_add_notes/migration.sql +311 -0
  200. package/host/prisma/migrations/20260915120000_kvox_add_search_vectors/migration.sql +150 -0
  201. package/host/prisma/migrations/20260915130000_kvox_add_search_embeddings/migration.sql +362 -0
  202. package/host/prisma/migrations/20260915210000_kvox_add_note_title_source/migration.sql +30 -0
  203. package/host/prisma/migrations/20260923120000_kvox_add_note_generation_context_snapshot/migration.sql +24 -0
  204. package/host/prisma/migrations/20260923130000_kvox_add_user_hidden_note_templates/migration.sql +35 -0
  205. package/host/prisma/migrations/20260923140000_kvox_add_transcript_speaker_identities/migration.sql +6 -0
  206. package/host/prisma/migrations/20260923150000_kvox_transcript_name_checks/migration.sql +95 -0
  207. package/host/prisma/migrations/20260923160000_kvox_add_note_body_format/migration.sql +27 -0
  208. package/host/prisma/migrations/20260923170000_kvox_add_note_version_body_format/migration.sql +23 -0
  209. package/host/prisma/migrations/20260926012548_kvox_add_knowledge_graph/migration.sql +680 -0
  210. package/host/prisma/migrations/20260926030000_kvox_fix_kg_relations_valid_precision_chk/migration.sql +29 -0
  211. package/host/prisma/migrations/20260926030100_kvox_add_transcript_recorded_at/migration.sql +9 -0
  212. package/host/prisma/migrations/20260926030200_kvox_kg_evidence_invariant/migration.sql +60 -0
  213. package/host/prisma/migrations/20260926040000_kvox_add_kg_graph_layouts/migration.sql +30 -0
  214. package/host/prisma/migrations/20260926050000_kvox_add_ask_conversations/migration.sql +99 -0
  215. package/host/prisma/migrations/20260926231512_kvox_add_kg_exports/migration.sql +52 -0
  216. package/host/prisma/migrations/20261016120000_kvox_transcripts_org_id/migration.sql +49 -0
  217. package/host/prisma/platform.lock +319 -0
  218. package/host/prisma/schema/app.kvox.ask.prisma +110 -0
  219. package/host/prisma/schema/app.kvox.graph.prisma +1030 -0
  220. package/host/prisma/schema/app.kvox.notes.prisma +746 -0
  221. package/host/prisma/schema/app.kvox.search.prisma +208 -0
  222. package/host/prisma/schema/app.kvox.transcripts.prisma +726 -0
  223. package/host/prisma/schema/platform.ai.prisma +419 -0
  224. package/host/prisma/schema/platform.android-app.prisma +46 -0
  225. package/host/prisma/schema/platform.base.prisma +15 -0
  226. package/host/prisma/schema/platform.credentials.prisma +156 -0
  227. package/host/prisma/schema/platform.db-backup.prisma +359 -0
  228. package/host/prisma/schema/platform.identity.prisma +638 -0
  229. package/host/prisma/schema/platform.jobs.prisma +824 -0
  230. package/host/prisma/schema/platform.notifications.prisma +641 -0
  231. package/host/prisma/schema/platform.settings.prisma +53 -0
  232. package/host/prisma/schema/platform.sharing.prisma +208 -0
  233. package/host/prisma/schema/platform.storage.prisma +118 -0
  234. package/package.json +112 -1
  235. package/parity/requests.ask.json +2681 -0
  236. package/parity/requests.m01.json +1554 -0
  237. package/parity/requests.m02.json +1554 -0
  238. package/parity/requests.m03.json +1554 -0
  239. package/parity/requests.m04.json +1554 -0
  240. package/parity/requests.m05.json +1554 -0
  241. package/parity/requests.m06.json +1554 -0
  242. package/parity/requests.m07.json +1554 -0
  243. package/parity/requests.m08.json +1554 -0
  244. package/parity/requests.m09.json +1554 -0
  245. package/parity/requests.m10.json +1554 -0
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ // Loading the golden set (issue #362): every `*.json` in a directory, parsed
3
+ // through `goldenFixtureSchema`, sorted by id. A malformed file throws with its
4
+ // name — a fixture that does not parse is never silently skipped.
5
+ //
6
+ // #580: the set ships inside `@marinoscar/kvox-eval` (`fixtures/kg-golden/`),
7
+ // resolved against the package root, so the same path works from `dist/` and
8
+ // from `src/` under ts-jest.
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.KgEvalLoadError = exports.GOLDEN_MEETINGS_DIR = exports.GOLDEN_SET_DIR = void 0;
11
+ exports.listFixtureFiles = listFixtureFiles;
12
+ exports.loadFixtureFile = loadFixtureFile;
13
+ exports.loadGoldenSet = loadGoldenSet;
14
+ exports.selectFixtures = selectFixtures;
15
+ exports.loadGoldenMeetings = loadGoldenMeetings;
16
+ const fs_1 = require("fs");
17
+ const path_1 = require("path");
18
+ const fixture_schema_js_1 = require("./fixture-schema.js");
19
+ /** `src/fixtures` and `dist/fixtures` both sit two levels below the package root. */
20
+ const PACKAGE_ROOT = (0, path_1.resolve)(__dirname, '..', '..');
21
+ /**
22
+ * The committed, synthetic golden set's directory (`fixtures/kg-golden/` of the package).
23
+ *
24
+ * @stability experimental
25
+ */
26
+ exports.GOLDEN_SET_DIR = (0, path_1.join)(PACKAGE_ROOT, 'fixtures', 'kg-golden');
27
+ /**
28
+ * The committed, synthetic meetings (`fixtures/kg-golden/meetings/`).
29
+ *
30
+ * @stability experimental
31
+ */
32
+ exports.GOLDEN_MEETINGS_DIR = (0, path_1.join)(exports.GOLDEN_SET_DIR, 'meetings');
33
+ /**
34
+ * A golden set (or a selection of it) that cannot be loaded: a file that is not
35
+ * JSON or does not match its schema, a duplicate id, an unknown id. The CLIs map
36
+ * it to exit code 2.
37
+ *
38
+ * @stability experimental
39
+ */
40
+ class KgEvalLoadError extends Error {
41
+ }
42
+ exports.KgEvalLoadError = KgEvalLoadError;
43
+ /**
44
+ * Every `*.json` file of a directory, sorted by name.
45
+ *
46
+ * @param dir - the directory.
47
+ * @returns absolute paths.
48
+ * @stability experimental
49
+ */
50
+ function listFixtureFiles(dir) {
51
+ return (0, fs_1.readdirSync)(dir)
52
+ .filter((f) => f.endsWith('.json'))
53
+ .sort()
54
+ .map((f) => (0, path_1.join)(dir, f));
55
+ }
56
+ /**
57
+ * One fixture file, parsed and validated.
58
+ *
59
+ * @param file - the file.
60
+ * @returns the fixture.
61
+ * @throws {@link KgEvalLoadError} when it is not JSON or does not match `goldenFixtureSchema`.
62
+ * @stability experimental
63
+ */
64
+ function loadFixtureFile(file) {
65
+ let raw;
66
+ try {
67
+ raw = JSON.parse((0, fs_1.readFileSync)(file, 'utf8'));
68
+ }
69
+ catch (err) {
70
+ throw new KgEvalLoadError(`${file}: not valid JSON (${err.message})`);
71
+ }
72
+ const parsed = fixture_schema_js_1.goldenFixtureSchema.safeParse(raw);
73
+ if (!parsed.success) {
74
+ const issues = parsed.error.issues
75
+ .slice(0, 5)
76
+ .map((i) => `${i.path.join('.')}: ${i.message}`)
77
+ .join('; ');
78
+ throw new KgEvalLoadError(`${file}: does not match goldenFixtureSchema — ${issues}`);
79
+ }
80
+ return parsed.data;
81
+ }
82
+ /**
83
+ * Every fixture of a directory, sorted by id (numerically: m2 before m10).
84
+ *
85
+ * @param dir - the directory; default the committed {@link GOLDEN_MEETINGS_DIR}.
86
+ * @returns the fixtures.
87
+ * @throws {@link KgEvalLoadError} on a malformed file or a duplicate id.
88
+ * @stability experimental
89
+ */
90
+ function loadGoldenSet(dir = exports.GOLDEN_MEETINGS_DIR) {
91
+ const fixtures = listFixtureFiles(dir).map(loadFixtureFile);
92
+ const seen = new Set();
93
+ for (const f of fixtures) {
94
+ if (seen.has(f.id))
95
+ throw new KgEvalLoadError(`${dir}: fixture id ${f.id} appears twice`);
96
+ seen.add(f.id);
97
+ }
98
+ return fixtures.sort((a, b) => a.id.localeCompare(b.id, 'en', { numeric: true }));
99
+ }
100
+ /**
101
+ * `--only m01,m07` / `--tag promotion`: both narrow; neither given keeps all.
102
+ *
103
+ * @param fixtures - the loaded set.
104
+ * @param only - fixture ids to keep, or `null`.
105
+ * @param tag - a tag every kept fixture carries, or `null`.
106
+ * @returns the selection, in set order.
107
+ * @throws {@link KgEvalLoadError} when `only` names an id the set does not have.
108
+ * @stability experimental
109
+ */
110
+ function selectFixtures(fixtures, only, tag) {
111
+ let out = fixtures;
112
+ if (only && only.length > 0) {
113
+ const unknown = only.filter((id) => !fixtures.some((f) => f.id === id));
114
+ if (unknown.length > 0)
115
+ throw new KgEvalLoadError(`unknown fixture id(s): ${unknown.join(', ')}`);
116
+ out = out.filter((f) => only.includes(f.id));
117
+ }
118
+ if (tag)
119
+ out = out.filter((f) => f.tags.includes(tag));
120
+ return out;
121
+ }
122
+ /**
123
+ * The committed golden meetings, optionally narrowed to some ids.
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * const [m01, m07] = loadGoldenMeetings(['m01', 'm07']);
128
+ * ```
129
+ *
130
+ * @param ids - fixture ids to keep (in set order); omitted or empty keeps all.
131
+ * @returns the fixtures.
132
+ * @throws {@link KgEvalLoadError} on a malformed file or an unknown id.
133
+ * @stability experimental
134
+ */
135
+ function loadGoldenMeetings(ids) {
136
+ return selectFixtures(loadGoldenSet(exports.GOLDEN_MEETINGS_DIR), ids && ids.length > 0 ? [...ids] : null, null);
137
+ }
@@ -0,0 +1,15 @@
1
+ import { type AskEvalQuestion } from '../ask/index.js';
2
+ /**
3
+ * The committed Ask question file (`fixtures/kg-golden/ask-questions.json`).
4
+ *
5
+ * @stability experimental
6
+ */
7
+ export declare const ASK_QUESTIONS_PATH: string;
8
+ /**
9
+ * The committed Ask questions, parsed and validated.
10
+ *
11
+ * @returns every question, in file order.
12
+ * @throws `AskEvalQuestionLoadError` when the file is not valid JSON or does not match the schema.
13
+ * @stability experimental
14
+ */
15
+ export declare function loadGoldenAskQuestions(): AskEvalQuestion[];
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // The Ask golden question file (issue #382), shipped beside the meetings it is
3
+ // asked about. The schema and the parser are the `ask` slice's; this is only
4
+ // where the committed file is.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ASK_QUESTIONS_PATH = void 0;
7
+ exports.loadGoldenAskQuestions = loadGoldenAskQuestions;
8
+ const path_1 = require("path");
9
+ const index_js_1 = require("../ask/index.js");
10
+ const load_js_1 = require("./load.js");
11
+ /**
12
+ * The committed Ask question file (`fixtures/kg-golden/ask-questions.json`).
13
+ *
14
+ * @stability experimental
15
+ */
16
+ exports.ASK_QUESTIONS_PATH = (0, path_1.join)(load_js_1.GOLDEN_SET_DIR, 'ask-questions.json');
17
+ /**
18
+ * The committed Ask questions, parsed and validated.
19
+ *
20
+ * @returns every question, in file order.
21
+ * @throws `AskEvalQuestionLoadError` when the file is not valid JSON or does not match the schema.
22
+ * @stability experimental
23
+ */
24
+ function loadGoldenAskQuestions() {
25
+ return (0, index_js_1.loadAskEvalQuestions)(exports.ASK_QUESTIONS_PATH);
26
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `@marinoscar/kvox-eval`: the KVox knowledge-graph and Ask evaluation.
3
+ *
4
+ * @remarks
5
+ * Written only against the model port (`KvoxAiPort` of `@marinoscar/kvox-api/ports`,
6
+ * bound with `createKvoxAi` of `@marinoscar/kvox-ai`), so the web edition and KVox
7
+ * Desktop measure the same prompts, schemas and validators the product ships.
8
+ * Slices: `kg` (prediction schema, scorer, report, the gold and live runners,
9
+ * `runKgEval`), `ask` (the Ask question schema, scorer and report), `live` (the key
10
+ * from the environment and the live port over the provider adapters),
11
+ * `real-data` (the guard that keeps real meetings out of the repository) and `cli`
12
+ * (`kvox-eval`). The golden set is the `@marinoscar/kvox-eval/fixtures` entry.
13
+ *
14
+ * @packageDocumentation
15
+ */
16
+ export * from './ask/index.js';
17
+ export * from './cli/index.js';
18
+ export * from './kg/index.js';
19
+ export * from './live/index.js';
20
+ export * from './real-data/index.js';
package/dist/index.js ADDED
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /**
18
+ * `@marinoscar/kvox-eval`: the KVox knowledge-graph and Ask evaluation.
19
+ *
20
+ * @remarks
21
+ * Written only against the model port (`KvoxAiPort` of `@marinoscar/kvox-api/ports`,
22
+ * bound with `createKvoxAi` of `@marinoscar/kvox-ai`), so the web edition and KVox
23
+ * Desktop measure the same prompts, schemas and validators the product ships.
24
+ * Slices: `kg` (prediction schema, scorer, report, the gold and live runners,
25
+ * `runKgEval`), `ask` (the Ask question schema, scorer and report), `live` (the key
26
+ * from the environment and the live port over the provider adapters),
27
+ * `real-data` (the guard that keeps real meetings out of the repository) and `cli`
28
+ * (`kvox-eval`). The golden set is the `@marinoscar/kvox-eval/fixtures` entry.
29
+ *
30
+ * @packageDocumentation
31
+ */
32
+ __exportStar(require("./ask/index.js"), exports);
33
+ __exportStar(require("./cli/index.js"), exports);
34
+ __exportStar(require("./kg/index.js"), exports);
35
+ __exportStar(require("./live/index.js"), exports);
36
+ __exportStar(require("./real-data/index.js"), exports);
@@ -0,0 +1,13 @@
1
+ import type { GoldenFixture } from '../fixtures/index.js';
2
+ import type { KgEvalPrediction } from './prediction-schema.js';
3
+ /**
4
+ * The prediction synthesised from a fixture's own labels (`--predictions gold`): the
5
+ * harness's self-test, which must score 1.000 everywhere. Resolutions come from
6
+ * `existingId` (a prechecked link), so auto-link precision is exercised too.
7
+ *
8
+ * @param fixture - the fixture.
9
+ * @returns its gold prediction.
10
+ *
11
+ * @stability experimental
12
+ */
13
+ export declare function goldPrediction(fixture: GoldenFixture): KgEvalPrediction;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ // `--predictions gold`: predictions synthesised from the labels themselves.
3
+ // The harness's self-test — scoring it must print 1.000 everywhere, so any
4
+ // other number is a bug in the scorer or an inconsistent fixture, never in a
5
+ // model. Resolutions come from `existingId` (a prechecked link) so auto-link
6
+ // precision is exercised too.
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.goldPrediction = goldPrediction;
9
+ const toPredicted = (ev) => ev.map((e) => ({ source: e.source, segmentId: e.source === 'segment' ? e.segmentId : null, quote: e.quote }));
10
+ /**
11
+ * The prediction synthesised from a fixture's own labels (`--predictions gold`): the
12
+ * harness's self-test, which must score 1.000 everywhere. Resolutions come from
13
+ * `existingId` (a prechecked link), so auto-link precision is exercised too.
14
+ *
15
+ * @param fixture - the fixture.
16
+ * @returns its gold prediction.
17
+ *
18
+ * @stability experimental
19
+ */
20
+ function goldPrediction(fixture) {
21
+ return {
22
+ fixtureId: fixture.id,
23
+ model: null,
24
+ entities: fixture.labels.entities.map((e) => ({
25
+ ref: e.key,
26
+ type: e.type,
27
+ label: e.label,
28
+ aliases: [...e.aliases],
29
+ resolution: e.existingId
30
+ ? { outcome: 'linked', entityId: e.existingId, score: 1, prechecked: true }
31
+ : { outcome: 'new', entityId: null, score: null, prechecked: false },
32
+ evidence: toPredicted(e.evidence),
33
+ })),
34
+ relations: fixture.labels.relations.map((r) => ({
35
+ type: r.type,
36
+ from: r.from,
37
+ to: r.to,
38
+ validFrom: r.validFrom,
39
+ validTo: r.validTo,
40
+ precision: r.precision,
41
+ evidence: toPredicted(r.evidence),
42
+ })),
43
+ items: fixture.labels.items.map((i) => ({
44
+ kind: i.kind,
45
+ subject: i.subject,
46
+ owner: i.owner,
47
+ counterparty: i.counterparty,
48
+ title: i.title,
49
+ statement: i.statement,
50
+ occurredAt: i.occurredAt,
51
+ dueAt: i.dueAt,
52
+ sensitivity: i.sensitivity,
53
+ evidence: toPredicted(i.evidence),
54
+ })),
55
+ stats: { uncited: 0, invalid: 0 },
56
+ };
57
+ }
@@ -0,0 +1,17 @@
1
+ export { goldPrediction } from './gold-runner.js';
2
+ export { emptyPrediction, kgEvalPredictionSchema, predictedEntitySchema, predictedEvidenceSchema, predictedItemSchema, predictedRelationSchema, predictedResolutionSchema, } from './prediction-schema.js';
3
+ export type { KgEvalPrediction, KgEvalPredictionInput, PredictedEntity, PredictedEvidence, PredictedItem, PredictedRelation, } from './prediction-schema.js';
4
+ export { loadPredictionFile } from './predictions.js';
5
+ export { buildReport, formatReport, kgEvalReportSchema } from './report.js';
6
+ export type { KgEvalReport } from './report.js';
7
+ export { KgEvalTargetsError, KgEvalUsageError, runKgEval } from './run-kg-eval.js';
8
+ export type { RunKgEvalOptions } from './run-kg-eval.js';
9
+ export { findKgEvalRunner, KG_EVAL_RUNNER_ALIASES, KG_EVAL_RUNNERS } from './runner.js';
10
+ export type { KgEvalRunner, KgEvalRunnerDeps, KgEvalRunnerFactory, KgEvalRunOptions } from './runner.js';
11
+ export { autoLinkPrecision, BASE_REPORT_TYPES, commitmentRecall, ENTITY_MATCH_JACCARD, ENTITY_REPORT_TYPES, entityCoverage, f1Of, ITEM_REPORT_TYPES, ITEM_STATEMENT_F1, matchEntities, precisionOf, ratio, recallOf, scoreFixture, scoreRun, temporalEqual, } from './scorer.js';
12
+ export type { Counts, FixtureScore, RunScore } from './scorer.js';
13
+ export { KG_EVAL_TARGETS } from './targets.js';
14
+ export type { KgEvalTargetKey } from './targets.js';
15
+ export { collapseWhitespace, jaccard, normalizeName, quoteFoundIn, tokenF1, tokenSet } from './text.js';
16
+ export { EVAL_CONTEXT_WINDOW_TOKENS, EVAL_MAX_OUTPUT_TOKENS, EVAL_TIMEOUT_MS, EVAL_USER_ID, createExtractRunner, fixtureToInput, runExtraction, } from './runners/extract-runner.js';
17
+ export { createExtractResolveRunner, trigramSimilarity } from './runners/extract-resolve-runner.js';
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.trigramSimilarity = exports.createExtractResolveRunner = exports.runExtraction = exports.fixtureToInput = exports.createExtractRunner = exports.EVAL_USER_ID = exports.EVAL_TIMEOUT_MS = exports.EVAL_MAX_OUTPUT_TOKENS = exports.EVAL_CONTEXT_WINDOW_TOKENS = exports.tokenSet = exports.tokenF1 = exports.quoteFoundIn = exports.normalizeName = exports.jaccard = exports.collapseWhitespace = exports.KG_EVAL_TARGETS = exports.temporalEqual = exports.scoreRun = exports.scoreFixture = exports.recallOf = exports.ratio = exports.precisionOf = exports.matchEntities = exports.ITEM_STATEMENT_F1 = exports.ITEM_REPORT_TYPES = exports.f1Of = exports.entityCoverage = exports.ENTITY_REPORT_TYPES = exports.ENTITY_MATCH_JACCARD = exports.commitmentRecall = exports.BASE_REPORT_TYPES = exports.autoLinkPrecision = exports.KG_EVAL_RUNNERS = exports.KG_EVAL_RUNNER_ALIASES = exports.findKgEvalRunner = exports.runKgEval = exports.KgEvalUsageError = exports.KgEvalTargetsError = exports.kgEvalReportSchema = exports.formatReport = exports.buildReport = exports.loadPredictionFile = exports.predictedResolutionSchema = exports.predictedRelationSchema = exports.predictedItemSchema = exports.predictedEvidenceSchema = exports.predictedEntitySchema = exports.kgEvalPredictionSchema = exports.emptyPrediction = exports.goldPrediction = void 0;
4
+ // The kg slice's public surface (re-exported by the package root).
5
+ var gold_runner_js_1 = require("./gold-runner.js");
6
+ Object.defineProperty(exports, "goldPrediction", { enumerable: true, get: function () { return gold_runner_js_1.goldPrediction; } });
7
+ var prediction_schema_js_1 = require("./prediction-schema.js");
8
+ Object.defineProperty(exports, "emptyPrediction", { enumerable: true, get: function () { return prediction_schema_js_1.emptyPrediction; } });
9
+ Object.defineProperty(exports, "kgEvalPredictionSchema", { enumerable: true, get: function () { return prediction_schema_js_1.kgEvalPredictionSchema; } });
10
+ Object.defineProperty(exports, "predictedEntitySchema", { enumerable: true, get: function () { return prediction_schema_js_1.predictedEntitySchema; } });
11
+ Object.defineProperty(exports, "predictedEvidenceSchema", { enumerable: true, get: function () { return prediction_schema_js_1.predictedEvidenceSchema; } });
12
+ Object.defineProperty(exports, "predictedItemSchema", { enumerable: true, get: function () { return prediction_schema_js_1.predictedItemSchema; } });
13
+ Object.defineProperty(exports, "predictedRelationSchema", { enumerable: true, get: function () { return prediction_schema_js_1.predictedRelationSchema; } });
14
+ Object.defineProperty(exports, "predictedResolutionSchema", { enumerable: true, get: function () { return prediction_schema_js_1.predictedResolutionSchema; } });
15
+ var predictions_js_1 = require("./predictions.js");
16
+ Object.defineProperty(exports, "loadPredictionFile", { enumerable: true, get: function () { return predictions_js_1.loadPredictionFile; } });
17
+ var report_js_1 = require("./report.js");
18
+ Object.defineProperty(exports, "buildReport", { enumerable: true, get: function () { return report_js_1.buildReport; } });
19
+ Object.defineProperty(exports, "formatReport", { enumerable: true, get: function () { return report_js_1.formatReport; } });
20
+ Object.defineProperty(exports, "kgEvalReportSchema", { enumerable: true, get: function () { return report_js_1.kgEvalReportSchema; } });
21
+ var run_kg_eval_js_1 = require("./run-kg-eval.js");
22
+ Object.defineProperty(exports, "KgEvalTargetsError", { enumerable: true, get: function () { return run_kg_eval_js_1.KgEvalTargetsError; } });
23
+ Object.defineProperty(exports, "KgEvalUsageError", { enumerable: true, get: function () { return run_kg_eval_js_1.KgEvalUsageError; } });
24
+ Object.defineProperty(exports, "runKgEval", { enumerable: true, get: function () { return run_kg_eval_js_1.runKgEval; } });
25
+ var runner_js_1 = require("./runner.js");
26
+ Object.defineProperty(exports, "findKgEvalRunner", { enumerable: true, get: function () { return runner_js_1.findKgEvalRunner; } });
27
+ Object.defineProperty(exports, "KG_EVAL_RUNNER_ALIASES", { enumerable: true, get: function () { return runner_js_1.KG_EVAL_RUNNER_ALIASES; } });
28
+ Object.defineProperty(exports, "KG_EVAL_RUNNERS", { enumerable: true, get: function () { return runner_js_1.KG_EVAL_RUNNERS; } });
29
+ var scorer_js_1 = require("./scorer.js");
30
+ Object.defineProperty(exports, "autoLinkPrecision", { enumerable: true, get: function () { return scorer_js_1.autoLinkPrecision; } });
31
+ Object.defineProperty(exports, "BASE_REPORT_TYPES", { enumerable: true, get: function () { return scorer_js_1.BASE_REPORT_TYPES; } });
32
+ Object.defineProperty(exports, "commitmentRecall", { enumerable: true, get: function () { return scorer_js_1.commitmentRecall; } });
33
+ Object.defineProperty(exports, "ENTITY_MATCH_JACCARD", { enumerable: true, get: function () { return scorer_js_1.ENTITY_MATCH_JACCARD; } });
34
+ Object.defineProperty(exports, "ENTITY_REPORT_TYPES", { enumerable: true, get: function () { return scorer_js_1.ENTITY_REPORT_TYPES; } });
35
+ Object.defineProperty(exports, "entityCoverage", { enumerable: true, get: function () { return scorer_js_1.entityCoverage; } });
36
+ Object.defineProperty(exports, "f1Of", { enumerable: true, get: function () { return scorer_js_1.f1Of; } });
37
+ Object.defineProperty(exports, "ITEM_REPORT_TYPES", { enumerable: true, get: function () { return scorer_js_1.ITEM_REPORT_TYPES; } });
38
+ Object.defineProperty(exports, "ITEM_STATEMENT_F1", { enumerable: true, get: function () { return scorer_js_1.ITEM_STATEMENT_F1; } });
39
+ Object.defineProperty(exports, "matchEntities", { enumerable: true, get: function () { return scorer_js_1.matchEntities; } });
40
+ Object.defineProperty(exports, "precisionOf", { enumerable: true, get: function () { return scorer_js_1.precisionOf; } });
41
+ Object.defineProperty(exports, "ratio", { enumerable: true, get: function () { return scorer_js_1.ratio; } });
42
+ Object.defineProperty(exports, "recallOf", { enumerable: true, get: function () { return scorer_js_1.recallOf; } });
43
+ Object.defineProperty(exports, "scoreFixture", { enumerable: true, get: function () { return scorer_js_1.scoreFixture; } });
44
+ Object.defineProperty(exports, "scoreRun", { enumerable: true, get: function () { return scorer_js_1.scoreRun; } });
45
+ Object.defineProperty(exports, "temporalEqual", { enumerable: true, get: function () { return scorer_js_1.temporalEqual; } });
46
+ var targets_js_1 = require("./targets.js");
47
+ Object.defineProperty(exports, "KG_EVAL_TARGETS", { enumerable: true, get: function () { return targets_js_1.KG_EVAL_TARGETS; } });
48
+ var text_js_1 = require("./text.js");
49
+ Object.defineProperty(exports, "collapseWhitespace", { enumerable: true, get: function () { return text_js_1.collapseWhitespace; } });
50
+ Object.defineProperty(exports, "jaccard", { enumerable: true, get: function () { return text_js_1.jaccard; } });
51
+ Object.defineProperty(exports, "normalizeName", { enumerable: true, get: function () { return text_js_1.normalizeName; } });
52
+ Object.defineProperty(exports, "quoteFoundIn", { enumerable: true, get: function () { return text_js_1.quoteFoundIn; } });
53
+ Object.defineProperty(exports, "tokenF1", { enumerable: true, get: function () { return text_js_1.tokenF1; } });
54
+ Object.defineProperty(exports, "tokenSet", { enumerable: true, get: function () { return text_js_1.tokenSet; } });
55
+ var extract_runner_js_1 = require("./runners/extract-runner.js");
56
+ Object.defineProperty(exports, "EVAL_CONTEXT_WINDOW_TOKENS", { enumerable: true, get: function () { return extract_runner_js_1.EVAL_CONTEXT_WINDOW_TOKENS; } });
57
+ Object.defineProperty(exports, "EVAL_MAX_OUTPUT_TOKENS", { enumerable: true, get: function () { return extract_runner_js_1.EVAL_MAX_OUTPUT_TOKENS; } });
58
+ Object.defineProperty(exports, "EVAL_TIMEOUT_MS", { enumerable: true, get: function () { return extract_runner_js_1.EVAL_TIMEOUT_MS; } });
59
+ Object.defineProperty(exports, "EVAL_USER_ID", { enumerable: true, get: function () { return extract_runner_js_1.EVAL_USER_ID; } });
60
+ Object.defineProperty(exports, "createExtractRunner", { enumerable: true, get: function () { return extract_runner_js_1.createExtractRunner; } });
61
+ Object.defineProperty(exports, "fixtureToInput", { enumerable: true, get: function () { return extract_runner_js_1.fixtureToInput; } });
62
+ Object.defineProperty(exports, "runExtraction", { enumerable: true, get: function () { return extract_runner_js_1.runExtraction; } });
63
+ var extract_resolve_runner_js_1 = require("./runners/extract-resolve-runner.js");
64
+ Object.defineProperty(exports, "createExtractResolveRunner", { enumerable: true, get: function () { return extract_resolve_runner_js_1.createExtractResolveRunner; } });
65
+ Object.defineProperty(exports, "trigramSimilarity", { enumerable: true, get: function () { return extract_resolve_runner_js_1.trigramSimilarity; } });
@@ -0,0 +1,7 @@
1
+ import { internals as extractionInternals } from '@marinoscar/kvox-api/graph-extraction/testing';
2
+ export declare const EXTRACTION_SCHEMA_NAME: string, addDeterministicRows: typeof extractionInternals.addDeterministicRows, assembleExtractionPrompt: typeof extractionInternals.assembleExtractionPrompt, bandFor: typeof extractionInternals.bandFor, buildExtractionContext: typeof extractionInternals.buildExtractionContext, buildExtractionOutputSchema: typeof extractionInternals.buildExtractionOutputSchema, candidateEdge: typeof extractionInternals.candidateEdge, decide: typeof extractionInternals.decide, entityView: typeof extractionInternals.entityView, existingId: typeof extractionInternals.existingId, extractionRowCaps: typeof extractionInternals.extractionRowCaps, isExclusiveTemporal: typeof extractionInternals.isExclusiveTemporal, normalizeForMatch: typeof extractionInternals.normalizeForMatch, placeholderId: typeof extractionInternals.placeholderId, proposedRelationRange: typeof extractionInternals.proposedRelationRange, rankCandidates: typeof extractionInternals.rankCandidates, relationKnown: typeof extractionInternals.relationKnown, resolveEndpoint: typeof extractionInternals.resolveEndpoint, ruleForEffectiveRelation: typeof extractionInternals.ruleForEffectiveRelation, scoreCandidate: typeof extractionInternals.scoreCandidate, validateExtraction: typeof extractionInternals.validateExtraction;
3
+ export type EvidenceDraft = extractionInternals.EvidenceDraft;
4
+ export type ExtractionInput = extractionInternals.ExtractionInput;
5
+ export type KnownEntityRow = extractionInternals.KnownEntityRow;
6
+ export type ProposalEntityView = extractionInternals.ProposalEntityView;
7
+ export type ProposedRow = extractionInternals.ProposedRow;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ // =============================================================================
3
+ // The slices' internals the kg evaluation runs (issue #580; #496 before it)
4
+ // =============================================================================
5
+ //
6
+ // `@marinoscar/kvox-api/graph/testing` and `/graph-extraction/testing` expose the
7
+ // functions the slices keep internal (the extraction prompt and schema builders,
8
+ // the resolution scorer, the temporal engine's helpers) in an `internals`
9
+ // namespace tagged `@internal`: no stability promise. This file is the ONE place
10
+ // the package spells that out, so the runners name a function from here and
11
+ // never from the package's internal paths. NOT EXPORTED from the package: a host
12
+ // that needs these names reads them from kvox-api itself.
13
+ // =============================================================================
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.validateExtraction = exports.scoreCandidate = exports.ruleForEffectiveRelation = exports.resolveEndpoint = exports.relationKnown = exports.rankCandidates = exports.proposedRelationRange = exports.placeholderId = exports.normalizeForMatch = exports.isExclusiveTemporal = exports.extractionRowCaps = exports.existingId = exports.entityView = exports.decide = exports.candidateEdge = exports.buildExtractionOutputSchema = exports.buildExtractionContext = exports.bandFor = exports.assembleExtractionPrompt = exports.addDeterministicRows = exports.EXTRACTION_SCHEMA_NAME = void 0;
16
+ const testing_1 = require("@marinoscar/kvox-api/graph-extraction/testing");
17
+ exports.EXTRACTION_SCHEMA_NAME = testing_1.internals.EXTRACTION_SCHEMA_NAME, exports.addDeterministicRows = testing_1.internals.addDeterministicRows, exports.assembleExtractionPrompt = testing_1.internals.assembleExtractionPrompt, exports.bandFor = testing_1.internals.bandFor, exports.buildExtractionContext = testing_1.internals.buildExtractionContext, exports.buildExtractionOutputSchema = testing_1.internals.buildExtractionOutputSchema, exports.candidateEdge = testing_1.internals.candidateEdge, exports.decide = testing_1.internals.decide, exports.entityView = testing_1.internals.entityView, exports.existingId = testing_1.internals.existingId, exports.extractionRowCaps = testing_1.internals.extractionRowCaps, exports.isExclusiveTemporal = testing_1.internals.isExclusiveTemporal, exports.normalizeForMatch = testing_1.internals.normalizeForMatch, exports.placeholderId = testing_1.internals.placeholderId, exports.proposedRelationRange = testing_1.internals.proposedRelationRange, exports.rankCandidates = testing_1.internals.rankCandidates, exports.relationKnown = testing_1.internals.relationKnown, exports.resolveEndpoint = testing_1.internals.resolveEndpoint, exports.ruleForEffectiveRelation = testing_1.internals.ruleForEffectiveRelation, exports.scoreCandidate = testing_1.internals.scoreCandidate, exports.validateExtraction = testing_1.internals.validateExtraction;