@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.
- package/CHANGELOG.md +14 -0
- package/LICENSE +21 -0
- package/README.md +166 -0
- package/dist/ask/index.d.ts +6 -0
- package/dist/ask/index.js +28 -0
- package/dist/ask/question-schema.d.ts +121 -0
- package/dist/ask/question-schema.js +167 -0
- package/dist/ask/report.d.ts +88 -0
- package/dist/ask/report.js +170 -0
- package/dist/ask/scorer.d.ts +104 -0
- package/dist/ask/scorer.js +164 -0
- package/dist/ask-run/ask-command.d.ts +62 -0
- package/dist/ask-run/ask-command.js +254 -0
- package/dist/ask-run/host/app.d.ts +65 -0
- package/dist/ask-run/host/app.js +146 -0
- package/dist/ask-run/host/db.d.ts +38 -0
- package/dist/ask-run/host/db.js +126 -0
- package/dist/ask-run/host/ports.d.ts +35 -0
- package/dist/ask-run/host/ports.js +113 -0
- package/dist/ask-run/index.d.ts +13 -0
- package/dist/ask-run/index.js +35 -0
- package/dist/ask-run/replay.d.ts +128 -0
- package/dist/ask-run/replay.js +212 -0
- package/dist/ask-run/run-ask-eval.d.ts +125 -0
- package/dist/ask-run/run-ask-eval.js +193 -0
- package/dist/ask-run/seed-golden-graph.d.ts +64 -0
- package/dist/ask-run/seed-golden-graph.js +495 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.js +12 -0
- package/dist/cli/kg-command.d.ts +66 -0
- package/dist/cli/kg-command.js +238 -0
- package/dist/cli/main.d.ts +18 -0
- package/dist/cli/main.js +69 -0
- package/dist/fixtures/domains.d.ts +16 -0
- package/dist/fixtures/domains.js +33 -0
- package/dist/fixtures/fixture-schema.d.ts +323 -0
- package/dist/fixtures/fixture-schema.js +199 -0
- package/dist/fixtures/index.d.ts +16 -0
- package/dist/fixtures/index.js +40 -0
- package/dist/fixtures/load.d.ts +73 -0
- package/dist/fixtures/load.js +137 -0
- package/dist/fixtures/questions.d.ts +15 -0
- package/dist/fixtures/questions.js +26 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +36 -0
- package/dist/kg/gold-runner.d.ts +13 -0
- package/dist/kg/gold-runner.js +57 -0
- package/dist/kg/index.d.ts +17 -0
- package/dist/kg/index.js +65 -0
- package/dist/kg/internals.d.ts +7 -0
- package/dist/kg/internals.js +17 -0
- package/dist/kg/prediction-schema.d.ts +245 -0
- package/dist/kg/prediction-schema.js +102 -0
- package/dist/kg/predictions.d.ts +11 -0
- package/dist/kg/predictions.js +49 -0
- package/dist/kg/report.d.ts +84 -0
- package/dist/kg/report.js +125 -0
- package/dist/kg/run-kg-eval.d.ts +77 -0
- package/dist/kg/run-kg-eval.js +137 -0
- package/dist/kg/runner.d.ts +72 -0
- package/dist/kg/runner.js +51 -0
- package/dist/kg/runners/extract-resolve-runner.d.ts +40 -0
- package/dist/kg/runners/extract-resolve-runner.js +199 -0
- package/dist/kg/runners/extract-runner.d.ts +65 -0
- package/dist/kg/runners/extract-runner.js +243 -0
- package/dist/kg/scorer.d.ts +226 -0
- package/dist/kg/scorer.js +463 -0
- package/dist/kg/targets.d.ts +17 -0
- package/dist/kg/targets.js +16 -0
- package/dist/kg/text.d.ts +45 -0
- package/dist/kg/text.js +100 -0
- package/dist/live/adapters.d.ts +16 -0
- package/dist/live/adapters.js +58 -0
- package/dist/live/env.d.ts +39 -0
- package/dist/live/env.js +56 -0
- package/dist/live/index.d.ts +6 -0
- package/dist/live/index.js +16 -0
- package/dist/live/live-ai.d.ts +104 -0
- package/dist/live/live-ai.js +157 -0
- package/dist/parity/constants.d.ts +79 -0
- package/dist/parity/constants.js +104 -0
- package/dist/parity/index.d.ts +20 -0
- package/dist/parity/index.js +38 -0
- package/dist/parity/internals.d.ts +8 -0
- package/dist/parity/internals.js +16 -0
- package/dist/parity/scenario.d.ts +45 -0
- package/dist/parity/scenario.js +245 -0
- package/dist/parity/script.d.ts +44 -0
- package/dist/parity/script.js +136 -0
- package/dist/parity/snapshot.d.ts +43 -0
- package/dist/parity/snapshot.js +71 -0
- package/dist/real-data/index.d.ts +2 -0
- package/dist/real-data/index.js +12 -0
- package/dist/real-data/real-data.d.ts +76 -0
- package/dist/real-data/real-data.js +156 -0
- package/fixtures/kg-golden/README.md +136 -0
- package/fixtures/kg-golden/ask-questions.json +458 -0
- package/fixtures/kg-golden/meetings/m01-northwind-pilot-kickoff.json +792 -0
- package/fixtures/kg-golden/meetings/m02-halden-migration-planning.json +814 -0
- package/fixtures/kg-golden/meetings/m03-larkspur-weekly-sync.json +601 -0
- package/fixtures/kg-golden/meetings/m04-corvid-intake-discovery.json +690 -0
- package/fixtures/kg-golden/meetings/m05-hosting-vendor-selection.json +631 -0
- package/fixtures/kg-golden/meetings/m06-northwind-floor-data-review.json +649 -0
- package/fixtures/kg-golden/meetings/m07-gullwing-intro-notes.json +428 -0
- package/fixtures/kg-golden/meetings/m08-halden-migration-checkpoint.json +672 -0
- package/fixtures/kg-golden/meetings/m09-northwind-platform-org-update.json +711 -0
- package/fixtures/kg-golden/meetings/m10-corvid-prototype-review.json +623 -0
- package/fixtures/kg-golden/meetings/m11-solvane-grid-dashboard-scoping.json +689 -0
- package/fixtures/kg-golden/meetings/m12-northwind-pilot-replan.json +681 -0
- package/fixtures/kg-golden/meetings/m13-halden-cutover-go-no-go.json +721 -0
- package/fixtures/kg-golden/meetings/m14-gullwing-discovery-readout.json +719 -0
- package/fixtures/kg-golden/meetings/m15-halden-handover-ravi-leaving.json +716 -0
- package/fixtures/kg-golden/meetings/m16-varden-claims-portal-intro.json +704 -0
- package/fixtures/kg-golden/meetings/m17-corvid-usability-debrief.json +572 -0
- package/fixtures/kg-golden/meetings/m18-hosting-decision-revisited.json +655 -0
- package/fixtures/kg-golden/meetings/m19-solvane-integration-kickoff.json +726 -0
- package/fixtures/kg-golden/meetings/m20-northwind-go-live-retro.json +673 -0
- package/fixtures/kg-golden/meetings/m21-quarterly-account-review.json +449 -0
- package/fixtures/kg-golden/meetings/m22-halden-intro-call-2020.json +558 -0
- package/fixtures/kg-golden/meetings/m23-gullwing-model-review.json +702 -0
- package/fixtures/kg-golden/meetings/m24-varden-discovery-midpoint.json +643 -0
- package/fixtures/kg-golden/meetings/m25-corvid-rollout-planning.json +642 -0
- package/fixtures/kg-golden/meetings/m26-larkspur-engineering-prep.json +695 -0
- package/fixtures/kg-golden/meetings/m27-solvane-phase-one-demo.json +649 -0
- package/fixtures/kg-golden/meetings/m28-northwind-building-5-scoping.json +715 -0
- package/fixtures/kg-golden/meetings/m29-halden-southern-cutover-review.json +752 -0
- package/fixtures/kg-golden/meetings/m30-varden-portal-build-kickoff.json +697 -0
- package/fixtures/kg-golden/meetings/m31-gullwing-rollout-renewal.json +681 -0
- package/fixtures/kg-golden/meetings/m32-brambleway-weekly-sync.json +472 -0
- package/fixtures/kg-golden/meetings/m33-nina-oliver-one-on-one.json +342 -0
- package/fixtures/kg-golden/meetings/m34-coffee-with-dana.json +249 -0
- package/fixtures/kg-golden/meetings/m35-brambleway-june-sync.json +553 -0
- package/fixtures/kg-golden/meetings/m36-copenhagen-conference-planning.json +296 -0
- package/host/generated/client.d.ts +1 -0
- package/host/generated/client.js +5 -0
- package/host/generated/default.d.ts +1 -0
- package/host/generated/default.js +5 -0
- package/host/generated/edge.d.ts +1 -0
- package/host/generated/edge.js +1658 -0
- package/host/generated/index-browser.js +1684 -0
- package/host/generated/index.d.ts +192335 -0
- package/host/generated/index.js +1658 -0
- package/host/generated/package.json +139 -0
- package/host/generated/query_compiler_fast_bg.js +2 -0
- package/host/generated/query_compiler_fast_bg.wasm +0 -0
- package/host/generated/query_compiler_fast_bg.wasm-base64.js +2 -0
- package/host/generated/runtime/client.d.ts +3433 -0
- package/host/generated/runtime/client.js +110 -0
- package/host/generated/runtime/index-browser.d.ts +90 -0
- package/host/generated/runtime/index-browser.js +6 -0
- package/host/generated/runtime/wasm-compiler-edge.js +100 -0
- package/host/generated/schema.prisma +6312 -0
- package/host/generated/wasm-edge-light-loader.mjs +5 -0
- package/host/generated/wasm-worker-loader.mjs +5 -0
- package/host/prisma/fragments/kvox.ask.prisma +126 -0
- package/host/prisma/fragments/kvox.graph.prisma +1073 -0
- package/host/prisma/fragments/kvox.notes.prisma +787 -0
- package/host/prisma/fragments/kvox.search.prisma +211 -0
- package/host/prisma/fragments/kvox.transcripts.prisma +790 -0
- package/host/prisma/kvox.lock +101 -0
- package/host/prisma/migrations/20240101000000_initial/migration.sql +297 -0
- package/host/prisma/migrations/20240101000001_add_personal_access_tokens/migration.sql +31 -0
- package/host/prisma/migrations/20240101000002_add_credentials/migration.sql +20 -0
- package/host/prisma/migrations/20240101000003_add_notification_deliveries/migration.sql +27 -0
- package/host/prisma/migrations/20240101000004_drop_stale_uuid_defaults/migration.sql +35 -0
- package/host/prisma/migrations/20240101000005_add_notifications/migration.sql +22 -0
- package/host/prisma/migrations/20240101000006_add_push_subscriptions/migration.sql +25 -0
- package/host/prisma/migrations/20240101000007_add_jobs/migration.sql +110 -0
- package/host/prisma/migrations/20240101000008_add_worker_nodes/migration.sql +90 -0
- package/host/prisma/migrations/20240101000009_add_database_backup_runs/migration.sql +104 -0
- package/host/prisma/migrations/20240101000010_add_notification_broadcasts/migration.sql +57 -0
- package/host/prisma/migrations/20240101000011_add_backup_run_job_link/migration.sql +87 -0
- package/host/prisma/migrations/20240101000012_add_job_node_secrets/migration.sql +61 -0
- package/host/prisma/migrations/20240101000013_add_backup_run_pg_dump_version/migration.sql +26 -0
- package/host/prisma/migrations/20240101000014_add_job_claim_token/migration.sql +92 -0
- package/host/prisma/migrations/20240101000015_add_ai_platform/migration.sql +108 -0
- package/host/prisma/migrations/20240101000016_revoke_viewer_ai_use/migration.sql +32 -0
- package/host/prisma/migrations/20240101000017_add_user_credentials/migration.sql +29 -0
- package/host/prisma/migrations/20240101000018_add_device_session_credential_link/migration.sql +52 -0
- package/host/prisma/migrations/20240101000019_add_worker_node_vitals/migration.sql +3 -0
- package/host/prisma/migrations/20240101000020_add_job_trace_context/migration.sql +6 -0
- package/host/prisma/migrations/20240101000021_add_retention_created_at_indexes/migration.sql +13 -0
- package/host/prisma/migrations/20240101000022_add_organizations/migration.sql +142 -0
- package/host/prisma/migrations/20240101000023_split_system_org_roles/migration.sql +131 -0
- package/host/prisma/migrations/20240101000024_org_scoped_rls/migration.sql +215 -0
- package/host/prisma/migrations/20240101000025_add_groups/migration.sql +165 -0
- package/host/prisma/migrations/20240101000026_add_grants/migration.sql +117 -0
- package/host/prisma/migrations/20240101000027_add_org_settings/migration.sql +49 -0
- package/host/prisma/migrations/20240101000028_add_org_credentials/migration.sql +54 -0
- package/host/prisma/migrations/20240101000029_add_jobs_org_id/migration.sql +18 -0
- package/host/prisma/migrations/20240101000030_add_jobs_org_id_status_index/migration.sql +6 -0
- package/host/prisma/migrations/20240101000031_add_broadcast_target_org/migration.sql +21 -0
- package/host/prisma/migrations/20240101000032_add_android_app/migration.sql +60 -0
- package/host/prisma/migrations/20240101000033_open_job_reason/migration.sql +16 -0
- package/host/prisma/migrations/20240101000034_ai_usage_feature/migration.sql +37 -0
- package/host/prisma/migrations/20240101000035_add_app_metadata/migration.sql +49 -0
- package/host/prisma/migrations/20240101000036_open_sharing_vocabularies/migration.sql +97 -0
- package/host/prisma/migrations/20260914130000_kvox_add_transcripts/migration.sql +322 -0
- package/host/prisma/migrations/20260914140000_kvox_add_notes/migration.sql +311 -0
- package/host/prisma/migrations/20260915120000_kvox_add_search_vectors/migration.sql +150 -0
- package/host/prisma/migrations/20260915130000_kvox_add_search_embeddings/migration.sql +362 -0
- package/host/prisma/migrations/20260915210000_kvox_add_note_title_source/migration.sql +30 -0
- package/host/prisma/migrations/20260923120000_kvox_add_note_generation_context_snapshot/migration.sql +24 -0
- package/host/prisma/migrations/20260923130000_kvox_add_user_hidden_note_templates/migration.sql +35 -0
- package/host/prisma/migrations/20260923140000_kvox_add_transcript_speaker_identities/migration.sql +6 -0
- package/host/prisma/migrations/20260923150000_kvox_transcript_name_checks/migration.sql +95 -0
- package/host/prisma/migrations/20260923160000_kvox_add_note_body_format/migration.sql +27 -0
- package/host/prisma/migrations/20260923170000_kvox_add_note_version_body_format/migration.sql +23 -0
- package/host/prisma/migrations/20260926012548_kvox_add_knowledge_graph/migration.sql +680 -0
- package/host/prisma/migrations/20260926030000_kvox_fix_kg_relations_valid_precision_chk/migration.sql +29 -0
- package/host/prisma/migrations/20260926030100_kvox_add_transcript_recorded_at/migration.sql +9 -0
- package/host/prisma/migrations/20260926030200_kvox_kg_evidence_invariant/migration.sql +60 -0
- package/host/prisma/migrations/20260926040000_kvox_add_kg_graph_layouts/migration.sql +30 -0
- package/host/prisma/migrations/20260926050000_kvox_add_ask_conversations/migration.sql +99 -0
- package/host/prisma/migrations/20260926231512_kvox_add_kg_exports/migration.sql +52 -0
- package/host/prisma/migrations/20261016120000_kvox_transcripts_org_id/migration.sql +49 -0
- package/host/prisma/platform.lock +319 -0
- package/host/prisma/schema/app.kvox.ask.prisma +110 -0
- package/host/prisma/schema/app.kvox.graph.prisma +1030 -0
- package/host/prisma/schema/app.kvox.notes.prisma +746 -0
- package/host/prisma/schema/app.kvox.search.prisma +208 -0
- package/host/prisma/schema/app.kvox.transcripts.prisma +726 -0
- package/host/prisma/schema/platform.ai.prisma +419 -0
- package/host/prisma/schema/platform.android-app.prisma +46 -0
- package/host/prisma/schema/platform.base.prisma +15 -0
- package/host/prisma/schema/platform.credentials.prisma +156 -0
- package/host/prisma/schema/platform.db-backup.prisma +359 -0
- package/host/prisma/schema/platform.identity.prisma +638 -0
- package/host/prisma/schema/platform.jobs.prisma +824 -0
- package/host/prisma/schema/platform.notifications.prisma +641 -0
- package/host/prisma/schema/platform.settings.prisma +53 -0
- package/host/prisma/schema/platform.sharing.prisma +208 -0
- package/host/prisma/schema/platform.storage.prisma +118 -0
- package/package.json +112 -1
- package/parity/requests.ask.json +2681 -0
- package/parity/requests.m01.json +1554 -0
- package/parity/requests.m02.json +1554 -0
- package/parity/requests.m03.json +1554 -0
- package/parity/requests.m04.json +1554 -0
- package/parity/requests.m05.json +1554 -0
- package/parity/requests.m06.json +1554 -0
- package/parity/requests.m07.json +1554 -0
- package/parity/requests.m08.json +1554 -0
- package/parity/requests.m09.json +1554 -0
- 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
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -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';
|
package/dist/kg/index.js
ADDED
|
@@ -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;
|