@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.
Files changed (110) hide show
  1. package/AGENTS.md +452 -0
  2. package/CLAUDE.md +452 -0
  3. package/Dockerfile +126 -0
  4. package/LICENSE +201 -0
  5. package/README.md +354 -0
  6. package/changelog/0.1.x/0.1.0.md +26 -0
  7. package/changelog/template.md +127 -0
  8. package/dist/config/server-config.d.ts +37 -0
  9. package/dist/config/server-config.d.ts.map +1 -0
  10. package/dist/config/server-config.js +87 -0
  11. package/dist/config/server-config.js.map +1 -0
  12. package/dist/index.d.ts +11 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +70 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/mcp-server/prompts/definitions/index.d.ts +12 -0
  17. package/dist/mcp-server/prompts/definitions/index.d.ts.map +1 -0
  18. package/dist/mcp-server/prompts/definitions/index.js +9 -0
  19. package/dist/mcp-server/prompts/definitions/index.js.map +1 -0
  20. package/dist/mcp-server/prompts/definitions/vet-counterparty.prompt.d.ts +14 -0
  21. package/dist/mcp-server/prompts/definitions/vet-counterparty.prompt.d.ts.map +1 -0
  22. package/dist/mcp-server/prompts/definitions/vet-counterparty.prompt.js +42 -0
  23. package/dist/mcp-server/prompts/definitions/vet-counterparty.prompt.js.map +1 -0
  24. package/dist/mcp-server/resources/definitions/designation.resource.d.ts +25 -0
  25. package/dist/mcp-server/resources/definitions/designation.resource.d.ts.map +1 -0
  26. package/dist/mcp-server/resources/definitions/designation.resource.js +57 -0
  27. package/dist/mcp-server/resources/definitions/designation.resource.js.map +1 -0
  28. package/dist/mcp-server/resources/definitions/entity.resource.d.ts +17 -0
  29. package/dist/mcp-server/resources/definitions/entity.resource.d.ts.map +1 -0
  30. package/dist/mcp-server/resources/definitions/entity.resource.js +40 -0
  31. package/dist/mcp-server/resources/definitions/entity.resource.js.map +1 -0
  32. package/dist/mcp-server/resources/definitions/index.d.ts +32 -0
  33. package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -0
  34. package/dist/mcp-server/resources/definitions/index.js +11 -0
  35. package/dist/mcp-server/resources/definitions/index.js.map +1 -0
  36. package/dist/mcp-server/resources/definitions/sources.resource.d.ts +9 -0
  37. package/dist/mcp-server/resources/definitions/sources.resource.d.ts.map +1 -0
  38. package/dist/mcp-server/resources/definitions/sources.resource.js +50 -0
  39. package/dist/mcp-server/resources/definitions/sources.resource.js.map +1 -0
  40. package/dist/mcp-server/tools/definitions/_shared.d.ts +13 -0
  41. package/dist/mcp-server/tools/definitions/_shared.d.ts.map +1 -0
  42. package/dist/mcp-server/tools/definitions/_shared.js +13 -0
  43. package/dist/mcp-server/tools/definitions/_shared.js.map +1 -0
  44. package/dist/mcp-server/tools/definitions/get-designation.tool.d.ts +78 -0
  45. package/dist/mcp-server/tools/definitions/get-designation.tool.d.ts.map +1 -0
  46. package/dist/mcp-server/tools/definitions/get-designation.tool.js +168 -0
  47. package/dist/mcp-server/tools/definitions/get-designation.tool.js.map +1 -0
  48. package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts +55 -0
  49. package/dist/mcp-server/tools/definitions/get-entity.tool.d.ts.map +1 -0
  50. package/dist/mcp-server/tools/definitions/get-entity.tool.js +176 -0
  51. package/dist/mcp-server/tools/definitions/get-entity.tool.js.map +1 -0
  52. package/dist/mcp-server/tools/definitions/index.d.ts +306 -0
  53. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -0
  54. package/dist/mcp-server/tools/definitions/index.js +21 -0
  55. package/dist/mcp-server/tools/definitions/index.js.map +1 -0
  56. package/dist/mcp-server/tools/definitions/list-sources.tool.d.ts +23 -0
  57. package/dist/mcp-server/tools/definitions/list-sources.tool.d.ts.map +1 -0
  58. package/dist/mcp-server/tools/definitions/list-sources.tool.js +106 -0
  59. package/dist/mcp-server/tools/definitions/list-sources.tool.js.map +1 -0
  60. package/dist/mcp-server/tools/definitions/resolve-entity.tool.d.ts +51 -0
  61. package/dist/mcp-server/tools/definitions/resolve-entity.tool.d.ts.map +1 -0
  62. package/dist/mcp-server/tools/definitions/resolve-entity.tool.js +148 -0
  63. package/dist/mcp-server/tools/definitions/resolve-entity.tool.js.map +1 -0
  64. package/dist/mcp-server/tools/definitions/screen-name.tool.d.ts +82 -0
  65. package/dist/mcp-server/tools/definitions/screen-name.tool.d.ts.map +1 -0
  66. package/dist/mcp-server/tools/definitions/screen-name.tool.js +172 -0
  67. package/dist/mcp-server/tools/definitions/screen-name.tool.js.map +1 -0
  68. package/dist/mcp-server/tools/definitions/trace-ownership.tool.d.ts +74 -0
  69. package/dist/mcp-server/tools/definitions/trace-ownership.tool.d.ts.map +1 -0
  70. package/dist/mcp-server/tools/definitions/trace-ownership.tool.js +273 -0
  71. package/dist/mcp-server/tools/definitions/trace-ownership.tool.js.map +1 -0
  72. package/dist/services/screening/fixtures.d.ts +17 -0
  73. package/dist/services/screening/fixtures.d.ts.map +1 -0
  74. package/dist/services/screening/fixtures.js +162 -0
  75. package/dist/services/screening/fixtures.js.map +1 -0
  76. package/dist/services/screening/gleif-ingest.d.ts +68 -0
  77. package/dist/services/screening/gleif-ingest.d.ts.map +1 -0
  78. package/dist/services/screening/gleif-ingest.js +251 -0
  79. package/dist/services/screening/gleif-ingest.js.map +1 -0
  80. package/dist/services/screening/sanctions-ingest.d.ts +46 -0
  81. package/dist/services/screening/sanctions-ingest.d.ts.map +1 -0
  82. package/dist/services/screening/sanctions-ingest.js +688 -0
  83. package/dist/services/screening/sanctions-ingest.js.map +1 -0
  84. package/dist/services/screening/schema.d.ts +52 -0
  85. package/dist/services/screening/schema.d.ts.map +1 -0
  86. package/dist/services/screening/schema.js +125 -0
  87. package/dist/services/screening/schema.js.map +1 -0
  88. package/dist/services/screening/screening-service.d.ts +203 -0
  89. package/dist/services/screening/screening-service.d.ts.map +1 -0
  90. package/dist/services/screening/screening-service.js +702 -0
  91. package/dist/services/screening/screening-service.js.map +1 -0
  92. package/dist/services/screening/text-matching.d.ts +53 -0
  93. package/dist/services/screening/text-matching.d.ts.map +1 -0
  94. package/dist/services/screening/text-matching.js +514 -0
  95. package/dist/services/screening/text-matching.js.map +1 -0
  96. package/dist/services/screening/types.d.ts +154 -0
  97. package/dist/services/screening/types.d.ts.map +1 -0
  98. package/dist/services/screening/types.js +24 -0
  99. package/dist/services/screening/types.js.map +1 -0
  100. package/dist/services/screening/xml.d.ts +29 -0
  101. package/dist/services/screening/xml.d.ts.map +1 -0
  102. package/dist/services/screening/xml.js +46 -0
  103. package/dist/services/screening/xml.js.map +1 -0
  104. package/package.json +119 -0
  105. package/scripts/_mirror-context.ts +21 -0
  106. package/scripts/mirror-init.ts +66 -0
  107. package/scripts/mirror-refresh.ts +56 -0
  108. package/scripts/mirror-seed.ts +36 -0
  109. package/scripts/mirror-verify.ts +44 -0
  110. 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":"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"}