@cyanheads/sanctions-screening-mcp-server 0.1.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/AGENTS.md +452 -0
- package/CLAUDE.md +452 -0
- package/Dockerfile +126 -0
- package/LICENSE +201 -0
- package/README.md +354 -0
- package/changelog/0.1.x/0.1.0.md +26 -0
- package/changelog/template.md +127 -0
- package/dist/config/server-config.d.ts +37 -0
- package/dist/config/server-config.d.ts.map +1 -0
- package/dist/config/server-config.js +87 -0
- package/dist/config/server-config.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +70 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/index.d.ts +12 -0
- package/dist/mcp-server/prompts/definitions/index.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/index.js +9 -0
- package/dist/mcp-server/prompts/definitions/index.js.map +1 -0
- package/dist/mcp-server/prompts/definitions/vet-counterparty.prompt.d.ts +14 -0
- package/dist/mcp-server/prompts/definitions/vet-counterparty.prompt.d.ts.map +1 -0
- package/dist/mcp-server/prompts/definitions/vet-counterparty.prompt.js +42 -0
- package/dist/mcp-server/prompts/definitions/vet-counterparty.prompt.js.map +1 -0
- package/dist/mcp-server/resources/definitions/designation.resource.d.ts +25 -0
- package/dist/mcp-server/resources/definitions/designation.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/designation.resource.js +57 -0
- package/dist/mcp-server/resources/definitions/designation.resource.js.map +1 -0
- package/dist/mcp-server/resources/definitions/entity.resource.d.ts +17 -0
- package/dist/mcp-server/resources/definitions/entity.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/entity.resource.js +40 -0
- package/dist/mcp-server/resources/definitions/entity.resource.js.map +1 -0
- package/dist/mcp-server/resources/definitions/index.d.ts +32 -0
- package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/index.js +11 -0
- package/dist/mcp-server/resources/definitions/index.js.map +1 -0
- package/dist/mcp-server/resources/definitions/sources.resource.d.ts +9 -0
- package/dist/mcp-server/resources/definitions/sources.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/sources.resource.js +50 -0
- package/dist/mcp-server/resources/definitions/sources.resource.js.map +1 -0
- package/dist/mcp-server/tools/definitions/_shared.d.ts +13 -0
- package/dist/mcp-server/tools/definitions/_shared.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/_shared.js +13 -0
- package/dist/mcp-server/tools/definitions/_shared.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-designation.tool.d.ts +78 -0
- package/dist/mcp-server/tools/definitions/get-designation.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-designation.tool.js +168 -0
- package/dist/mcp-server/tools/definitions/get-designation.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts +55 -0
- package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/get-entity.tool.js +176 -0
- package/dist/mcp-server/tools/definitions/get-entity.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/index.d.ts +306 -0
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/index.js +21 -0
- package/dist/mcp-server/tools/definitions/index.js.map +1 -0
- package/dist/mcp-server/tools/definitions/list-sources.tool.d.ts +23 -0
- package/dist/mcp-server/tools/definitions/list-sources.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/list-sources.tool.js +106 -0
- package/dist/mcp-server/tools/definitions/list-sources.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/resolve-entity.tool.d.ts +51 -0
- package/dist/mcp-server/tools/definitions/resolve-entity.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/resolve-entity.tool.js +148 -0
- package/dist/mcp-server/tools/definitions/resolve-entity.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/screen-name.tool.d.ts +82 -0
- package/dist/mcp-server/tools/definitions/screen-name.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/screen-name.tool.js +172 -0
- package/dist/mcp-server/tools/definitions/screen-name.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/trace-ownership.tool.d.ts +74 -0
- package/dist/mcp-server/tools/definitions/trace-ownership.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/trace-ownership.tool.js +273 -0
- package/dist/mcp-server/tools/definitions/trace-ownership.tool.js.map +1 -0
- package/dist/services/screening/fixtures.d.ts +17 -0
- package/dist/services/screening/fixtures.d.ts.map +1 -0
- package/dist/services/screening/fixtures.js +162 -0
- package/dist/services/screening/fixtures.js.map +1 -0
- package/dist/services/screening/gleif-ingest.d.ts +68 -0
- package/dist/services/screening/gleif-ingest.d.ts.map +1 -0
- package/dist/services/screening/gleif-ingest.js +251 -0
- package/dist/services/screening/gleif-ingest.js.map +1 -0
- package/dist/services/screening/sanctions-ingest.d.ts +46 -0
- package/dist/services/screening/sanctions-ingest.d.ts.map +1 -0
- package/dist/services/screening/sanctions-ingest.js +688 -0
- package/dist/services/screening/sanctions-ingest.js.map +1 -0
- package/dist/services/screening/schema.d.ts +52 -0
- package/dist/services/screening/schema.d.ts.map +1 -0
- package/dist/services/screening/schema.js +125 -0
- package/dist/services/screening/schema.js.map +1 -0
- package/dist/services/screening/screening-service.d.ts +203 -0
- package/dist/services/screening/screening-service.d.ts.map +1 -0
- package/dist/services/screening/screening-service.js +702 -0
- package/dist/services/screening/screening-service.js.map +1 -0
- package/dist/services/screening/text-matching.d.ts +53 -0
- package/dist/services/screening/text-matching.d.ts.map +1 -0
- package/dist/services/screening/text-matching.js +514 -0
- package/dist/services/screening/text-matching.js.map +1 -0
- package/dist/services/screening/types.d.ts +154 -0
- package/dist/services/screening/types.d.ts.map +1 -0
- package/dist/services/screening/types.js +24 -0
- package/dist/services/screening/types.js.map +1 -0
- package/dist/services/screening/xml.d.ts +29 -0
- package/dist/services/screening/xml.d.ts.map +1 -0
- package/dist/services/screening/xml.js +46 -0
- package/dist/services/screening/xml.js.map +1 -0
- package/package.json +119 -0
- package/scripts/_mirror-context.ts +21 -0
- package/scripts/mirror-init.ts +66 -0
- package/scripts/mirror-refresh.ts +56 -0
- package/scripts/mirror-seed.ts +36 -0
- package/scripts/mirror-verify.ts +44 -0
- package/server.json +148 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanctions-ingest.js","sourceRoot":"","sources":["../../../src/services/screening/sanctions-ingest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview SQLite schema specs and auxiliary-table DDL for the two mirrors
|
|
3
|
+
* this server owns: the sanctions `designation` mirror (with a per-alias `name`
|
|
4
|
+
* matching index + its own FTS) and the GLEIF `lei_entity` mirror (with a
|
|
5
|
+
* `lei_relationship` aux table for ownership traversal). The MirrorService owns
|
|
6
|
+
* the primary tables + their FTS + sync state via `sqliteMirrorStore`; the
|
|
7
|
+
* auxiliary tables below are created idempotently on the raw handle.
|
|
8
|
+
*
|
|
9
|
+
* Why not the store's `migrations`: the framework's migration runner skips ALL
|
|
10
|
+
* migrations on a brand-new DB (it stamps the current version without running
|
|
11
|
+
* them, since there is no older data to transform). Auxiliary DDL therefore must
|
|
12
|
+
* be applied directly — every statement here is `CREATE … IF NOT EXISTS`, so
|
|
13
|
+
* `ensureAuxSchema` is safe to run on every open.
|
|
14
|
+
* @module services/screening/schema
|
|
15
|
+
*/
|
|
16
|
+
import type { SchemaSpec, SqliteHandle } from '@cyanheads/mcp-ts-core/mirror';
|
|
17
|
+
/** Primary table name for the sanctions designation mirror. */
|
|
18
|
+
export declare const DESIGNATION_TABLE = "designation";
|
|
19
|
+
/** Per-name/alias matching index, projected from `designation.payload`. */
|
|
20
|
+
export declare const NAME_TABLE = "name";
|
|
21
|
+
/** FTS5 contentless-external index over `name.normalized`. */
|
|
22
|
+
export declare const NAME_FTS_TABLE = "name_fts";
|
|
23
|
+
/** Primary table name for the GLEIF Level 1 mirror. */
|
|
24
|
+
export declare const LEI_ENTITY_TABLE = "lei_entity";
|
|
25
|
+
/** GLEIF Level 2 ownership relationships. */
|
|
26
|
+
export declare const LEI_RELATIONSHIP_TABLE = "lei_relationship";
|
|
27
|
+
/**
|
|
28
|
+
* `sqliteMirrorStore` spec for the sanctions designation mirror. Columns mirror
|
|
29
|
+
* the normalized designation row; `normalized_name` is FTS-indexed so the
|
|
30
|
+
* primary-name path is searchable. The per-alias `name` index is created by
|
|
31
|
+
* {@link ensureDesignationAuxSchema}.
|
|
32
|
+
*/
|
|
33
|
+
export declare const designationStoreSpec: SchemaSpec;
|
|
34
|
+
/**
|
|
35
|
+
* `sqliteMirrorStore` spec for the GLEIF Level 1 entity mirror. `normalized_name`
|
|
36
|
+
* is FTS-indexed for name → LEI resolution. The `lei_relationship` table is
|
|
37
|
+
* created by {@link ensureLeiAuxSchema}.
|
|
38
|
+
*/
|
|
39
|
+
export declare const leiStoreSpec: SchemaSpec;
|
|
40
|
+
/**
|
|
41
|
+
* Create the designation mirror's auxiliary objects: the per-alias `name` index
|
|
42
|
+
* (one row per published name/alias, carrying a Double-Metaphone `phonetic` key
|
|
43
|
+
* for transliteration-class fuzzy hits) plus a contentless FTS over
|
|
44
|
+
* `name.normalized` kept in lockstep by triggers. Idempotent.
|
|
45
|
+
*/
|
|
46
|
+
export declare function ensureDesignationAuxSchema(handle: SqliteHandle): void;
|
|
47
|
+
/**
|
|
48
|
+
* Create the GLEIF mirror's auxiliary `lei_relationship` table, indexed on both
|
|
49
|
+
* `child_lei` and `parent_lei` for bidirectional ownership traversal. Idempotent.
|
|
50
|
+
*/
|
|
51
|
+
export declare function ensureLeiAuxSchema(handle: SqliteHandle): void;
|
|
52
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/services/screening/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE9E,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,2EAA2E;AAC3E,eAAO,MAAM,UAAU,SAAS,CAAC;AACjC,8DAA8D;AAC9D,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAiBlC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,UAmB1B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAyBrE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAa7D"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview SQLite schema specs and auxiliary-table DDL for the two mirrors
|
|
3
|
+
* this server owns: the sanctions `designation` mirror (with a per-alias `name`
|
|
4
|
+
* matching index + its own FTS) and the GLEIF `lei_entity` mirror (with a
|
|
5
|
+
* `lei_relationship` aux table for ownership traversal). The MirrorService owns
|
|
6
|
+
* the primary tables + their FTS + sync state via `sqliteMirrorStore`; the
|
|
7
|
+
* auxiliary tables below are created idempotently on the raw handle.
|
|
8
|
+
*
|
|
9
|
+
* Why not the store's `migrations`: the framework's migration runner skips ALL
|
|
10
|
+
* migrations on a brand-new DB (it stamps the current version without running
|
|
11
|
+
* them, since there is no older data to transform). Auxiliary DDL therefore must
|
|
12
|
+
* be applied directly — every statement here is `CREATE … IF NOT EXISTS`, so
|
|
13
|
+
* `ensureAuxSchema` is safe to run on every open.
|
|
14
|
+
* @module services/screening/schema
|
|
15
|
+
*/
|
|
16
|
+
/** Primary table name for the sanctions designation mirror. */
|
|
17
|
+
export const DESIGNATION_TABLE = 'designation';
|
|
18
|
+
/** Per-name/alias matching index, projected from `designation.payload`. */
|
|
19
|
+
export const NAME_TABLE = 'name';
|
|
20
|
+
/** FTS5 contentless-external index over `name.normalized`. */
|
|
21
|
+
export const NAME_FTS_TABLE = 'name_fts';
|
|
22
|
+
/** Primary table name for the GLEIF Level 1 mirror. */
|
|
23
|
+
export const LEI_ENTITY_TABLE = 'lei_entity';
|
|
24
|
+
/** GLEIF Level 2 ownership relationships. */
|
|
25
|
+
export const LEI_RELATIONSHIP_TABLE = 'lei_relationship';
|
|
26
|
+
/**
|
|
27
|
+
* `sqliteMirrorStore` spec for the sanctions designation mirror. Columns mirror
|
|
28
|
+
* the normalized designation row; `normalized_name` is FTS-indexed so the
|
|
29
|
+
* primary-name path is searchable. The per-alias `name` index is created by
|
|
30
|
+
* {@link ensureDesignationAuxSchema}.
|
|
31
|
+
*/
|
|
32
|
+
export const designationStoreSpec = {
|
|
33
|
+
table: DESIGNATION_TABLE,
|
|
34
|
+
primaryKey: 'id',
|
|
35
|
+
columns: {
|
|
36
|
+
id: 'TEXT',
|
|
37
|
+
source: 'TEXT',
|
|
38
|
+
source_entry_id: 'TEXT',
|
|
39
|
+
entity_type: 'TEXT',
|
|
40
|
+
primary_name: 'TEXT',
|
|
41
|
+
normalized_name: 'TEXT',
|
|
42
|
+
program: 'TEXT',
|
|
43
|
+
legal_basis: 'TEXT',
|
|
44
|
+
designation_date: 'TEXT',
|
|
45
|
+
payload: 'TEXT',
|
|
46
|
+
},
|
|
47
|
+
fts: ['normalized_name'],
|
|
48
|
+
indexes: [{ columns: ['source'] }, { columns: ['source', 'source_entry_id'] }],
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* `sqliteMirrorStore` spec for the GLEIF Level 1 entity mirror. `normalized_name`
|
|
52
|
+
* is FTS-indexed for name → LEI resolution. The `lei_relationship` table is
|
|
53
|
+
* created by {@link ensureLeiAuxSchema}.
|
|
54
|
+
*/
|
|
55
|
+
export const leiStoreSpec = {
|
|
56
|
+
table: LEI_ENTITY_TABLE,
|
|
57
|
+
primaryKey: 'lei',
|
|
58
|
+
columns: {
|
|
59
|
+
lei: 'TEXT',
|
|
60
|
+
legal_name: 'TEXT',
|
|
61
|
+
normalized_name: 'TEXT',
|
|
62
|
+
other_names: 'TEXT',
|
|
63
|
+
jurisdiction: 'TEXT',
|
|
64
|
+
status: 'TEXT',
|
|
65
|
+
legal_address: 'TEXT',
|
|
66
|
+
headquarters_address: 'TEXT',
|
|
67
|
+
registration_authority_id: 'TEXT',
|
|
68
|
+
registration_authority_entity_id: 'TEXT',
|
|
69
|
+
last_update: 'TEXT',
|
|
70
|
+
payload: 'TEXT',
|
|
71
|
+
},
|
|
72
|
+
fts: ['normalized_name'],
|
|
73
|
+
indexes: [{ columns: ['jurisdiction'] }, { columns: ['status'] }],
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Create the designation mirror's auxiliary objects: the per-alias `name` index
|
|
77
|
+
* (one row per published name/alias, carrying a Double-Metaphone `phonetic` key
|
|
78
|
+
* for transliteration-class fuzzy hits) plus a contentless FTS over
|
|
79
|
+
* `name.normalized` kept in lockstep by triggers. Idempotent.
|
|
80
|
+
*/
|
|
81
|
+
export function ensureDesignationAuxSchema(handle) {
|
|
82
|
+
handle.exec(`
|
|
83
|
+
CREATE TABLE IF NOT EXISTS ${NAME_TABLE} (
|
|
84
|
+
designation_id TEXT NOT NULL,
|
|
85
|
+
name TEXT NOT NULL,
|
|
86
|
+
normalized TEXT NOT NULL,
|
|
87
|
+
phonetic TEXT NOT NULL,
|
|
88
|
+
name_type TEXT NOT NULL
|
|
89
|
+
);
|
|
90
|
+
CREATE INDEX IF NOT EXISTS idx_name_designation ON ${NAME_TABLE}(designation_id);
|
|
91
|
+
CREATE INDEX IF NOT EXISTS idx_name_phonetic ON ${NAME_TABLE}(phonetic);
|
|
92
|
+
CREATE INDEX IF NOT EXISTS idx_name_normalized ON ${NAME_TABLE}(normalized);
|
|
93
|
+
|
|
94
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS ${NAME_FTS_TABLE}
|
|
95
|
+
USING fts5(normalized, content='${NAME_TABLE}', content_rowid='rowid',
|
|
96
|
+
tokenize = 'unicode61 remove_diacritics 2');
|
|
97
|
+
|
|
98
|
+
CREATE TRIGGER IF NOT EXISTS ${NAME_TABLE}_ai AFTER INSERT ON ${NAME_TABLE} BEGIN
|
|
99
|
+
INSERT INTO ${NAME_FTS_TABLE}(rowid, normalized) VALUES (new.rowid, new.normalized);
|
|
100
|
+
END;
|
|
101
|
+
CREATE TRIGGER IF NOT EXISTS ${NAME_TABLE}_ad AFTER DELETE ON ${NAME_TABLE} BEGIN
|
|
102
|
+
INSERT INTO ${NAME_FTS_TABLE}(${NAME_FTS_TABLE}, rowid, normalized)
|
|
103
|
+
VALUES ('delete', old.rowid, old.normalized);
|
|
104
|
+
END;
|
|
105
|
+
`);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Create the GLEIF mirror's auxiliary `lei_relationship` table, indexed on both
|
|
109
|
+
* `child_lei` and `parent_lei` for bidirectional ownership traversal. Idempotent.
|
|
110
|
+
*/
|
|
111
|
+
export function ensureLeiAuxSchema(handle) {
|
|
112
|
+
handle.exec(`
|
|
113
|
+
CREATE TABLE IF NOT EXISTS ${LEI_RELATIONSHIP_TABLE} (
|
|
114
|
+
child_lei TEXT NOT NULL,
|
|
115
|
+
parent_lei TEXT NOT NULL,
|
|
116
|
+
relationship_type TEXT NOT NULL,
|
|
117
|
+
relationship_status TEXT,
|
|
118
|
+
relationship_period TEXT,
|
|
119
|
+
PRIMARY KEY (child_lei, parent_lei, relationship_type)
|
|
120
|
+
);
|
|
121
|
+
CREATE INDEX IF NOT EXISTS idx_rel_child ON ${LEI_RELATIONSHIP_TABLE}(child_lei);
|
|
122
|
+
CREATE INDEX IF NOT EXISTS idx_rel_parent ON ${LEI_RELATIONSHIP_TABLE}(parent_lei);
|
|
123
|
+
`);
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/services/screening/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC/C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC;AACjC,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AACzC,uDAAuD;AACvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C,6CAA6C;AAC7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAe;IAC9C,KAAK,EAAE,iBAAiB;IACxB,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,EAAE,EAAE,MAAM;QACV,MAAM,EAAE,MAAM;QACd,eAAe,EAAE,MAAM;QACvB,WAAW,EAAE,MAAM;QACnB,YAAY,EAAE,MAAM;QACpB,eAAe,EAAE,MAAM;QACvB,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,MAAM;QACnB,gBAAgB,EAAE,MAAM;QACxB,OAAO,EAAE,MAAM;KAChB;IACD,GAAG,EAAE,CAAC,iBAAiB,CAAC;IACxB,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE,CAAC;CAC/E,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAe;IACtC,KAAK,EAAE,gBAAgB;IACvB,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE;QACP,GAAG,EAAE,MAAM;QACX,UAAU,EAAE,MAAM;QAClB,eAAe,EAAE,MAAM;QACvB,WAAW,EAAE,MAAM;QACnB,YAAY,EAAE,MAAM;QACpB,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,MAAM;QACrB,oBAAoB,EAAE,MAAM;QAC5B,yBAAyB,EAAE,MAAM;QACjC,gCAAgC,EAAE,MAAM;QACxC,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,MAAM;KAChB;IACD,GAAG,EAAE,CAAC,iBAAiB,CAAC;IACxB,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;CAClE,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAoB;IAC7D,MAAM,CAAC,IAAI,CAAC;iCACmB,UAAU;;;;;;;yDAOc,UAAU;sDACb,UAAU;wDACR,UAAU;;yCAEzB,cAAc;wCACf,UAAU;;;mCAGf,UAAU,uBAAuB,UAAU;oBAC1D,cAAc;;mCAEC,UAAU,uBAAuB,UAAU;oBAC1D,cAAc,IAAI,cAAc;;;GAGjD,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,MAAM,CAAC,IAAI,CAAC;iCACmB,sBAAsB;;;;;;;;kDAQL,sBAAsB;mDACrB,sBAAsB;GACtE,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The screening service — owns the two local mirrors (sanctions
|
|
3
|
+
* `designation` + GLEIF `lei_entity`, both SQLite + FTS5 via the framework
|
|
4
|
+
* MirrorService), the normalized-schema write path that keeps the per-alias
|
|
5
|
+
* `name` index and `lei_relationship` table in lockstep, and the matching
|
|
6
|
+
* engine (exact → strict-token → scored Jaro-Winkler / phonetic fuzzy). All six
|
|
7
|
+
* tools compose against this service; the agent never sees the source boundary.
|
|
8
|
+
*
|
|
9
|
+
* The matching engine surfaces only real signal: exact/strong hits are
|
|
10
|
+
* deterministic and unscored; approximate hits carry the raw Jaro-Winkler
|
|
11
|
+
* similarity (0–1). There is no fabricated composite "confidence".
|
|
12
|
+
* @module services/screening/screening-service
|
|
13
|
+
*/
|
|
14
|
+
import type { Context } from '@cyanheads/mcp-ts-core';
|
|
15
|
+
import type { AppConfig } from '@cyanheads/mcp-ts-core/config';
|
|
16
|
+
import type { Mirror } from '@cyanheads/mcp-ts-core/mirror';
|
|
17
|
+
import type { StorageService } from '@cyanheads/mcp-ts-core/storage';
|
|
18
|
+
import { logger } from '@cyanheads/mcp-ts-core/utils';
|
|
19
|
+
import { type ServerConfig } from '../../config/server-config.js';
|
|
20
|
+
import { type SanctionsIngester } from '../../services/screening/sanctions-ingest.js';
|
|
21
|
+
import type { EntityType, LeiMatch, MatchMode, NormalizedDesignation, NormalizedLeiEntity, NormalizedLeiRelationship, ScreeningHit, SourceCode } from '../../services/screening/types.js';
|
|
22
|
+
/** A loaded source's provenance + freshness, surfaced by `sanctions_list_sources`. */
|
|
23
|
+
export interface SourceStatus {
|
|
24
|
+
/** Source code (`ofac_sdn`, `eu`, …) or the GLEIF dataset key. */
|
|
25
|
+
code: string;
|
|
26
|
+
/** Record count currently in the mirror for this source. */
|
|
27
|
+
recordCount: number;
|
|
28
|
+
}
|
|
29
|
+
/** Mirror-level readiness + freshness for a dataset. */
|
|
30
|
+
export interface MirrorReadiness {
|
|
31
|
+
completedAt?: string;
|
|
32
|
+
error?: string;
|
|
33
|
+
ready: boolean;
|
|
34
|
+
status: string;
|
|
35
|
+
total: number;
|
|
36
|
+
}
|
|
37
|
+
/** Options for {@link ScreeningService.screenName}. */
|
|
38
|
+
export interface ScreenNameOptions {
|
|
39
|
+
/**
|
|
40
|
+
* Whether a strict pass that finds nothing auto-upgrades to a fuzzy pass.
|
|
41
|
+
* Defaults to `true` for the user-facing `sanctions_screen_name` tool (an empty
|
|
42
|
+
* strict result there is unhelpful). The internal cross-reference screens in
|
|
43
|
+
* `sanctions_get_entity` / `sanctions_trace_ownership` set this `false`: a
|
|
44
|
+
* generic legal name ("… Trading Company LLC") that isn't on a list would
|
|
45
|
+
* otherwise fuzzy-match dozens of unrelated designations on a single common
|
|
46
|
+
* token ("company"), presenting a clean entity — or every ownership node — as
|
|
47
|
+
* heavily flagged. There, no strict hit is the correct, honest answer.
|
|
48
|
+
*/
|
|
49
|
+
autoFallback?: boolean;
|
|
50
|
+
entityType: EntityType | 'any';
|
|
51
|
+
limit: number;
|
|
52
|
+
matchMode: MatchMode;
|
|
53
|
+
/** Jaro-Winkler floor for fuzzy hits; defaults to config `fuzzyMinScore`. */
|
|
54
|
+
minScore?: number;
|
|
55
|
+
query: string;
|
|
56
|
+
sources: SourceCode[];
|
|
57
|
+
}
|
|
58
|
+
/** Result of a screening pass — hits plus how matching ran. */
|
|
59
|
+
export interface ScreenNameResult {
|
|
60
|
+
/** True when a strict pass returned nothing and fuzzy was attempted. */
|
|
61
|
+
fuzzyFallbackTriggered: boolean;
|
|
62
|
+
hits: ScreeningHit[];
|
|
63
|
+
/** The match mode actually used (may upgrade strict→fuzzy on empty strict). */
|
|
64
|
+
modeUsed: MatchMode;
|
|
65
|
+
/** Folded query the server matched on. */
|
|
66
|
+
normalizedQuery: string;
|
|
67
|
+
}
|
|
68
|
+
/** Options for {@link ScreeningService.resolveEntity}. */
|
|
69
|
+
export interface ResolveEntityOptions {
|
|
70
|
+
jurisdiction?: string;
|
|
71
|
+
limit: number;
|
|
72
|
+
matchMode: MatchMode;
|
|
73
|
+
minScore?: number;
|
|
74
|
+
query: string;
|
|
75
|
+
status: 'any' | 'issued' | 'lapsed';
|
|
76
|
+
}
|
|
77
|
+
/** Result of an LEI resolution pass. */
|
|
78
|
+
export interface ResolveEntityResult {
|
|
79
|
+
fuzzyFallbackTriggered: boolean;
|
|
80
|
+
matches: LeiMatch[];
|
|
81
|
+
modeUsed: MatchMode;
|
|
82
|
+
normalizedQuery: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The screening service. Holds both mirrors and the matching engine. Initialized
|
|
86
|
+
* once in `setup()`; tools access it via {@link getScreeningService}.
|
|
87
|
+
*/
|
|
88
|
+
export declare class ScreeningService {
|
|
89
|
+
private readonly config;
|
|
90
|
+
private readonly designationMirror;
|
|
91
|
+
private readonly leiMirror;
|
|
92
|
+
private designationAuxReady;
|
|
93
|
+
private leiAuxReady;
|
|
94
|
+
constructor(config: ServerConfig);
|
|
95
|
+
/**
|
|
96
|
+
* Open the designation mirror's raw handle, ensuring the auxiliary `name` index
|
|
97
|
+
* + FTS exist first. The framework's migration runner skips migrations on a
|
|
98
|
+
* fresh DB, so the aux DDL is applied here (idempotently) on first use.
|
|
99
|
+
*/
|
|
100
|
+
private designationHandle;
|
|
101
|
+
/** Open the GLEIF mirror's raw handle, ensuring `lei_relationship` exists first. */
|
|
102
|
+
private leiHandle;
|
|
103
|
+
/** The sanctions designation mirror (for sync lifecycle scripts). */
|
|
104
|
+
get designations(): Mirror;
|
|
105
|
+
/** The GLEIF entity mirror (for sync lifecycle scripts). */
|
|
106
|
+
get leiEntities(): Mirror;
|
|
107
|
+
/** True once the sanctions mirror has ever completed a full sync. */
|
|
108
|
+
sanctionsReady(): Promise<boolean>;
|
|
109
|
+
/** True once the GLEIF mirror has ever completed a full sync. */
|
|
110
|
+
leiReady(): Promise<boolean>;
|
|
111
|
+
/**
|
|
112
|
+
* Apply a batch of normalized designations. Writes the primary `designation`
|
|
113
|
+
* rows via the mirror store, then refreshes the per-alias `name` index for
|
|
114
|
+
* exactly those designations — all in one transaction. Idempotent per id.
|
|
115
|
+
*/
|
|
116
|
+
ingestDesignations(designations: NormalizedDesignation[]): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Rebuild the per-alias `name` index from the current `designation` table.
|
|
119
|
+
* The MirrorService `sync` path only writes the primary `designation` rows, so
|
|
120
|
+
* after a `runSync` the lifecycle scripts (and the refresh cron) call this to
|
|
121
|
+
* regenerate the matching index — including the Double-Metaphone phonetic keys
|
|
122
|
+
* that can't be computed in SQL. Idempotent: clears and repopulates `name`.
|
|
123
|
+
*/
|
|
124
|
+
rebuildNameIndex(): Promise<void>;
|
|
125
|
+
/** Apply a batch of GLEIF Level 1 entity records via the LEI mirror store. */
|
|
126
|
+
ingestLeiEntities(entities: NormalizedLeiEntity[]): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Apply a batch of GLEIF Level 2 relationships. Replaces all rows for each
|
|
129
|
+
* child LEI present in the batch (so a refresh that re-states a child's
|
|
130
|
+
* relationships is idempotent).
|
|
131
|
+
*/
|
|
132
|
+
ingestLeiRelationships(relationships: NormalizedLeiRelationship[]): Promise<void>;
|
|
133
|
+
/** Primary name + aliases as one list, primary first. */
|
|
134
|
+
private allNames;
|
|
135
|
+
/**
|
|
136
|
+
* Mark the sanctions mirror's sync state complete (sets `completedAt`/`total`),
|
|
137
|
+
* so the read path's `ready()` gate opens. The MirrorService `runSync` path
|
|
138
|
+
* sets this automatically; the fixture-seed and lifecycle-rebuild paths call it
|
|
139
|
+
* explicitly after a direct ingest.
|
|
140
|
+
*/
|
|
141
|
+
markSanctionsReady(total: number): Promise<void>;
|
|
142
|
+
/** Mark the GLEIF mirror's sync state complete — see {@link markSanctionsReady}. */
|
|
143
|
+
markLeiReady(total: number): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* Load a synthetic fixture into both mirrors and mark them ready. For tests and
|
|
146
|
+
* a quick local smoke run — NOT the real corpus, which loads via `mirror:init`.
|
|
147
|
+
*/
|
|
148
|
+
seedFixtures(fixtures: {
|
|
149
|
+
designations: NormalizedDesignation[];
|
|
150
|
+
leiEntities: NormalizedLeiEntity[];
|
|
151
|
+
leiRelationships: NormalizedLeiRelationship[];
|
|
152
|
+
}): Promise<void>;
|
|
153
|
+
/**
|
|
154
|
+
* Screen a name against the loaded sanctions lists. Strict mode runs exact
|
|
155
|
+
* then all-tokens-present (FTS5). Fuzzy mode (explicit, or auto when strict is
|
|
156
|
+
* empty) adds Jaro-Winkler + phonetic scoring against the per-alias index.
|
|
157
|
+
*/
|
|
158
|
+
screenName(opts: ScreenNameOptions, ctx: Context): Promise<ScreenNameResult>;
|
|
159
|
+
private sourceFilterClause;
|
|
160
|
+
private runStrict;
|
|
161
|
+
private runFuzzy;
|
|
162
|
+
private mergeHits;
|
|
163
|
+
private rowToHit;
|
|
164
|
+
/** Full normalized designation by source + entry id, or null if absent. */
|
|
165
|
+
getDesignation(source: SourceCode, entryId: string): Promise<NormalizedDesignation | null>;
|
|
166
|
+
/** Resolve a company name to ranked GLEIF LEI candidates. */
|
|
167
|
+
resolveEntity(opts: ResolveEntityOptions, ctx: Context): Promise<ResolveEntityResult>;
|
|
168
|
+
private runLeiStrict;
|
|
169
|
+
private runLeiFuzzy;
|
|
170
|
+
private leiRowToMatch;
|
|
171
|
+
/** Full GLEIF Level 1 entity by LEI, or null. */
|
|
172
|
+
getLeiEntity(lei: string): Promise<NormalizedLeiEntity | null>;
|
|
173
|
+
/** Direct relationship edges for an LEI in the requested direction(s). */
|
|
174
|
+
getRelationships(lei: string, direction: 'parents' | 'children' | 'both'): Promise<NormalizedLeiRelationship[]>;
|
|
175
|
+
/** Hydrate multiple LEIs to name/jurisdiction/status, preserving order. */
|
|
176
|
+
getLeiEntitiesBatch(leis: string[]): Promise<NormalizedLeiEntity[]>;
|
|
177
|
+
/** Per-source record counts in the sanctions mirror. */
|
|
178
|
+
sourceCounts(): Promise<SourceStatus[]>;
|
|
179
|
+
/** Sanctions mirror readiness + freshness. */
|
|
180
|
+
sanctionsReadiness(): Promise<MirrorReadiness>;
|
|
181
|
+
/** GLEIF mirror readiness + freshness, plus L1/L2 counts. */
|
|
182
|
+
leiReadiness(): Promise<MirrorReadiness & {
|
|
183
|
+
entityCount: number;
|
|
184
|
+
relationshipCount: number;
|
|
185
|
+
}>;
|
|
186
|
+
private toReadiness;
|
|
187
|
+
private escapeLiteral;
|
|
188
|
+
/** Close both mirrors (lifecycle scripts / shutdown). */
|
|
189
|
+
close(): Promise<void>;
|
|
190
|
+
}
|
|
191
|
+
/** Initialize the screening service. Call from `createApp()` `setup()`. */
|
|
192
|
+
export declare function initScreeningService(_config?: AppConfig, _storage?: StorageService): void;
|
|
193
|
+
/** Access the screening service; throws if not initialized. */
|
|
194
|
+
export declare function getScreeningService(): ScreeningService;
|
|
195
|
+
/** Build a standalone instance (lifecycle scripts run outside createApp). */
|
|
196
|
+
export declare function buildScreeningService(): ScreeningService;
|
|
197
|
+
/** Reset — test isolation only. */
|
|
198
|
+
export declare function resetScreeningService(): void;
|
|
199
|
+
/** Re-export ingester type for the sync wiring. */
|
|
200
|
+
export type { SanctionsIngester };
|
|
201
|
+
/** The framework logger, re-exported for lifecycle scripts. */
|
|
202
|
+
export { logger };
|
|
203
|
+
//# sourceMappingURL=screening-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screening-service.d.ts","sourceRoot":"","sources":["../../../src/services/screening/screening-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAA0B,MAAM,+BAA+B,CAAC;AAEpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,0CAA0C,CAAC;AAkBlD,OAAO,KAAK,EAEV,UAAU,EACV,QAAQ,EACR,SAAS,EAET,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,EACZ,UAAU,EACX,MAAM,+BAA+B,CAAC;AAGvC,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,+DAA+D;AAC/D,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,sBAAsB,EAAE,OAAO,CAAC;IAChC,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,EAAE,SAAS,CAAC;IACpB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACrC;AAED,wCAAwC;AACxC,MAAM,WAAW,mBAAmB;IAClC,sBAAsB,EAAE,OAAO,CAAC;IAChC,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAoCD;;;GAGG;AACH,qBAAa,gBAAgB;IAMf,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,WAAW,CAAS;gBAEC,MAAM,EAAE,YAAY;IAuBjD;;;;OAIG;YACW,iBAAiB;IAS/B,oFAAoF;YACtE,SAAS;IASvB,qEAAqE;IACrE,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,4DAA4D;IAC5D,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,qEAAqE;IACrE,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,iEAAiE;IACjE,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAM5B;;;;OAIG;IACG,kBAAkB,CAAC,YAAY,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD9E;;;;;;OAMG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BvC,8EAA8E;IACxE,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBvE;;;;OAIG;IACG,sBAAsB,CAAC,aAAa,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvF,yDAAyD;IACzD,OAAO,CAAC,QAAQ;IAIhB;;;;;OAKG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtD,oFAAoF;IAC9E,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhD;;;OAGG;IACG,YAAY,CAAC,QAAQ,EAAE;QAC3B,YAAY,EAAE,qBAAqB,EAAE,CAAC;QACtC,WAAW,EAAE,mBAAmB,EAAE,CAAC;QACnC,gBAAgB,EAAE,yBAAyB,EAAE,CAAC;KAC/C,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjB;;;;OAIG;IACG,UAAU,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoElF,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,SAAS;IA4CjB,OAAO,CAAC,QAAQ;IA6FhB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,QAAQ;IAiBhB,2EAA2E;IACrE,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAmBhG,6DAA6D;IACvD,aAAa,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA8C3F,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,WAAW;IAyDnB,OAAO,CAAC,aAAa;IAerB,iDAAiD;IAC3C,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAOpE,0EAA0E;IACpE,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,GACzC,OAAO,CAAC,yBAAyB,EAAE,CAAC;IA8BvC,2EAA2E;IACrE,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAUzE,wDAAwD;IAClD,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAW7C,8CAA8C;IACxC,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAIpD,6DAA6D;IACvD,YAAY,IAAI,OAAO,CAC3B,eAAe,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,CACrE;IAYD,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,aAAa;IAIrB,yDAAyD;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAiCD,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAEzF;AAED,+DAA+D;AAC/D,wBAAgB,mBAAmB,IAAI,gBAAgB,CAKtD;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,IAAI,gBAAgB,CAExD;AAED,mCAAmC;AACnC,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,mDAAmD;AACnD,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC,+DAA+D;AAC/D,OAAO,EAAE,MAAM,EAAE,CAAC"}
|