memkin 0.4.0 → 0.4.1
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.en.md +108 -836
- package/README.md +108 -836
- package/README.zh-CN.md +80 -44
- package/dist/cli-stores.d.ts +12 -0
- package/dist/cli-stores.d.ts.map +1 -1
- package/dist/cli-stores.js +15 -1
- package/dist/cli-stores.js.map +1 -1
- package/dist/cli.js +94 -6
- package/dist/cli.js.map +1 -1
- package/dist/collectors/agent/claude-code.d.ts.map +1 -1
- package/dist/collectors/agent/claude-code.js +10 -29
- package/dist/collectors/agent/claude-code.js.map +1 -1
- package/dist/collectors/agent/codex.d.ts.map +1 -1
- package/dist/collectors/agent/codex.js +24 -10
- package/dist/collectors/agent/codex.js.map +1 -1
- package/dist/collectors/agent/collector.d.ts +38 -0
- package/dist/collectors/agent/collector.d.ts.map +1 -1
- package/dist/collectors/agent/collector.js +91 -20
- package/dist/collectors/agent/collector.js.map +1 -1
- package/dist/collectors/agent/hermes.d.ts.map +1 -1
- package/dist/collectors/agent/hermes.js +5 -1
- package/dist/collectors/agent/hermes.js.map +1 -1
- package/dist/collectors/feishu/sources/calendar.d.ts.map +1 -1
- package/dist/collectors/feishu/sources/calendar.js +18 -7
- package/dist/collectors/feishu/sources/calendar.js.map +1 -1
- package/dist/consolidator/consolidator.d.ts +9 -1
- package/dist/consolidator/consolidator.d.ts.map +1 -1
- package/dist/consolidator/consolidator.js +7 -0
- package/dist/consolidator/consolidator.js.map +1 -1
- package/dist/consolidator/entity-merge.d.ts +33 -0
- package/dist/consolidator/entity-merge.d.ts.map +1 -0
- package/dist/consolidator/entity-merge.js +148 -0
- package/dist/consolidator/entity-merge.js.map +1 -0
- package/dist/core/agent-session-scanner.d.ts +23 -0
- package/dist/core/agent-session-scanner.d.ts.map +1 -0
- package/dist/core/agent-session-scanner.js +69 -0
- package/dist/core/agent-session-scanner.js.map +1 -0
- package/dist/core/canonicalize.d.ts +8 -0
- package/dist/core/canonicalize.d.ts.map +1 -1
- package/dist/core/canonicalize.js +12 -2
- package/dist/core/canonicalize.js.map +1 -1
- package/dist/core/config.d.ts +6 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/identity-resolver.d.ts +53 -3
- package/dist/core/identity-resolver.d.ts.map +1 -1
- package/dist/core/identity-resolver.js +112 -17
- package/dist/core/identity-resolver.js.map +1 -1
- package/dist/core/person-identity.d.ts +38 -3
- package/dist/core/person-identity.d.ts.map +1 -1
- package/dist/core/person-identity.js +58 -29
- package/dist/core/person-identity.js.map +1 -1
- package/dist/core/pipeline-factory.d.ts.map +1 -1
- package/dist/core/pipeline-factory.js +2 -1
- package/dist/core/pipeline-factory.js.map +1 -1
- package/dist/core/pipeline.js +3 -3
- package/dist/core/pipeline.js.map +1 -1
- package/dist/daemon/autostart/daemon-state.d.ts +32 -0
- package/dist/daemon/autostart/daemon-state.d.ts.map +1 -1
- package/dist/daemon/autostart/daemon-state.js +27 -1
- package/dist/daemon/autostart/daemon-state.js.map +1 -1
- package/dist/daemon/scheduler.d.ts +10 -0
- package/dist/daemon/scheduler.d.ts.map +1 -1
- package/dist/daemon/scheduler.js +20 -1
- package/dist/daemon/scheduler.js.map +1 -1
- package/dist/demo/seed.d.ts +32 -0
- package/dist/demo/seed.d.ts.map +1 -0
- package/dist/demo/seed.js +185 -0
- package/dist/demo/seed.js.map +1 -0
- package/dist/embedded-assets.generated.d.ts.map +1 -1
- package/dist/embedded-assets.generated.js +2 -2
- package/dist/embedded-assets.generated.js.map +1 -1
- package/dist/eval/golden.d.ts +107 -0
- package/dist/eval/golden.d.ts.map +1 -0
- package/dist/eval/golden.js +74 -0
- package/dist/eval/golden.js.map +1 -0
- package/dist/eval/judge.d.ts +82 -0
- package/dist/eval/judge.d.ts.map +1 -0
- package/dist/eval/judge.js +130 -0
- package/dist/eval/judge.js.map +1 -0
- package/dist/eval/manifest.d.ts +107 -0
- package/dist/eval/manifest.d.ts.map +1 -0
- package/dist/eval/manifest.js +84 -0
- package/dist/eval/manifest.js.map +1 -0
- package/dist/eval/metrics.d.ts +87 -0
- package/dist/eval/metrics.d.ts.map +1 -0
- package/dist/eval/metrics.js +97 -0
- package/dist/eval/metrics.js.map +1 -0
- package/dist/extractors/noise-filter.d.ts +7 -3
- package/dist/extractors/noise-filter.d.ts.map +1 -1
- package/dist/extractors/noise-filter.js +16 -3
- package/dist/extractors/noise-filter.js.map +1 -1
- package/dist/extractors/signal-extractor.d.ts.map +1 -1
- package/dist/extractors/signal-extractor.js +13 -2
- package/dist/extractors/signal-extractor.js.map +1 -1
- package/dist/lifecycle/legacy-migration.d.ts +6 -2
- package/dist/lifecycle/legacy-migration.d.ts.map +1 -1
- package/dist/lifecycle/legacy-migration.js +69 -4
- package/dist/lifecycle/legacy-migration.js.map +1 -1
- package/dist/server/api.d.ts.map +1 -1
- package/dist/server/api.js +18 -7
- package/dist/server/api.js.map +1 -1
- package/dist/server/backfill-routes.d.ts.map +1 -1
- package/dist/server/backfill-routes.js +2 -1
- package/dist/server/backfill-routes.js.map +1 -1
- package/dist/server/mcp.d.ts +4 -4
- package/dist/store/agent-sessions.d.ts +59 -0
- package/dist/store/agent-sessions.d.ts.map +1 -0
- package/dist/store/agent-sessions.js +119 -0
- package/dist/store/agent-sessions.js.map +1 -0
- package/dist/store/database.d.ts +20 -1
- package/dist/store/database.d.ts.map +1 -1
- package/dist/store/database.js +44 -6
- package/dist/store/database.js.map +1 -1
- package/dist/store/embedding.d.ts +20 -2
- package/dist/store/embedding.d.ts.map +1 -1
- package/dist/store/embedding.js +20 -5
- package/dist/store/embedding.js.map +1 -1
- package/dist/store/entity-suggestions.d.ts +62 -0
- package/dist/store/entity-suggestions.d.ts.map +1 -0
- package/dist/store/entity-suggestions.js +80 -0
- package/dist/store/entity-suggestions.js.map +1 -0
- package/dist/store/migrations/index.d.ts.map +1 -1
- package/dist/store/migrations/index.js +91 -0
- package/dist/store/migrations/index.js.map +1 -1
- package/dist/store/pages.d.ts.map +1 -1
- package/dist/store/pages.js +12 -3
- package/dist/store/pages.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// src/core/agent-session-scanner.ts
|
|
2
|
+
//
|
|
3
|
+
// AgentSessionScanner — PR-0 foundation of the session-level distillation pipeline.
|
|
4
|
+
//
|
|
5
|
+
// Scans an agent transcript source's files, records each STABLE revision into the
|
|
6
|
+
// agent_sessions ledger (M007), and advances a per-source scan watermark. The watermark
|
|
7
|
+
// (max file mtime seen) is decoupled from per-session processing state: it always advances,
|
|
8
|
+
// so a poison / dead_lettered session never blocks the scan from moving forward. This
|
|
9
|
+
// replaces the lossy per-agent cursor (claude-code's lexicographic `sessionId <= cursor`).
|
|
10
|
+
//
|
|
11
|
+
// This module does NOT distill or apply — that is PR-2 / PR-4. It only records `discovered`.
|
|
12
|
+
import * as fsp from "node:fs/promises";
|
|
13
|
+
import fg from "fast-glob";
|
|
14
|
+
import { readStableSnapshot } from "../collectors/agent/collector.js";
|
|
15
|
+
import { readMeta, writeMeta } from "../store/store-meta.js";
|
|
16
|
+
function watermarkKey(sourceInstance) {
|
|
17
|
+
return `agent_watermark:${sourceInstance}`;
|
|
18
|
+
}
|
|
19
|
+
export async function scanAgentSessions(opts) {
|
|
20
|
+
const { sourceInstance, layout, store, executor } = opts;
|
|
21
|
+
const files = await discoverFiles(layout);
|
|
22
|
+
const priorWatermark = Number((await readMeta(executor, watermarkKey(sourceInstance))) ?? "0");
|
|
23
|
+
let discovered = 0;
|
|
24
|
+
let revised = 0;
|
|
25
|
+
let skipped = 0;
|
|
26
|
+
let maxMtime = priorWatermark;
|
|
27
|
+
for (const file of files) {
|
|
28
|
+
let mtimeMs;
|
|
29
|
+
try {
|
|
30
|
+
mtimeMs = (await fsp.stat(file)).mtimeMs;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
if (mtimeMs > maxMtime)
|
|
36
|
+
maxMtime = mtimeMs;
|
|
37
|
+
const snapshot = await readStableSnapshot(file);
|
|
38
|
+
if (!snapshot) {
|
|
39
|
+
skipped++;
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const sessionId = layout.sessionIdFromPath(file);
|
|
43
|
+
const res = await store.recordRevision({
|
|
44
|
+
sourceInstance,
|
|
45
|
+
sessionId,
|
|
46
|
+
contentHash: snapshot.contentHash,
|
|
47
|
+
byteSize: snapshot.byteSize,
|
|
48
|
+
lineCount: snapshot.lineCount,
|
|
49
|
+
});
|
|
50
|
+
if (res.status === "new")
|
|
51
|
+
discovered++;
|
|
52
|
+
else if (res.status === "revised")
|
|
53
|
+
revised++;
|
|
54
|
+
}
|
|
55
|
+
// Watermark advances unconditionally — independent of any session's processing state.
|
|
56
|
+
if (maxMtime > priorWatermark) {
|
|
57
|
+
await writeMeta(executor, watermarkKey(sourceInstance), String(maxMtime));
|
|
58
|
+
}
|
|
59
|
+
return { scanned: files.length, discovered, revised, skipped, watermark: maxMtime };
|
|
60
|
+
}
|
|
61
|
+
async function discoverFiles(layout) {
|
|
62
|
+
try {
|
|
63
|
+
return await fg(layout.glob, { cwd: layout.baseDir, absolute: true, onlyFiles: true });
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=agent-session-scanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-session-scanner.js","sourceRoot":"","sources":["../../src/core/agent-session-scanner.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,EAAE;AACF,oFAAoF;AACpF,EAAE;AACF,kFAAkF;AAClF,wFAAwF;AACxF,4FAA4F;AAC5F,sFAAsF;AACtF,2FAA2F;AAC3F,EAAE;AACF,6FAA6F;AAE7F,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAItE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAsB7D,SAAS,YAAY,CAAC,cAAsB;IAC1C,OAAO,mBAAmB,cAAc,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAA2B;IACjE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAEzD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAE/F,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,QAAQ,GAAG,cAAc,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,OAAO,GAAG,QAAQ;YAAE,QAAQ,GAAG,OAAO,CAAC;QAE3C,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC;YACrC,cAAc;YACd,SAAS;YACT,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK;YAAE,UAAU,EAAE,CAAC;aAClC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;IAED,sFAAsF;IACtF,IAAI,QAAQ,GAAG,cAAc,EAAE,CAAC;QAC9B,MAAM,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACtF,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAqB;IAChD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
import type { CanonicalisedBlock, ConversationBlock } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Platforms whose collectors read coding-agent session transcripts. Their
|
|
4
|
+
* blocks carry channel = bare sessionId (no routable prefix), so source-type
|
|
5
|
+
* inference must key off the platform — otherwise agent blocks miscategorize
|
|
6
|
+
* as `chat` (spec §8 provenance audit) and get scored with the wrong source
|
|
7
|
+
* weight (signal-scoring has a dedicated agent_session weight).
|
|
8
|
+
*/
|
|
9
|
+
export declare const AGENT_PLATFORMS: ReadonlySet<string>;
|
|
2
10
|
export declare function canonicalize(block: ConversationBlock): CanonicalisedBlock;
|
|
3
11
|
//# sourceMappingURL=canonicalize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalize.d.ts","sourceRoot":"","sources":["../../src/core/canonicalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAIlB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAMzE"}
|
|
1
|
+
{"version":3,"file":"canonicalize.d.ts","sourceRoot":"","sources":["../../src/core/canonicalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAIlB,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,CAA+C,CAAC;AAEhG,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAMzE"}
|
|
@@ -1,10 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platforms whose collectors read coding-agent session transcripts. Their
|
|
3
|
+
* blocks carry channel = bare sessionId (no routable prefix), so source-type
|
|
4
|
+
* inference must key off the platform — otherwise agent blocks miscategorize
|
|
5
|
+
* as `chat` (spec §8 provenance audit) and get scored with the wrong source
|
|
6
|
+
* weight (signal-scoring has a dedicated agent_session weight).
|
|
7
|
+
*/
|
|
8
|
+
export const AGENT_PLATFORMS = new Set(["claude-code", "codex", "hermes"]);
|
|
1
9
|
export function canonicalize(block) {
|
|
2
|
-
const source_type = inferSourceType(block.channel);
|
|
10
|
+
const source_type = inferSourceType(block.channel, block.platform);
|
|
3
11
|
const interaction_tags = inferInteractionTags(block, source_type);
|
|
4
12
|
const canonical_markdown = buildMarkdown(block, source_type);
|
|
5
13
|
return { block, source_type, interaction_tags, canonical_markdown };
|
|
6
14
|
}
|
|
7
|
-
function inferSourceType(channel) {
|
|
15
|
+
function inferSourceType(channel, platform) {
|
|
16
|
+
if (AGENT_PLATFORMS.has(platform))
|
|
17
|
+
return "agent_session";
|
|
8
18
|
if (channel.startsWith("mail/"))
|
|
9
19
|
return "email";
|
|
10
20
|
if (channel.startsWith("dm/"))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonicalize.js","sourceRoot":"","sources":["../../src/core/canonicalize.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"canonicalize.js","sourceRoot":"","sources":["../../src/core/canonicalize.ts"],"names":[],"mappings":"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"}
|
package/dist/core/config.d.ts
CHANGED
|
@@ -186,6 +186,12 @@ export interface SchedulerConfig {
|
|
|
186
186
|
interval_secs: number;
|
|
187
187
|
};
|
|
188
188
|
sources: Record<string, SchedulerSourceConfig>;
|
|
189
|
+
/**
|
|
190
|
+
* Hard per-source run timeout in milliseconds. A source that exceeds it is
|
|
191
|
+
* recorded as failed and the tick moves on to the next source, so one wedged
|
|
192
|
+
* source cannot stall the whole scheduler. Default: 10 minutes.
|
|
193
|
+
*/
|
|
194
|
+
source_timeout_ms?: number;
|
|
189
195
|
}
|
|
190
196
|
export interface PipelineOptsConfig {
|
|
191
197
|
block_concurrency?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SqlExecutor } from "../store/sql-executor.js";
|
|
2
|
+
import { type EntityHandleType } from "./person-identity.js";
|
|
2
3
|
import type { ExtractionResult, RawMessage } from "./types.js";
|
|
3
4
|
export interface IdentityBackend {
|
|
4
5
|
resolveFeishuOpenId(openId: string): Promise<{
|
|
@@ -9,11 +10,35 @@ export interface IdentityBackend {
|
|
|
9
10
|
name: string;
|
|
10
11
|
} | null>;
|
|
11
12
|
}
|
|
13
|
+
/** Entity types that go through tiered name-handle normalization (spec §9). */
|
|
14
|
+
export type NormalizableEntityType = "project" | "tool";
|
|
15
|
+
/**
|
|
16
|
+
* A merge candidate produced when entity normalization refuses to auto-bind
|
|
17
|
+
* (same-name-multiple-pages or cross-type name clash). Never acted on
|
|
18
|
+
* automatically — persisted as entity_merge_suggestions for user review.
|
|
19
|
+
*/
|
|
20
|
+
export interface EntityMergeCandidate {
|
|
21
|
+
entity_type: EntityHandleType;
|
|
22
|
+
from_slug: string;
|
|
23
|
+
into_slug: string;
|
|
24
|
+
reason: "same_name" | "cross_type_name";
|
|
25
|
+
detail?: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Where refused-bind suggestions get persisted (entity_merge_suggestions,
|
|
29
|
+
* spec §9). Structurally satisfied by EntityMergeSuggestionStore; optional so
|
|
30
|
+
* the resolver stays usable without a store (suggestions are still returned
|
|
31
|
+
* to the caller).
|
|
32
|
+
*/
|
|
33
|
+
export interface EntityMergeSuggestionSink {
|
|
34
|
+
record(candidate: EntityMergeCandidate): Promise<void>;
|
|
35
|
+
}
|
|
12
36
|
export declare class IdentityResolver {
|
|
13
37
|
private db;
|
|
14
38
|
private backend?;
|
|
39
|
+
private suggestionSink?;
|
|
15
40
|
private readonly identity;
|
|
16
|
-
constructor(db: SqlExecutor, backend?: IdentityBackend | undefined);
|
|
41
|
+
constructor(db: SqlExecutor, backend?: IdentityBackend | undefined, suggestionSink?: EntityMergeSuggestionSink | undefined);
|
|
17
42
|
enrichBatch(messages: RawMessage[]): Promise<RawMessage[]>;
|
|
18
43
|
private resolve;
|
|
19
44
|
private isUnresolvedId;
|
|
@@ -29,14 +54,39 @@ export declare class IdentityResolver {
|
|
|
29
54
|
isAlias: boolean;
|
|
30
55
|
}>;
|
|
31
56
|
/**
|
|
32
|
-
* Canonicalize
|
|
57
|
+
* Canonicalize a project/tool entity slug via the tiered strong-handle
|
|
58
|
+
* contract (spec §9):
|
|
59
|
+
*
|
|
60
|
+
* 1. A handle already recorded in the (entity_type, scope) namespace wins.
|
|
61
|
+
* 2. Exact name matching EXACTLY ONE page of the same type store-wide, with
|
|
62
|
+
* no other entity page of another type sharing the name → auto-bind and
|
|
63
|
+
* record the name handle.
|
|
64
|
+
* 3. Same-name-multiple-pages or a cross-type clash (Codex the tool vs
|
|
65
|
+
* Codex the project) → NO bind; only `entity_merge_suggestions`
|
|
66
|
+
* candidates are produced for user review.
|
|
67
|
+
* 4. Brand-new name → keep the model slug and record its name handle so
|
|
68
|
+
* later slug variants of the same name converge deterministically.
|
|
69
|
+
*
|
|
70
|
+
* Near-miss names (Levenshtein / pinyin) NEVER bind here — fuzzy detection
|
|
71
|
+
* lives in the consolidator sweep and also only produces suggestions.
|
|
72
|
+
*/
|
|
73
|
+
canonicalizeEntitySlug(type: NormalizableEntityType, name: string, modelSlug: string): Promise<{
|
|
74
|
+
slug: string;
|
|
75
|
+
isAlias: boolean;
|
|
76
|
+
suggestions: EntityMergeCandidate[];
|
|
77
|
+
}>;
|
|
78
|
+
/**
|
|
79
|
+
* Canonicalize all person + project/tool slugs in an ExtractionResult and
|
|
80
|
+
* rewrite references.
|
|
33
81
|
*
|
|
34
82
|
* @param result - The extraction result to canonicalize
|
|
35
|
-
* @returns Canonicalized result
|
|
83
|
+
* @returns Canonicalized result, person alias map (canonical -> old slugs),
|
|
84
|
+
* and entity merge suggestions produced by refused auto-binds.
|
|
36
85
|
*/
|
|
37
86
|
canonicalizeExtractionResult(result: ExtractionResult): Promise<{
|
|
38
87
|
result: ExtractionResult;
|
|
39
88
|
aliases: Map<string, string[]>;
|
|
89
|
+
suggestions: EntityMergeCandidate[];
|
|
40
90
|
}>;
|
|
41
91
|
}
|
|
42
92
|
//# sourceMappingURL=identity-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-resolver.d.ts","sourceRoot":"","sources":["../../src/core/identity-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"identity-resolver.d.ts","sourceRoot":"","sources":["../../src/core/identity-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,KAAK,gBAAgB,EAAuB,MAAM,sBAAsB,CAAC;AAElF,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAKzF,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACxE;AAOD,+EAA+E;AAC/E,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAKD,qBAAa,gBAAgB;IAIzB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,OAAO,CAAC;IAChB,OAAO,CAAC,cAAc,CAAC;IALzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;gBAGrC,EAAE,EAAE,WAAW,EACf,OAAO,CAAC,EAAE,eAAe,YAAA,EACzB,cAAc,CAAC,EAAE,yBAAyB,YAAA;IAK9C,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YAwBlD,OAAO;IAqCrB,OAAO,CAAC,cAAc;IAItB;;;;;;OAMG;IACG,sBAAsB,CAC1B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAyF9C;;;;;;;;;;;;;;;;OAgBG;IACG,sBAAsB,CAC1B,IAAI,EAAE,sBAAsB,EAC5B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,oBAAoB,EAAE,CAAA;KAAE,CAAC;IA4DnF;;;;;;;OAOG;IACG,4BAA4B,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;QACpE,MAAM,EAAE,gBAAgB,CAAC;QACzB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/B,WAAW,EAAE,oBAAoB,EAAE,CAAC;KACrC,CAAC;CAoGH"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { PersonIdentityStore } from "./person-identity.js";
|
|
2
2
|
import { toPersonCanonicalSlug } from "./person-slug.js";
|
|
3
|
+
/** Entity page types considered when checking exact-name uniqueness store-wide. */
|
|
4
|
+
const ENTITY_PAGE_TYPES = ["person", "project", "organization", "tool", "concept"];
|
|
3
5
|
export class IdentityResolver {
|
|
4
6
|
db;
|
|
5
7
|
backend;
|
|
8
|
+
suggestionSink;
|
|
6
9
|
identity;
|
|
7
|
-
constructor(db, backend) {
|
|
10
|
+
constructor(db, backend, suggestionSink) {
|
|
8
11
|
this.db = db;
|
|
9
12
|
this.backend = backend;
|
|
13
|
+
this.suggestionSink = suggestionSink;
|
|
10
14
|
this.identity = new PersonIdentityStore(db);
|
|
11
15
|
}
|
|
12
16
|
async enrichBatch(messages) {
|
|
@@ -126,29 +130,108 @@ export class IdentityResolver {
|
|
|
126
130
|
return { slug: canonicalSlug, isAlias: modelSlug !== canonicalSlug };
|
|
127
131
|
}
|
|
128
132
|
/**
|
|
129
|
-
* Canonicalize
|
|
133
|
+
* Canonicalize a project/tool entity slug via the tiered strong-handle
|
|
134
|
+
* contract (spec §9):
|
|
135
|
+
*
|
|
136
|
+
* 1. A handle already recorded in the (entity_type, scope) namespace wins.
|
|
137
|
+
* 2. Exact name matching EXACTLY ONE page of the same type store-wide, with
|
|
138
|
+
* no other entity page of another type sharing the name → auto-bind and
|
|
139
|
+
* record the name handle.
|
|
140
|
+
* 3. Same-name-multiple-pages or a cross-type clash (Codex the tool vs
|
|
141
|
+
* Codex the project) → NO bind; only `entity_merge_suggestions`
|
|
142
|
+
* candidates are produced for user review.
|
|
143
|
+
* 4. Brand-new name → keep the model slug and record its name handle so
|
|
144
|
+
* later slug variants of the same name converge deterministically.
|
|
145
|
+
*
|
|
146
|
+
* Near-miss names (Levenshtein / pinyin) NEVER bind here — fuzzy detection
|
|
147
|
+
* lives in the consolidator sweep and also only produces suggestions.
|
|
148
|
+
*/
|
|
149
|
+
async canonicalizeEntitySlug(type, name, modelSlug) {
|
|
150
|
+
// 1. Existing handle in this namespace pins the canonical slug.
|
|
151
|
+
const bySlug = await this.identity.resolveEntityHandle(type, "slug", modelSlug);
|
|
152
|
+
if (bySlug)
|
|
153
|
+
return { slug: bySlug, isAlias: modelSlug !== bySlug, suggestions: [] };
|
|
154
|
+
const byName = await this.identity.resolveEntityHandle(type, "name", name);
|
|
155
|
+
if (byName)
|
|
156
|
+
return { slug: byName, isAlias: modelSlug !== byName, suggestions: [] };
|
|
157
|
+
// 2. Exact-title candidates across all entity page types.
|
|
158
|
+
const collapsedName = name.trim().replace(/\s+/g, " ");
|
|
159
|
+
const candidates = await this.db.query(`SELECT slug, type FROM pages
|
|
160
|
+
WHERE title = $1 AND type = ANY($2)
|
|
161
|
+
ORDER BY slug`, [collapsedName, [...ENTITY_PAGE_TYPES]]);
|
|
162
|
+
const sameType = candidates.rows.filter((r) => r.type === type);
|
|
163
|
+
const crossType = candidates.rows.filter((r) => r.type !== type);
|
|
164
|
+
// 3a. Unique same-type page and no cross-type clash → strong bind.
|
|
165
|
+
if (sameType.length === 1 && crossType.length === 0) {
|
|
166
|
+
const canonicalSlug = sameType[0].slug;
|
|
167
|
+
await this.identity.recordEntityCanonical(type, collapsedName, canonicalSlug);
|
|
168
|
+
return { slug: canonicalSlug, isAlias: modelSlug !== canonicalSlug, suggestions: [] };
|
|
169
|
+
}
|
|
170
|
+
// 3b. Conflicts → suggestions only, keep the model slug, record nothing.
|
|
171
|
+
const suggestions = [];
|
|
172
|
+
if (sameType.length > 1) {
|
|
173
|
+
// The same-type pages are duplicates of each other; suggest folding later
|
|
174
|
+
// slugs into the first (sorted) one.
|
|
175
|
+
const [first, ...rest] = sameType;
|
|
176
|
+
for (const dup of rest) {
|
|
177
|
+
suggestions.push({
|
|
178
|
+
entity_type: type,
|
|
179
|
+
from_slug: dup.slug,
|
|
180
|
+
into_slug: first.slug,
|
|
181
|
+
reason: "same_name",
|
|
182
|
+
detail: { name: collapsedName },
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
for (const clash of crossType) {
|
|
187
|
+
suggestions.push({
|
|
188
|
+
entity_type: type,
|
|
189
|
+
from_slug: modelSlug,
|
|
190
|
+
into_slug: clash.slug,
|
|
191
|
+
reason: "cross_type_name",
|
|
192
|
+
detail: { name: collapsedName, clash_type: clash.type },
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
if (suggestions.length > 0) {
|
|
196
|
+
return { slug: modelSlug, isAlias: false, suggestions };
|
|
197
|
+
}
|
|
198
|
+
// 4. Brand-new entity: keep the model slug, record its strong name handle
|
|
199
|
+
// so future slug variants of this exact name converge.
|
|
200
|
+
await this.identity.recordEntityCanonical(type, collapsedName, modelSlug);
|
|
201
|
+
return { slug: modelSlug, isAlias: false, suggestions: [] };
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Canonicalize all person + project/tool slugs in an ExtractionResult and
|
|
205
|
+
* rewrite references.
|
|
130
206
|
*
|
|
131
207
|
* @param result - The extraction result to canonicalize
|
|
132
|
-
* @returns Canonicalized result
|
|
208
|
+
* @returns Canonicalized result, person alias map (canonical -> old slugs),
|
|
209
|
+
* and entity merge suggestions produced by refused auto-binds.
|
|
133
210
|
*/
|
|
134
211
|
async canonicalizeExtractionResult(result) {
|
|
135
|
-
// 1. Build rewrite map for person entities
|
|
212
|
+
// 1. Build rewrite map for person + project/tool entities
|
|
136
213
|
const rewriteMap = new Map();
|
|
137
214
|
const aliasesMap = new Map();
|
|
215
|
+
const suggestions = [];
|
|
138
216
|
for (const entity of result.entities) {
|
|
139
|
-
if (entity.type
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
217
|
+
if (entity.type === "person") {
|
|
218
|
+
const { slug: canonicalSlug, isAlias } = await this.canonicalizePersonSlug(entity.name, entity.slug);
|
|
219
|
+
rewriteMap.set(entity.slug, canonicalSlug);
|
|
220
|
+
if (isAlias && entity.slug !== canonicalSlug) {
|
|
221
|
+
if (!aliasesMap.has(canonicalSlug)) {
|
|
222
|
+
aliasesMap.set(canonicalSlug, []);
|
|
223
|
+
}
|
|
224
|
+
const aliases = aliasesMap.get(canonicalSlug);
|
|
225
|
+
if (aliases) {
|
|
226
|
+
aliases.push(entity.slug);
|
|
227
|
+
}
|
|
150
228
|
}
|
|
151
229
|
}
|
|
230
|
+
else if (entity.type === "project" || entity.type === "tool") {
|
|
231
|
+
const r = await this.canonicalizeEntitySlug(entity.type, entity.name, entity.slug);
|
|
232
|
+
rewriteMap.set(entity.slug, r.slug);
|
|
233
|
+
suggestions.push(...r.suggestions);
|
|
234
|
+
}
|
|
152
235
|
}
|
|
153
236
|
// 2. Helper to rewrite a slug if it's in the map
|
|
154
237
|
const rewriteSlug = (slug) => {
|
|
@@ -157,7 +240,7 @@ export class IdentityResolver {
|
|
|
157
240
|
// 3. Rewrite entities and deduplicate
|
|
158
241
|
const entityMap = new Map();
|
|
159
242
|
for (const entity of result.entities) {
|
|
160
|
-
const slug = entity.
|
|
243
|
+
const slug = rewriteMap.has(entity.slug) ? rewriteSlug(entity.slug) : entity.slug;
|
|
161
244
|
// Keep first entity for each canonical slug
|
|
162
245
|
if (!entityMap.has(slug)) {
|
|
163
246
|
entityMap.set(slug, { ...entity, slug });
|
|
@@ -201,7 +284,19 @@ export class IdentityResolver {
|
|
|
201
284
|
entities: r.entities.map(rewriteSlug),
|
|
202
285
|
})),
|
|
203
286
|
};
|
|
204
|
-
|
|
287
|
+
// Persist refused-bind suggestions for user review (best-effort — a sink
|
|
288
|
+
// failure must not break extraction).
|
|
289
|
+
if (this.suggestionSink) {
|
|
290
|
+
for (const s of suggestions) {
|
|
291
|
+
try {
|
|
292
|
+
await this.suggestionSink.record(s);
|
|
293
|
+
}
|
|
294
|
+
catch (err) {
|
|
295
|
+
console.warn("[IdentityResolver] Failed to record merge suggestion:", err);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
return { result: canonicalized, aliases: aliasesMap, suggestions };
|
|
205
300
|
}
|
|
206
301
|
}
|
|
207
302
|
//# sourceMappingURL=identity-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-resolver.js","sourceRoot":"","sources":["../../src/core/identity-resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"identity-resolver.js","sourceRoot":"","sources":["../../src/core/identity-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,18 +13,37 @@
|
|
|
13
13
|
* only enter the table via an explicit `addAlias` / `link`, so an
|
|
14
14
|
* ambiguous nickname like "龙哥" can never silently merge two people.
|
|
15
15
|
* - Merging two existing person pages is always an explicit operation.
|
|
16
|
+
*
|
|
17
|
+
* Since M008 (extraction-quality-redesign PR-3, spec §9) the physical table is
|
|
18
|
+
* `entity_handles`, namespaced by (entity_type, scope) so project/tool entities
|
|
19
|
+
* share the same registry — one table, not a parallel one. All person
|
|
20
|
+
* operations here read/write the entity_type='person' namespace; a
|
|
21
|
+
* `person_handles` compat view remains for legacy readers. Strong-handle
|
|
22
|
+
* auto-binding is tiered BY ENTITY TYPE:
|
|
23
|
+
* - person: open_id / email / exact name / slug bind (existing contract).
|
|
24
|
+
* - project / tool: only "exact name AND unique among that type store-wide"
|
|
25
|
+
* auto-binds; same-name-multiple-pages or cross-type name clashes only
|
|
26
|
+
* produce entity_merge_suggestions (see IdentityResolver).
|
|
16
27
|
*/
|
|
17
28
|
import type { PageStore } from "../store/pages.js";
|
|
18
29
|
import type { PersonBehaviorStore } from "../store/person-behavior.js";
|
|
19
30
|
import type { SqlExecutor } from "../store/sql-executor.js";
|
|
20
31
|
export type HandleKind = "feishu_open_id" | "email" | "name" | "nickname" | "slug";
|
|
21
32
|
export type HandleStrength = "strong" | "weak";
|
|
33
|
+
/** Entity namespaces of the generalized handle registry (M008). */
|
|
34
|
+
export type EntityHandleType = "person" | "project" | "organization" | "tool" | "concept";
|
|
35
|
+
/** Default handle scope. Reserved for future narrower namespaces (e.g. per-tenant). */
|
|
36
|
+
export declare const GLOBAL_SCOPE = "global";
|
|
22
37
|
export interface PersonHandle {
|
|
23
38
|
kind: HandleKind;
|
|
24
39
|
value: string;
|
|
25
40
|
canonical_slug: string;
|
|
26
41
|
strength: HandleStrength;
|
|
27
42
|
}
|
|
43
|
+
export interface EntityHandle extends PersonHandle {
|
|
44
|
+
entity_type: EntityHandleType;
|
|
45
|
+
scope: string;
|
|
46
|
+
}
|
|
28
47
|
/** Default strength for a handle kind. Nicknames are weak; everything else strong. */
|
|
29
48
|
export declare function defaultStrength(kind: HandleKind): HandleStrength;
|
|
30
49
|
/**
|
|
@@ -50,6 +69,8 @@ export declare class PersonIdentityStore {
|
|
|
50
69
|
constructor(db: SqlExecutor, stores?: PersonIdentityStores | undefined, extra?: PersonIdentityExtraStores | undefined);
|
|
51
70
|
/** Resolve a single handle to its canonical person slug, or null. */
|
|
52
71
|
resolveHandle(kind: HandleKind, value: string): Promise<string | null>;
|
|
72
|
+
/** Resolve a handle within an entity-type namespace to its canonical slug, or null. */
|
|
73
|
+
resolveEntityHandle(entityType: EntityHandleType, kind: HandleKind, value: string, scope?: string): Promise<string | null>;
|
|
53
74
|
/**
|
|
54
75
|
* Resolve an extraction's (name, modelSlug) to a canonical slug via known
|
|
55
76
|
* handles. Tries strong handles first (slug, embedded open id / email, exact
|
|
@@ -62,6 +83,15 @@ export declare class PersonIdentityStore {
|
|
|
62
83
|
* non-destructive: existing rows are left untouched.
|
|
63
84
|
*/
|
|
64
85
|
recordCanonical(name: string, canonicalSlug: string): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Record the strong handles (name → slug, slug → slug) implied by a
|
|
88
|
+
* canonicalized non-person entity, in its own (entity_type, scope) namespace.
|
|
89
|
+
* Idempotent and non-destructive — existing rows are left untouched. Callers
|
|
90
|
+
* (IdentityResolver.canonicalizeEntitySlug) are responsible for enforcing the
|
|
91
|
+
* tiered auto-bind rules BEFORE recording: for project/tool a name is only
|
|
92
|
+
* strong when it is exactly unique among its type store-wide.
|
|
93
|
+
*/
|
|
94
|
+
recordEntityCanonical(entityType: EntityHandleType, name: string, canonicalSlug: string): Promise<void>;
|
|
65
95
|
/**
|
|
66
96
|
* Ensure the special `entities/me` self-identity page exists (Spec 9 §4.1).
|
|
67
97
|
* Idempotent — returns the canonical slug; creates a minimal person page the
|
|
@@ -95,9 +125,12 @@ export declare class PersonIdentityStore {
|
|
|
95
125
|
* different person (use `merge` / `removeHandle` to reassign).
|
|
96
126
|
*/
|
|
97
127
|
addAlias(canonicalSlug: string, kind: HandleKind, value: string, strength?: HandleStrength): Promise<void>;
|
|
98
|
-
/**
|
|
99
|
-
|
|
100
|
-
|
|
128
|
+
/**
|
|
129
|
+
* List all handles attached to a canonical slug, across every entity-type
|
|
130
|
+
* namespace (a page has one slug; its handles all follow that slug).
|
|
131
|
+
*/
|
|
132
|
+
listHandles(canonicalSlug: string): Promise<EntityHandle[]>;
|
|
133
|
+
/** Remove a person-namespace handle by (kind, value). */
|
|
101
134
|
removeHandle(kind: HandleKind, value: string): Promise<void>;
|
|
102
135
|
/**
|
|
103
136
|
* Rename a person's canonical slug (correct a wrong canonicalization).
|
|
@@ -121,6 +154,8 @@ export declare class PersonIdentityStore {
|
|
|
121
154
|
merge(fromSlug: string, intoSlug: string): Promise<void>;
|
|
122
155
|
private requirePages;
|
|
123
156
|
private insertHandle;
|
|
157
|
+
/** Insert a handle into an entity-type namespace on the given connection. */
|
|
158
|
+
private insertEntityHandleOn;
|
|
124
159
|
private repointIdentityCache;
|
|
125
160
|
/** tx-scoped variant of repointIdentityCache for use inside merge transaction. */
|
|
126
161
|
private repointIdentityCacheTx;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"person-identity.d.ts","sourceRoot":"","sources":["../../src/core/person-identity.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"person-identity.d.ts","sourceRoot":"","sources":["../../src/core/person-identity.ts"],"names":[],"mappings":"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"}
|