@x12i/memorix-hippox 1.0.1 → 1.2.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/README.md +112 -13
- package/dist/collection-resolver.d.ts.map +1 -1
- package/dist/collection-resolver.js +8 -1
- package/dist/collection-resolver.js.map +1 -1
- package/dist/config.d.ts +11 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +29 -1
- package/dist/config.js.map +1 -1
- package/dist/helpers-loader.d.ts +31 -0
- package/dist/helpers-loader.d.ts.map +1 -0
- package/dist/helpers-loader.js +20 -0
- package/dist/helpers-loader.js.map +1 -0
- package/dist/http/register-routes.d.ts.map +1 -1
- package/dist/http/register-routes.js +73 -1
- package/dist/http/register-routes.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/infer-links.d.ts +9 -0
- package/dist/infer-links.d.ts.map +1 -0
- package/dist/infer-links.js +171 -0
- package/dist/infer-links.js.map +1 -0
- package/dist/join-discovery.d.ts +34 -0
- package/dist/join-discovery.d.ts.map +1 -0
- package/dist/join-discovery.js +697 -0
- package/dist/join-discovery.js.map +1 -0
- package/dist/legacy-bridge.d.ts.map +1 -1
- package/dist/legacy-bridge.js +3 -4
- package/dist/legacy-bridge.js.map +1 -1
- package/dist/paths.d.ts +1 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +17 -0
- package/dist/paths.js.map +1 -1
- package/dist/record-flatten.d.ts +12 -0
- package/dist/record-flatten.d.ts.map +1 -0
- package/dist/record-flatten.js +49 -0
- package/dist/record-flatten.js.map +1 -0
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +6 -5
- package/dist/resolve.js.map +1 -1
- package/dist/service.d.ts +4 -1
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +33 -0
- package/dist/service.js.map +1 -1
- package/dist/store.d.ts +4 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +16 -0
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +121 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -1
package/README.md
CHANGED
|
@@ -1,18 +1,42 @@
|
|
|
1
1
|
# @x12i/memorix-hippox
|
|
2
2
|
|
|
3
|
-
Memorix Hippox stores reusable contextual links between Memorix object types. Operators can define property-based joins without pre-modeled schema relations, simulate match quality
|
|
3
|
+
Memorix Hippox stores reusable contextual links between Memorix object types. Operators can discover join keys from sampled data, define property-based joins without pre-modeled schema relations, simulate match quality, approve links into long-term memory, and resolve bounded context into `jobMemory.context`.
|
|
4
|
+
|
|
5
|
+
See [memorix-format.md §13](../docs/memorix-format.md) and [memorix-fomat-additions.md §K](../docs/memorix-fomat-additions.md) for how Hippox fits the Memorix 2.0 record model (`data`, `associatedData`, `index.recordLinks`, `sourceFacts`).
|
|
4
6
|
|
|
5
7
|
## Database
|
|
6
8
|
|
|
7
9
|
Approved and draft links persist in Mongo database **`memorix-hippox`** (collection **`context-links`** by default).
|
|
8
10
|
|
|
9
|
-
| Variable | Default |
|
|
10
|
-
|
|
11
|
-
| `MEMORIX_HIPPOX_DB` | `memorix-hippox` |
|
|
12
|
-
| `MEMORIX_HIPPOX_COLLECTION` | `context-links` |
|
|
13
|
-
| `MEMORIX_HIPPOX_SIMULATION_LIMIT` | `1000` |
|
|
14
|
-
| `MEMORIX_HIPPOX_SIMULATION_EXAMPLES_LIMIT` | `25` |
|
|
15
|
-
| `MEMORIX_CONTEXT_LIST_LIMIT` | `25` |
|
|
11
|
+
| Variable | Default | Purpose |
|
|
12
|
+
|----------|---------|---------|
|
|
13
|
+
| `MEMORIX_HIPPOX_DB` | `memorix-hippox` | Hippox Mongo database |
|
|
14
|
+
| `MEMORIX_HIPPOX_COLLECTION` | `context-links` | Context links collection |
|
|
15
|
+
| `MEMORIX_HIPPOX_SIMULATION_LIMIT` | `1000` | Max records sampled per side during simulation |
|
|
16
|
+
| `MEMORIX_HIPPOX_SIMULATION_EXAMPLES_LIMIT` | `25` | Max example matches/misses in simulation summary |
|
|
17
|
+
| `MEMORIX_CONTEXT_LIST_LIMIT` | `25` | Default list retrieval limit at resolve time |
|
|
18
|
+
| `MEMORIX_HIPPOX_DISCOVERY_SAMPLE_LIMIT` | `1000` | Max records sampled per side during join discovery |
|
|
19
|
+
| `MEMORIX_HIPPOX_DISCOVERY_DISTINCT_CAP` | `500` | Max distinct source values per value probe |
|
|
20
|
+
| `MEMORIX_HIPPOX_DISCOVERY_MAX_PAIRS` | `200` | Max source×target field pairs to evaluate |
|
|
21
|
+
| `MEMORIX_HIPPOX_DISCOVERY_MIN_COVERAGE` | `0.05` | Minimum field coverage to include in discovery |
|
|
22
|
+
| `MEMORIX_HIPPOX_DISCOVERY_MIN_PAIR_SCORE` | `0.15` | Minimum score for join candidates / recommended join |
|
|
23
|
+
| `MEMORIX_HIPPOX_DISCOVERY_CACHE_TTL_MS` | `300000` | In-memory join-discovery cache TTL per pair |
|
|
24
|
+
| `MEMORIX_HIPPOX_DISCOVERY_MAX_CANDIDATES` | `50` | Max entries in `joinCandidates` |
|
|
25
|
+
|
|
26
|
+
## Path conventions (Memorix 2.0)
|
|
27
|
+
|
|
28
|
+
Join paths are **dot paths from the document root**, consistent with entity descriptor relations:
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{ "sourcePath": "data.subnetId", "targetPath": "data.id", "operator": "eq" }
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Discovery walks the content-type `dataRoot` (default `data`) and returns paths with the `data.` prefix.
|
|
35
|
+
|
|
36
|
+
Record identity and sorting support both Memorix 2.0 and legacy shapes:
|
|
37
|
+
|
|
38
|
+
- IDs: `identity.recordId`, `identity.targetId`, then legacy `entityId` / `recordId` / `_id`
|
|
39
|
+
- Latest record: `data.scopedAt`, then `lifecycle.capturedAt` / `lifecycle.modifiedAt`, then root timestamps
|
|
16
40
|
|
|
17
41
|
## Example: assets → subnets (record context)
|
|
18
42
|
|
|
@@ -43,18 +67,28 @@ Resolved output:
|
|
|
43
67
|
}
|
|
44
68
|
```
|
|
45
69
|
|
|
70
|
+
Materializing this into a snapshot's `associatedData` block is a separate assembly step; Hippox resolve returns transient job context.
|
|
71
|
+
|
|
46
72
|
## HTTP routes
|
|
47
73
|
|
|
48
74
|
When mounted through `memorix-schema-api`:
|
|
49
75
|
|
|
50
76
|
| Method | Path | Purpose |
|
|
51
77
|
|--------|------|---------|
|
|
52
|
-
| `GET` | `/api/hippox/links?sourceObjectType=assets` | List draft + approved links |
|
|
78
|
+
| `GET` | `/api/hippox/links?sourceObjectType=assets` | List draft + simulated + approved links |
|
|
53
79
|
| `POST` | `/api/hippox/links` | Create draft link |
|
|
80
|
+
| `GET` | `/api/hippox/join-discovery?sourceObjectType=…&targetObjectType=…` | Rank join fields and recommend default pair |
|
|
81
|
+
| `POST` | `/api/hippox/join-discovery` | Same as GET with body parameters |
|
|
82
|
+
| `POST` | `/api/hippox/infer-links` | Fuzzy-map joins across object types (`@x12i/helpers` ≥ 2.0) |
|
|
83
|
+
| `POST` | `/api/hippox/links/from-relation-candidate` | Create Hippox draft from schema relation candidate |
|
|
54
84
|
| `POST` | `/api/hippox/links/simulate` | Simulate unsaved definition |
|
|
55
85
|
| `POST` | `/api/hippox/links/:id/simulate` | Simulate + persist summary |
|
|
56
86
|
| `POST` | `/api/hippox/links/:id/approve` | Approve simulated link |
|
|
57
|
-
| `POST` | `/api/hippox/context/resolve` | Resolve runtime context |
|
|
87
|
+
| `POST` | `/api/hippox/context/resolve` | Resolve runtime context from approved links |
|
|
88
|
+
|
|
89
|
+
### Join discovery response (summary)
|
|
90
|
+
|
|
91
|
+
Returns ranked `sourceFields`, `targetFields`, `joinCandidates`, and `recommendedJoin` for UI dropdowns. Seeds from Memorix schema relations and previously approved Hippox links. Discovery is ephemeral (optional in-memory cache); only approved links persist.
|
|
58
92
|
|
|
59
93
|
## Programmatic usage
|
|
60
94
|
|
|
@@ -65,11 +99,19 @@ import { HippoxService } from '@x12i/memorix-hippox';
|
|
|
65
99
|
const { client } = await createMemorixRetrievalStackFromEnv();
|
|
66
100
|
const hippox = await HippoxService.create({ retrieval: client });
|
|
67
101
|
|
|
102
|
+
const discovery = await hippox.discoverJoinCandidates({
|
|
103
|
+
sourceObjectType: 'assets',
|
|
104
|
+
targetObjectType: 'subnets',
|
|
105
|
+
});
|
|
106
|
+
|
|
68
107
|
const draft = await hippox.createDraftLink({
|
|
69
108
|
sourceObjectType: 'assets',
|
|
70
109
|
targetObjectType: 'subnets',
|
|
71
110
|
direction: 'downstream',
|
|
72
|
-
join: [
|
|
111
|
+
join: [discovery.recommendedJoin ?? {
|
|
112
|
+
sourcePath: 'data.subnetId',
|
|
113
|
+
targetPath: 'data.id',
|
|
114
|
+
}],
|
|
73
115
|
retrieval: { type: 'record', outputMode: 'data' },
|
|
74
116
|
});
|
|
75
117
|
|
|
@@ -78,7 +120,7 @@ await hippox.approveLink(draft.id);
|
|
|
78
120
|
|
|
79
121
|
const resolved = await hippox.resolveContextInput({
|
|
80
122
|
sourceObjectType: 'assets',
|
|
81
|
-
sourceRecordId: 'asset
|
|
123
|
+
sourceRecordId: 'entity:asset:10.100.18.64',
|
|
82
124
|
linkIds: [draft.id],
|
|
83
125
|
});
|
|
84
126
|
```
|
|
@@ -89,8 +131,65 @@ Use `resolveMixedContext()` to resolve Hippox links and legacy `JobContextLink`
|
|
|
89
131
|
|
|
90
132
|
## Retrieval types
|
|
91
133
|
|
|
92
|
-
- **record** — single best match (default latest `data.scopedAt`)
|
|
134
|
+
- **record** — single best match (default latest `data.scopedAt` or `lifecycle.capturedAt`)
|
|
93
135
|
- **list** — bounded array (mandatory limit)
|
|
94
136
|
- **aggregate** — flat per-property value counts
|
|
95
137
|
|
|
96
138
|
Output modes: `data` (default), `record`, `dataWithRecordId`.
|
|
139
|
+
|
|
140
|
+
## Relationship to other Memorix layers
|
|
141
|
+
|
|
142
|
+
| Layer | Hippox role |
|
|
143
|
+
|-------|-------------|
|
|
144
|
+
| `sourceFacts.resolver.component: "memorix-hippox"` | value resolution rules (enum/lookup) — separate from context links |
|
|
145
|
+
| `index.recordLinks` | schema-declared indexed relations |
|
|
146
|
+
| `associatedData` | readable materialized join output on snapshots |
|
|
147
|
+
| `jobMemory.context` | runtime output of `context/resolve` |
|
|
148
|
+
|
|
149
|
+
## Fuzzy mapping pipeline (`@x12i/helpers` ≥ 2.0)
|
|
150
|
+
|
|
151
|
+
`@x12i/helpers@2.0.0` ships **record key analysis** at `@x12i/helpers/record-key-analysis`. Hippox orchestrates it via **`POST /api/hippox/infer-links`**.
|
|
152
|
+
|
|
153
|
+
This complements **join-discovery** (named object types, schema seeds, value overlap ranking). Fuzzy mapping is the cold-start path; join-discovery refines once types and collections are registered.
|
|
154
|
+
|
|
155
|
+
### Prerequisites
|
|
156
|
+
|
|
157
|
+
- Runtime access to collection samples (Mongo via Hippox collection resolver).
|
|
158
|
+
- Optional peer **`@x12i/helpers@^2.0.0`** (returns HTTP 501 if missing when calling infer-links).
|
|
159
|
+
|
|
160
|
+
### API
|
|
161
|
+
|
|
162
|
+
```http
|
|
163
|
+
POST /api/hippox/infer-links
|
|
164
|
+
{ "objectTypes": ["assets", "subnets"], "sampleLimit": 10000 }
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Returns `collectionProfiles` (PRIMARY / FOREIGN / ENUM tags) and ranked `inferredLinks` with inclusion ratios.
|
|
168
|
+
|
|
169
|
+
### Programmatic usage
|
|
170
|
+
|
|
171
|
+
```ts
|
|
172
|
+
const inference = await hippox.inferLinks({
|
|
173
|
+
objectTypes: ['assets', 'subnets', 'vulnerabilities'],
|
|
174
|
+
});
|
|
175
|
+
for (const link of inference.inferredLinks) {
|
|
176
|
+
await hippox.createDraftLink({
|
|
177
|
+
sourceObjectType: link.sourceObjectType,
|
|
178
|
+
targetObjectType: link.targetObjectType,
|
|
179
|
+
direction: 'downstream',
|
|
180
|
+
join: [{ sourcePath: link.sourcePath, targetPath: link.targetPath }],
|
|
181
|
+
retrieval: { type: 'record', outputMode: 'data' },
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Schema relation bridge
|
|
187
|
+
|
|
188
|
+
```http
|
|
189
|
+
POST /api/hippox/links/from-relation-candidate
|
|
190
|
+
POST /api/relationships/:sourceEntity/:relationKey/hippox-draft # schema-api operational wrapper
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Converts a schema `RelationCandidate` or declared relation into a Hippox draft link.
|
|
194
|
+
|
|
195
|
+
See [memorix-format.md §13.4](../docs/memorix-format.md) and [memorix-fomat-additions.md §K.4](../docs/memorix-fomat-additions.md).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-resolver.d.ts","sourceRoot":"","sources":["../src/collection-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAQtE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAmC9D,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,2BAA2B,CAAC,CAYtC;AASD,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,2BAA2B,EACpC,MAAM,GAAE;IACN,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1B,GACL,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAiBpC;AAED,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,2BAA2B,EACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,CASjB;AA6BD,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACpF,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"collection-resolver.d.ts","sourceRoot":"","sources":["../src/collection-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAQtE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAmC9D,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,2BAA2B,CAAC,CAYtC;AASD,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,2BAA2B,EACpC,MAAM,GAAE;IACN,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC1B,GACL,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAiBpC;AAED,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,sBAAsB,EACjC,OAAO,EAAE,2BAA2B,EACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,CASjB;AA6BD,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACpF,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6BlC"}
|
|
@@ -109,7 +109,14 @@ export async function loadSourceRecord(retrieval, objectType, params) {
|
|
|
109
109
|
binding: entityBinding,
|
|
110
110
|
contentType: binding.contentType,
|
|
111
111
|
query: {
|
|
112
|
-
$or: [
|
|
112
|
+
$or: [
|
|
113
|
+
{ _id: recordId },
|
|
114
|
+
{ recordId },
|
|
115
|
+
{ entityId: recordId },
|
|
116
|
+
{ eventId: recordId },
|
|
117
|
+
{ 'identity.recordId': recordId },
|
|
118
|
+
{ 'identity.targetId': recordId },
|
|
119
|
+
],
|
|
113
120
|
},
|
|
114
121
|
limit: 1,
|
|
115
122
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-resolver.js","sourceRoot":"","sources":["../src/collection-resolver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"collection-resolver.js","sourceRoot":"","sources":["../src/collection-resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -4,6 +4,16 @@ declare const DEFAULT_HIPPOX_COLLECTION = "context-links";
|
|
|
4
4
|
declare const DEFAULT_SIMULATION_LIMIT = 1000;
|
|
5
5
|
declare const DEFAULT_SIMULATION_EXAMPLES_LIMIT = 25;
|
|
6
6
|
declare const DEFAULT_CONTEXT_LIST_LIMIT = 25;
|
|
7
|
+
declare const DEFAULT_DISCOVERY_SAMPLE_LIMIT = 1000;
|
|
8
|
+
declare const DEFAULT_DISCOVERY_DISTINCT_CAP = 500;
|
|
9
|
+
declare const DEFAULT_DISCOVERY_MAX_PAIRS = 200;
|
|
10
|
+
declare const DEFAULT_DISCOVERY_MIN_COVERAGE = 0.05;
|
|
11
|
+
declare const DEFAULT_DISCOVERY_MIN_PAIR_SCORE = 0.15;
|
|
12
|
+
declare const DEFAULT_DISCOVERY_CACHE_TTL_MS = 300000;
|
|
13
|
+
declare const DEFAULT_DISCOVERY_MAX_CANDIDATES = 50;
|
|
14
|
+
declare const DEFAULT_INFER_SAMPLE_LIMIT = 10000;
|
|
15
|
+
declare const DEFAULT_INFER_MIN_INCLUSION_RATIO = 0.95;
|
|
16
|
+
declare const DEFAULT_INFER_CANDIDATE_CONFIDENCE = 40;
|
|
7
17
|
export declare function loadHippoxConfig(processEnv?: NodeJS.ProcessEnv): HippoxConfig;
|
|
8
|
-
export { DEFAULT_HIPPOX_DB, DEFAULT_HIPPOX_COLLECTION, DEFAULT_SIMULATION_LIMIT, DEFAULT_SIMULATION_EXAMPLES_LIMIT, DEFAULT_CONTEXT_LIST_LIMIT, };
|
|
18
|
+
export { DEFAULT_HIPPOX_DB, DEFAULT_HIPPOX_COLLECTION, DEFAULT_SIMULATION_LIMIT, DEFAULT_SIMULATION_EXAMPLES_LIMIT, DEFAULT_CONTEXT_LIST_LIMIT, DEFAULT_DISCOVERY_SAMPLE_LIMIT, DEFAULT_DISCOVERY_DISTINCT_CAP, DEFAULT_DISCOVERY_MAX_PAIRS, DEFAULT_DISCOVERY_MIN_COVERAGE, DEFAULT_DISCOVERY_MIN_PAIR_SCORE, DEFAULT_DISCOVERY_CACHE_TTL_MS, DEFAULT_DISCOVERY_MAX_CANDIDATES, DEFAULT_INFER_SAMPLE_LIMIT, DEFAULT_INFER_MIN_INCLUSION_RATIO, DEFAULT_INFER_CANDIDATE_CONFIDENCE, };
|
|
9
19
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,QAAA,MAAM,iBAAiB,mBAAmB,CAAC;AAC3C,QAAA,MAAM,yBAAyB,kBAAkB,CAAC;AAClD,QAAA,MAAM,wBAAwB,OAAO,CAAC;AACtC,QAAA,MAAM,iCAAiC,KAAK,CAAC;AAC7C,QAAA,MAAM,0BAA0B,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,QAAA,MAAM,iBAAiB,mBAAmB,CAAC;AAC3C,QAAA,MAAM,yBAAyB,kBAAkB,CAAC;AAClD,QAAA,MAAM,wBAAwB,OAAO,CAAC;AACtC,QAAA,MAAM,iCAAiC,KAAK,CAAC;AAC7C,QAAA,MAAM,0BAA0B,KAAK,CAAC;AACtC,QAAA,MAAM,8BAA8B,OAAO,CAAC;AAC5C,QAAA,MAAM,8BAA8B,MAAM,CAAC;AAC3C,QAAA,MAAM,2BAA2B,MAAM,CAAC;AACxC,QAAA,MAAM,8BAA8B,OAAO,CAAC;AAC5C,QAAA,MAAM,gCAAgC,OAAO,CAAC;AAC9C,QAAA,MAAM,8BAA8B,SAAU,CAAC;AAC/C,QAAA,MAAM,gCAAgC,KAAK,CAAC;AAC5C,QAAA,MAAM,0BAA0B,QAAS,CAAC;AAC1C,QAAA,MAAM,iCAAiC,OAAO,CAAC;AAC/C,QAAA,MAAM,kCAAkC,KAAK,CAAC;AAgB9C,wBAAgB,gBAAgB,CAAC,UAAU,GAAE,MAAM,CAAC,UAAwB,GAAG,YAAY,CAmD1F;AAED,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,iCAAiC,EACjC,0BAA0B,EAC1B,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,8BAA8B,EAC9B,gCAAgC,EAChC,8BAA8B,EAC9B,gCAAgC,EAChC,0BAA0B,EAC1B,iCAAiC,EACjC,kCAAkC,GACnC,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -3,6 +3,16 @@ const DEFAULT_HIPPOX_COLLECTION = 'context-links';
|
|
|
3
3
|
const DEFAULT_SIMULATION_LIMIT = 1000;
|
|
4
4
|
const DEFAULT_SIMULATION_EXAMPLES_LIMIT = 25;
|
|
5
5
|
const DEFAULT_CONTEXT_LIST_LIMIT = 25;
|
|
6
|
+
const DEFAULT_DISCOVERY_SAMPLE_LIMIT = 1000;
|
|
7
|
+
const DEFAULT_DISCOVERY_DISTINCT_CAP = 500;
|
|
8
|
+
const DEFAULT_DISCOVERY_MAX_PAIRS = 200;
|
|
9
|
+
const DEFAULT_DISCOVERY_MIN_COVERAGE = 0.05;
|
|
10
|
+
const DEFAULT_DISCOVERY_MIN_PAIR_SCORE = 0.15;
|
|
11
|
+
const DEFAULT_DISCOVERY_CACHE_TTL_MS = 300_000;
|
|
12
|
+
const DEFAULT_DISCOVERY_MAX_CANDIDATES = 50;
|
|
13
|
+
const DEFAULT_INFER_SAMPLE_LIMIT = 10_000;
|
|
14
|
+
const DEFAULT_INFER_MIN_INCLUSION_RATIO = 0.95;
|
|
15
|
+
const DEFAULT_INFER_CANDIDATE_CONFIDENCE = 40;
|
|
6
16
|
function parsePositiveInt(raw, fallback) {
|
|
7
17
|
if (!raw?.trim())
|
|
8
18
|
return fallback;
|
|
@@ -11,6 +21,14 @@ function parsePositiveInt(raw, fallback) {
|
|
|
11
21
|
return fallback;
|
|
12
22
|
return Math.floor(n);
|
|
13
23
|
}
|
|
24
|
+
function parseNonNegativeNumber(raw, fallback) {
|
|
25
|
+
if (!raw?.trim())
|
|
26
|
+
return fallback;
|
|
27
|
+
const n = Number(raw);
|
|
28
|
+
if (!Number.isFinite(n) || n < 0)
|
|
29
|
+
return fallback;
|
|
30
|
+
return n;
|
|
31
|
+
}
|
|
14
32
|
export function loadHippoxConfig(processEnv = process.env) {
|
|
15
33
|
return {
|
|
16
34
|
dbName: processEnv.MEMORIX_HIPPOX_DB?.trim() || DEFAULT_HIPPOX_DB,
|
|
@@ -18,7 +36,17 @@ export function loadHippoxConfig(processEnv = process.env) {
|
|
|
18
36
|
simulationLimit: parsePositiveInt(processEnv.MEMORIX_HIPPOX_SIMULATION_LIMIT, DEFAULT_SIMULATION_LIMIT),
|
|
19
37
|
simulationExamplesLimit: parsePositiveInt(processEnv.MEMORIX_HIPPOX_SIMULATION_EXAMPLES_LIMIT, DEFAULT_SIMULATION_EXAMPLES_LIMIT),
|
|
20
38
|
contextListLimit: parsePositiveInt(processEnv.MEMORIX_CONTEXT_LIST_LIMIT, DEFAULT_CONTEXT_LIST_LIMIT),
|
|
39
|
+
discoverySampleLimit: parsePositiveInt(processEnv.MEMORIX_HIPPOX_DISCOVERY_SAMPLE_LIMIT, DEFAULT_DISCOVERY_SAMPLE_LIMIT),
|
|
40
|
+
discoveryDistinctCap: parsePositiveInt(processEnv.MEMORIX_HIPPOX_DISCOVERY_DISTINCT_CAP, DEFAULT_DISCOVERY_DISTINCT_CAP),
|
|
41
|
+
discoveryMaxPairs: parsePositiveInt(processEnv.MEMORIX_HIPPOX_DISCOVERY_MAX_PAIRS, DEFAULT_DISCOVERY_MAX_PAIRS),
|
|
42
|
+
discoveryMinCoverage: parseNonNegativeNumber(processEnv.MEMORIX_HIPPOX_DISCOVERY_MIN_COVERAGE, DEFAULT_DISCOVERY_MIN_COVERAGE),
|
|
43
|
+
discoveryMinPairScore: parseNonNegativeNumber(processEnv.MEMORIX_HIPPOX_DISCOVERY_MIN_PAIR_SCORE, DEFAULT_DISCOVERY_MIN_PAIR_SCORE),
|
|
44
|
+
discoveryCacheTtlMs: parsePositiveInt(processEnv.MEMORIX_HIPPOX_DISCOVERY_CACHE_TTL_MS, DEFAULT_DISCOVERY_CACHE_TTL_MS),
|
|
45
|
+
discoveryMaxCandidates: parsePositiveInt(processEnv.MEMORIX_HIPPOX_DISCOVERY_MAX_CANDIDATES, DEFAULT_DISCOVERY_MAX_CANDIDATES),
|
|
46
|
+
inferSampleLimit: parsePositiveInt(processEnv.MEMORIX_HIPPOX_INFER_SAMPLE_LIMIT, DEFAULT_INFER_SAMPLE_LIMIT),
|
|
47
|
+
inferMinInclusionRatio: parseNonNegativeNumber(processEnv.MEMORIX_HIPPOX_INFER_MIN_INCLUSION_RATIO, DEFAULT_INFER_MIN_INCLUSION_RATIO),
|
|
48
|
+
inferCandidateConfidence: parsePositiveInt(processEnv.MEMORIX_HIPPOX_INFER_CANDIDATE_CONFIDENCE, DEFAULT_INFER_CANDIDATE_CONFIDENCE),
|
|
21
49
|
};
|
|
22
50
|
}
|
|
23
|
-
export { DEFAULT_HIPPOX_DB, DEFAULT_HIPPOX_COLLECTION, DEFAULT_SIMULATION_LIMIT, DEFAULT_SIMULATION_EXAMPLES_LIMIT, DEFAULT_CONTEXT_LIST_LIMIT, };
|
|
51
|
+
export { DEFAULT_HIPPOX_DB, DEFAULT_HIPPOX_COLLECTION, DEFAULT_SIMULATION_LIMIT, DEFAULT_SIMULATION_EXAMPLES_LIMIT, DEFAULT_CONTEXT_LIST_LIMIT, DEFAULT_DISCOVERY_SAMPLE_LIMIT, DEFAULT_DISCOVERY_DISTINCT_CAP, DEFAULT_DISCOVERY_MAX_PAIRS, DEFAULT_DISCOVERY_MIN_COVERAGE, DEFAULT_DISCOVERY_MIN_PAIR_SCORE, DEFAULT_DISCOVERY_CACHE_TTL_MS, DEFAULT_DISCOVERY_MAX_CANDIDATES, DEFAULT_INFER_SAMPLE_LIMIT, DEFAULT_INFER_MIN_INCLUSION_RATIO, DEFAULT_INFER_CANDIDATE_CONFIDENCE, };
|
|
24
52
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAC3C,MAAM,yBAAyB,GAAG,eAAe,CAAC;AAClD,MAAM,wBAAwB,GAAG,IAAI,CAAC;AACtC,MAAM,iCAAiC,GAAG,EAAE,CAAC;AAC7C,MAAM,0BAA0B,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type RecordKeyAnalysisModule = {
|
|
2
|
+
analyzeSingleRecordKeys: (record: Record<string, unknown>, options?: {
|
|
3
|
+
threshold?: number;
|
|
4
|
+
}) => Array<{
|
|
5
|
+
property: string;
|
|
6
|
+
confidence: number;
|
|
7
|
+
signals?: string[];
|
|
8
|
+
}>;
|
|
9
|
+
analyzeCollectionKeys: (collection: Record<string, unknown>[], candidateProperties: string[], options?: Record<string, unknown>) => Array<{
|
|
10
|
+
property: string;
|
|
11
|
+
classification: 'PRIMARY' | 'FOREIGN' | 'FOREIGN_OR_DIRTY_PRIMARY' | 'ENUM' | 'NONE';
|
|
12
|
+
uniqueCount: number;
|
|
13
|
+
uniquenessRatio: number;
|
|
14
|
+
nullRatio: number;
|
|
15
|
+
confidence: number;
|
|
16
|
+
}>;
|
|
17
|
+
mapCrossCollectionRelationships: (sourceCollection: Record<string, unknown>[], sourceForeignKey: string, targetCollectionsMap: Record<string, {
|
|
18
|
+
primaryKeys?: string[];
|
|
19
|
+
records?: Record<string, unknown>[];
|
|
20
|
+
}>, options?: {
|
|
21
|
+
minInclusionRatio?: number;
|
|
22
|
+
}) => Array<{
|
|
23
|
+
targetCollection: string;
|
|
24
|
+
targetProperty: string;
|
|
25
|
+
inclusionRatio: number;
|
|
26
|
+
confidence: number;
|
|
27
|
+
}>;
|
|
28
|
+
};
|
|
29
|
+
export declare function loadRecordKeyAnalysis(): RecordKeyAnalysisModule;
|
|
30
|
+
export declare function clearRecordKeyAnalysisCache(): void;
|
|
31
|
+
//# sourceMappingURL=helpers-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers-loader.d.ts","sourceRoot":"","sources":["../src/helpers-loader.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,uBAAuB,GAAG;IACpC,uBAAuB,EAAE,CACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAC7B,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACzE,qBAAqB,EAAE,CACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACrC,mBAAmB,EAAE,MAAM,EAAE,EAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,KAAK,CAAC;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,SAAS,GAAG,SAAS,GAAG,0BAA0B,GAAG,MAAM,GAAG,MAAM,CAAC;QACrF,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,+BAA+B,EAAE,CAC/B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3C,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,EAAE,MAAM,CAC1B,MAAM,EACN;QAAE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAAE,CAChE,EACD,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,KACrC,KAAK,CAAC;QACT,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ,CAAC;AAIF,wBAAgB,qBAAqB,IAAI,uBAAuB,CAY/D;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAElD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
const require = createRequire(import.meta.url);
|
|
3
|
+
let cachedModule = null;
|
|
4
|
+
export function loadRecordKeyAnalysis() {
|
|
5
|
+
if (cachedModule)
|
|
6
|
+
return cachedModule;
|
|
7
|
+
try {
|
|
8
|
+
const mod = require('@x12i/helpers/record-key-analysis');
|
|
9
|
+
cachedModule = mod;
|
|
10
|
+
return mod;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
throw new Error('Fuzzy link inference requires @x12i/helpers@^2.0.0 (record-key-analysis export). '
|
|
14
|
+
+ 'Install it alongside @x12i/memorix-hippox.');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function clearRecordKeyAnalysisCache() {
|
|
18
|
+
cachedModule = null;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=helpers-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers-loader.js","sourceRoot":"","sources":["../src/helpers-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAmC/C,IAAI,YAAY,GAAmC,IAAI,CAAC;AAExD,MAAM,UAAU,qBAAqB;IACnC,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,mCAAmC,CAA4B,CAAC;QACpF,YAAY,GAAG,GAAG,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,mFAAmF;cACjF,4CAA4C,CAC/C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-routes.d.ts","sourceRoot":"","sources":["../../src/http/register-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,aAAa,EAA2B,MAAM,eAAe,CAAC;AAGvE,MAAM,MAAM,cAAc,GAAG;IAE3B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK,OAAO,CAAC;IACjE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK,OAAO,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"register-routes.d.ts","sourceRoot":"","sources":["../../src/http/register-routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,aAAa,EAA2B,MAAM,eAAe,CAAC;AAGvE,MAAM,MAAM,cAAc,GAAG;IAE3B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK,OAAO,CAAC;IACjE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK,OAAO,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAeF,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,sBAAsB,EACjC,OAAO,GAAE,2BAAgC,GACxC,IAAI,CAiKN"}
|
|
@@ -4,7 +4,11 @@ function sendError(reply, err, fallbackStatus = 503) {
|
|
|
4
4
|
return reply.code(400).send({ error: err.message });
|
|
5
5
|
}
|
|
6
6
|
const message = err instanceof Error ? err.message : String(err);
|
|
7
|
-
const status = message.includes('not found')
|
|
7
|
+
const status = message.includes('not found')
|
|
8
|
+
? 404
|
|
9
|
+
: message.includes('@x12i/helpers')
|
|
10
|
+
? 501
|
|
11
|
+
: fallbackStatus;
|
|
8
12
|
return reply.code(status).send({ error: message });
|
|
9
13
|
}
|
|
10
14
|
export function registerHippoxRoutes(app, retrieval, options = {}) {
|
|
@@ -86,5 +90,73 @@ export function registerHippoxRoutes(app, retrieval, options = {}) {
|
|
|
86
90
|
return sendError(reply, err, 400);
|
|
87
91
|
}
|
|
88
92
|
});
|
|
93
|
+
const handleJoinDiscovery = async (input, reply) => {
|
|
94
|
+
if (!input.sourceObjectType?.trim() || !input.targetObjectType?.trim()) {
|
|
95
|
+
return reply.code(400).send({ error: 'sourceObjectType and targetObjectType are required' });
|
|
96
|
+
}
|
|
97
|
+
try {
|
|
98
|
+
const service = await getService();
|
|
99
|
+
return await service.discoverJoinCandidates({
|
|
100
|
+
sourceObjectType: input.sourceObjectType.trim(),
|
|
101
|
+
targetObjectType: input.targetObjectType.trim(),
|
|
102
|
+
sourceContentType: input.sourceContentType?.trim() || undefined,
|
|
103
|
+
targetContentType: input.targetContentType?.trim() || undefined,
|
|
104
|
+
direction: input.direction,
|
|
105
|
+
sampleLimit: input.sampleLimit,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
return sendError(reply, err);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
app.get(`${base}/join-discovery`, async (req, reply) => {
|
|
113
|
+
const q = req.query;
|
|
114
|
+
const rawSampleLimit = q.sampleLimit?.trim();
|
|
115
|
+
const parsedSampleLimit = rawSampleLimit ? Number(rawSampleLimit) : undefined;
|
|
116
|
+
return handleJoinDiscovery({
|
|
117
|
+
sourceObjectType: q.sourceObjectType ?? '',
|
|
118
|
+
targetObjectType: q.targetObjectType ?? '',
|
|
119
|
+
sourceContentType: q.sourceContentType,
|
|
120
|
+
targetContentType: q.targetContentType,
|
|
121
|
+
direction: q.direction,
|
|
122
|
+
sampleLimit: parsedSampleLimit !== undefined && Number.isFinite(parsedSampleLimit)
|
|
123
|
+
? parsedSampleLimit
|
|
124
|
+
: undefined,
|
|
125
|
+
}, reply);
|
|
126
|
+
});
|
|
127
|
+
app.post(`${base}/join-discovery`, async (req, reply) => {
|
|
128
|
+
const body = (req.body ?? {});
|
|
129
|
+
return handleJoinDiscovery({
|
|
130
|
+
sourceObjectType: body.sourceObjectType ?? '',
|
|
131
|
+
targetObjectType: body.targetObjectType ?? '',
|
|
132
|
+
sourceContentType: body.sourceContentType,
|
|
133
|
+
targetContentType: body.targetContentType,
|
|
134
|
+
direction: body.direction,
|
|
135
|
+
sampleLimit: body.sampleLimit,
|
|
136
|
+
}, reply);
|
|
137
|
+
});
|
|
138
|
+
app.post(`${base}/infer-links`, async (req, reply) => {
|
|
139
|
+
const body = (req.body ?? {});
|
|
140
|
+
if (!Array.isArray(body.objectTypes) || body.objectTypes.length < 2) {
|
|
141
|
+
return reply.code(400).send({ error: 'objectTypes must include at least two object types' });
|
|
142
|
+
}
|
|
143
|
+
try {
|
|
144
|
+
const service = await getService();
|
|
145
|
+
return await service.inferLinks(body);
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
return sendError(reply, err, 400);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
app.post(`${base}/links/from-relation-candidate`, async (req, reply) => {
|
|
152
|
+
const body = (req.body ?? {});
|
|
153
|
+
try {
|
|
154
|
+
const service = await getService();
|
|
155
|
+
return await service.createDraftFromRelationCandidate(body);
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
return sendError(reply, err, 400);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
89
161
|
}
|
|
90
162
|
//# sourceMappingURL=register-routes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-routes.js","sourceRoot":"","sources":["../../src/http/register-routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAcvE,SAAS,SAAS,CAAC,KAAmB,EAAE,GAAY,EAAE,cAAc,GAAG,GAAG;IACxE,IAAI,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"register-routes.js","sourceRoot":"","sources":["../../src/http/register-routes.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
export type { LinkDirection, LinkStatus, JoinOperator, FilterOperator, OutputMode, RetrievalType, JoinMapping, FixedFilter, SortSpec, RecordRetrieval, ListRetrieval, AggregateRetrieval, ContextLinkRetrieval, ContextLink, ContextLinkInput, IndexRecommendation, SimulationWarning, PropertyMatchQuality, SimulationExampleMatch, SimulationExampleMiss, SimulationSummary, ResolveContextInput, ResolveContextResult, HippoxConfig, ObjectTypeCollectionBinding, } from './types.js';
|
|
2
|
-
export { loadHippoxConfig, DEFAULT_HIPPOX_DB, DEFAULT_HIPPOX_COLLECTION, DEFAULT_SIMULATION_LIMIT, DEFAULT_SIMULATION_EXAMPLES_LIMIT, DEFAULT_CONTEXT_LIST_LIMIT, } from './config.js';
|
|
3
|
-
export { readPath, readRecordId, isDateLike, coerceDateValue, sortSpecsToMongo, extractDataPayload, formatOutputRecord, } from './paths.js';
|
|
1
|
+
export type { LinkDirection, LinkStatus, JoinOperator, FilterOperator, OutputMode, RetrievalType, JoinMapping, FixedFilter, SortSpec, RecordRetrieval, ListRetrieval, AggregateRetrieval, ContextLinkRetrieval, ContextLink, ContextLinkInput, IndexRecommendation, SimulationWarning, PropertyMatchQuality, SimulationExampleMatch, SimulationExampleMiss, SimulationSummary, ResolveContextInput, ResolveContextResult, HippoxConfig, ObjectTypeCollectionBinding, InferredFieldType, JoinDiscoveryField, JoinDiscoveryCandidateSignals, JoinDiscoveryCandidate, JoinDiscoveryRecommendedJoin, JoinDiscoveryWarning, JoinDiscoveryResult, JoinDiscoveryInput, CollectionKeyProfile, InferredContextLink, InferLinksInput, InferLinksResult, RelationCandidateBridgeInput, } from './types.js';
|
|
2
|
+
export { loadHippoxConfig, DEFAULT_HIPPOX_DB, DEFAULT_HIPPOX_COLLECTION, DEFAULT_SIMULATION_LIMIT, DEFAULT_SIMULATION_EXAMPLES_LIMIT, DEFAULT_CONTEXT_LIST_LIMIT, DEFAULT_DISCOVERY_SAMPLE_LIMIT, DEFAULT_DISCOVERY_DISTINCT_CAP, DEFAULT_DISCOVERY_MAX_PAIRS, DEFAULT_DISCOVERY_MIN_COVERAGE, DEFAULT_DISCOVERY_MIN_PAIR_SCORE, DEFAULT_DISCOVERY_CACHE_TTL_MS, DEFAULT_DISCOVERY_MAX_CANDIDATES, DEFAULT_INFER_SAMPLE_LIMIT, DEFAULT_INFER_MIN_INCLUSION_RATIO, DEFAULT_INFER_CANDIDATE_CONFIDENCE, } from './config.js';
|
|
3
|
+
export { readPath, readRecordId, readObjectType, isDateLike, coerceDateValue, sortSpecsToMongo, extractDataPayload, formatOutputRecord, } from './paths.js';
|
|
4
4
|
export { compileFixedFilter, compileFixedFilters, compileJoinClause, buildTargetQueryFromLink, buildFixedOnlyQuery, } from './filters.js';
|
|
5
5
|
export { validateContextLinkInput, defaultRecordRetrieval, defaultListRetrieval, contextKeyForLink, detectContextKeyCollisions, HippoxValidationError, } from './validation.js';
|
|
6
6
|
export { resolveObjectTypeCollection, readObjectTypeDocuments, countObjectTypeDocuments, loadSourceRecord, } from './collection-resolver.js';
|
|
7
7
|
export { HippoxStore, createHippoxStore } from './store.js';
|
|
8
8
|
export { simulateContextLink, type SimulateContextLinkOptions } from './simulate.js';
|
|
9
|
+
export { discoverJoinCandidates, clearJoinDiscoveryCache, computeValueHitRate, computeNameSimilarity, computePairScore, sourceNameHintScore, targetNameHintScore, isScalarJoinable, normalizeScalarValue, classifyValue, type DiscoverJoinCandidatesOptions, } from './join-discovery.js';
|
|
10
|
+
export { inferLinksForObjectTypes, type InferLinksOptions, } from './infer-links.js';
|
|
11
|
+
export { flattenRecordForKeyAnalysis, flattenSampleForKeyAnalysis, memorixPathForLeaf, type FlattenedForHelpers, } from './record-flatten.js';
|
|
12
|
+
export { loadRecordKeyAnalysis, clearRecordKeyAnalysisCache, type RecordKeyAnalysisModule, } from './helpers-loader.js';
|
|
9
13
|
export { resolveContext, type ResolveContextOptions } from './resolve.js';
|
|
10
14
|
export { resolveMixedContext, hippoxLinkFromRelationCandidate, type ResolveMixedContextInput, type ResolveMixedContextOptions, } from './legacy-bridge.js';
|
|
11
15
|
export { recommendIndexesForLink } from './index-recommendations.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,UAAU,EACV,YAAY,EACZ,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,2BAA2B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,UAAU,EACV,YAAY,EACZ,cAAc,EACd,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,QAAQ,EACR,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,iCAAiC,EACjC,0BAA0B,EAC1B,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,8BAA8B,EAC9B,gCAAgC,EAChC,8BAA8B,EAC9B,gCAAgC,EAChC,0BAA0B,EAC1B,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,KAAK,6BAA6B,GACnC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,kBAAkB,EAClB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,+BAA+B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,GAChC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAE,KAAK,2BAA2B,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
export { loadHippoxConfig, DEFAULT_HIPPOX_DB, DEFAULT_HIPPOX_COLLECTION, DEFAULT_SIMULATION_LIMIT, DEFAULT_SIMULATION_EXAMPLES_LIMIT, DEFAULT_CONTEXT_LIST_LIMIT, } from './config.js';
|
|
2
|
-
export { readPath, readRecordId, isDateLike, coerceDateValue, sortSpecsToMongo, extractDataPayload, formatOutputRecord, } from './paths.js';
|
|
1
|
+
export { loadHippoxConfig, DEFAULT_HIPPOX_DB, DEFAULT_HIPPOX_COLLECTION, DEFAULT_SIMULATION_LIMIT, DEFAULT_SIMULATION_EXAMPLES_LIMIT, DEFAULT_CONTEXT_LIST_LIMIT, DEFAULT_DISCOVERY_SAMPLE_LIMIT, DEFAULT_DISCOVERY_DISTINCT_CAP, DEFAULT_DISCOVERY_MAX_PAIRS, DEFAULT_DISCOVERY_MIN_COVERAGE, DEFAULT_DISCOVERY_MIN_PAIR_SCORE, DEFAULT_DISCOVERY_CACHE_TTL_MS, DEFAULT_DISCOVERY_MAX_CANDIDATES, DEFAULT_INFER_SAMPLE_LIMIT, DEFAULT_INFER_MIN_INCLUSION_RATIO, DEFAULT_INFER_CANDIDATE_CONFIDENCE, } from './config.js';
|
|
2
|
+
export { readPath, readRecordId, readObjectType, isDateLike, coerceDateValue, sortSpecsToMongo, extractDataPayload, formatOutputRecord, } from './paths.js';
|
|
3
3
|
export { compileFixedFilter, compileFixedFilters, compileJoinClause, buildTargetQueryFromLink, buildFixedOnlyQuery, } from './filters.js';
|
|
4
4
|
export { validateContextLinkInput, defaultRecordRetrieval, defaultListRetrieval, contextKeyForLink, detectContextKeyCollisions, HippoxValidationError, } from './validation.js';
|
|
5
5
|
export { resolveObjectTypeCollection, readObjectTypeDocuments, countObjectTypeDocuments, loadSourceRecord, } from './collection-resolver.js';
|
|
6
6
|
export { HippoxStore, createHippoxStore } from './store.js';
|
|
7
7
|
export { simulateContextLink } from './simulate.js';
|
|
8
|
+
export { discoverJoinCandidates, clearJoinDiscoveryCache, computeValueHitRate, computeNameSimilarity, computePairScore, sourceNameHintScore, targetNameHintScore, isScalarJoinable, normalizeScalarValue, classifyValue, } from './join-discovery.js';
|
|
9
|
+
export { inferLinksForObjectTypes, } from './infer-links.js';
|
|
10
|
+
export { flattenRecordForKeyAnalysis, flattenSampleForKeyAnalysis, memorixPathForLeaf, } from './record-flatten.js';
|
|
11
|
+
export { loadRecordKeyAnalysis, clearRecordKeyAnalysisCache, } from './helpers-loader.js';
|
|
8
12
|
export { resolveContext } from './resolve.js';
|
|
9
13
|
export { resolveMixedContext, hippoxLinkFromRelationCandidate, } from './legacy-bridge.js';
|
|
10
14
|
export { recommendIndexesForLink } from './index-recommendations.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyCA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,iCAAiC,EACjC,0BAA0B,EAC1B,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,8BAA8B,EAC9B,gCAAgC,EAChC,8BAA8B,EAC9B,gCAAgC,EAChC,0BAA0B,EAC1B,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAmC,MAAM,eAAe,CAAC;AACrF,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GAEd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,GAEzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,kBAAkB,GAEnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAE5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAA8B,MAAM,cAAc,CAAC;AAC1E,OAAO,EACL,mBAAmB,EACnB,+BAA+B,GAGhC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAA6B,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAyD,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MemorixRetrievalClient } from '@x12i/memorix-retrieval';
|
|
2
|
+
import type { InferLinksInput, InferLinksResult } from './types.js';
|
|
3
|
+
export type InferLinksOptions = {
|
|
4
|
+
retrieval: MemorixRetrievalClient;
|
|
5
|
+
input: InferLinksInput;
|
|
6
|
+
processEnv?: NodeJS.ProcessEnv;
|
|
7
|
+
};
|
|
8
|
+
export declare function inferLinksForObjectTypes(options: InferLinksOptions): Promise<InferLinksResult>;
|
|
9
|
+
//# sourceMappingURL=infer-links.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infer-links.d.ts","sourceRoot":"","sources":["../src/infer-links.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAStE,OAAO,KAAK,EAEV,eAAe,EACf,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,sBAAsB,CAAC;IAClC,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC,CAAC;AAIF,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CA+L3B"}
|