@rubytech/create-maxy-code 0.1.232 → 0.1.234
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/dist/__tests__/cloudflared-slice.test.js +19 -0
- package/dist/__tests__/rss-sampler-installer.test.js +27 -0
- package/dist/index.js +68 -1
- package/dist/port-resolution.js +20 -0
- package/dist/uninstall.js +18 -15
- package/package.json +1 -1
- package/payload/platform/plugins/memory/PLUGIN.md +5 -1
- package/payload/platform/plugins/memory/mcp/dist/index.js +23 -7
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.js +16 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/compiled-truth-revision.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-backlinks.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-backlinks.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-backlinks.test.js +24 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-backlinks.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-tag-normalisation.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-tag-normalisation.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-tag-normalisation.test.js +51 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/phase-tag-normalisation.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.d.ts +31 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/compiled-truth-revision.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/index.d.ts +7 -7
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/index.js +7 -7
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-backlinks.d.ts +15 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-backlinks.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-backlinks.js +37 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-backlinks.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.d.ts +25 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.js +90 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js +117 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-inline-rewrite.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-inline-rewrite.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-inline-rewrite.test.js +66 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-inline-rewrite.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts +25 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js +26 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.d.ts +6 -3
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.js +32 -5
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-dream-run.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts +37 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js +72 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/index.js +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
- package/payload/platform/scripts/__tests__/resume-tunnel.test.sh +251 -0
- package/payload/platform/scripts/resume-tunnel.sh +86 -48
- package/payload/platform/scripts/rss-sampler.sh +58 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +4 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +4 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/index.js +23 -0
- package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +14 -2
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +27 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts +6 -0
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.js +2 -0
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.js.map +1 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Dream-cycle — Task 327 (+ Task 391 prune-revisions
|
|
2
|
+
* Dream-cycle — Task 327 (+ Task 391 prune-revisions, Task 596 phases 6–7).
|
|
3
3
|
*
|
|
4
|
-
* Operator-initiated graph-hygiene sweep.
|
|
5
|
-
* 2 stale compiled-truth, 3 edges to :Trashed targets,
|
|
6
|
-
* 5 prune compiled-truth revisions
|
|
7
|
-
*
|
|
4
|
+
* Operator-initiated graph-hygiene sweep. Seven phases:
|
|
5
|
+
* 1 orphans, 2 stale compiled-truth, 3 edges to :Trashed targets,
|
|
6
|
+
* 4 citation audit, 5 prune compiled-truth revisions,
|
|
7
|
+
* 6 backlink materialisation, 7 tag normalisation.
|
|
8
8
|
*
|
|
9
9
|
* Phase ordering is fixed; the `phases` parameter on memory-dream-run
|
|
10
|
-
* selects which subset to run
|
|
11
|
-
*
|
|
10
|
+
* selects which subset to run. Failure of any phase logs
|
|
11
|
+
* `[dream-cycle:phase-<n>:error]` and continues to the next.
|
|
12
12
|
*/
|
|
13
13
|
import type { Session } from "neo4j-driver";
|
|
14
14
|
export interface PhaseContext {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Dream-cycle — Task 327 (+ Task 391 prune-revisions
|
|
2
|
+
* Dream-cycle — Task 327 (+ Task 391 prune-revisions, Task 596 phases 6–7).
|
|
3
3
|
*
|
|
4
|
-
* Operator-initiated graph-hygiene sweep.
|
|
5
|
-
* 2 stale compiled-truth, 3 edges to :Trashed targets,
|
|
6
|
-
* 5 prune compiled-truth revisions
|
|
7
|
-
*
|
|
4
|
+
* Operator-initiated graph-hygiene sweep. Seven phases:
|
|
5
|
+
* 1 orphans, 2 stale compiled-truth, 3 edges to :Trashed targets,
|
|
6
|
+
* 4 citation audit, 5 prune compiled-truth revisions,
|
|
7
|
+
* 6 backlink materialisation, 7 tag normalisation.
|
|
8
8
|
*
|
|
9
9
|
* Phase ordering is fixed; the `phases` parameter on memory-dream-run
|
|
10
|
-
* selects which subset to run
|
|
11
|
-
*
|
|
10
|
+
* selects which subset to run. Failure of any phase logs
|
|
11
|
+
* `[dream-cycle:phase-<n>:error]` and continues to the next.
|
|
12
12
|
*/
|
|
13
13
|
export {};
|
|
14
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 6 — materialise persistent :BACKLINKS edges (Task 596).
|
|
3
|
+
*
|
|
4
|
+
* For every (src)-[:MENTIONS|REFERENCES]->(tgt) pair scoped to accountId,
|
|
5
|
+
* MERGE (tgt)-[:BACKLINKS]->(src). MERGE is idempotent — re-running
|
|
6
|
+
* produces no duplicate edges and only newly-created edges set createdAt.
|
|
7
|
+
*
|
|
8
|
+
* proposed = total (src,tgt) pairs found in forward direction.
|
|
9
|
+
* applied = total BACKLINKS edges after the MERGE (new + pre-existing;
|
|
10
|
+
* Cypher cannot distinguish ON CREATE count from total in a
|
|
11
|
+
* single MERGE pass without APOC).
|
|
12
|
+
*/
|
|
13
|
+
import type { PhaseContext, PhaseResult } from "./index.js";
|
|
14
|
+
export declare function phaseBacklinks(ctx: PhaseContext): Promise<PhaseResult>;
|
|
15
|
+
//# sourceMappingURL=phase-backlinks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-backlinks.d.ts","sourceRoot":"","sources":["../../../src/lib/dream-cycle/phase-backlinks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D,wBAAsB,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA+B5E"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 6 — materialise persistent :BACKLINKS edges (Task 596).
|
|
3
|
+
*
|
|
4
|
+
* For every (src)-[:MENTIONS|REFERENCES]->(tgt) pair scoped to accountId,
|
|
5
|
+
* MERGE (tgt)-[:BACKLINKS]->(src). MERGE is idempotent — re-running
|
|
6
|
+
* produces no duplicate edges and only newly-created edges set createdAt.
|
|
7
|
+
*
|
|
8
|
+
* proposed = total (src,tgt) pairs found in forward direction.
|
|
9
|
+
* applied = total BACKLINKS edges after the MERGE (new + pre-existing;
|
|
10
|
+
* Cypher cannot distinguish ON CREATE count from total in a
|
|
11
|
+
* single MERGE pass without APOC).
|
|
12
|
+
*/
|
|
13
|
+
export async function phaseBacklinks(ctx) {
|
|
14
|
+
const start = Date.now();
|
|
15
|
+
const { accountId, session } = ctx;
|
|
16
|
+
const result = await session.run(`MATCH (src)-[:MENTIONS|REFERENCES]->(tgt)
|
|
17
|
+
WHERE src.accountId = $accountId AND tgt.accountId = $accountId
|
|
18
|
+
WITH src, tgt
|
|
19
|
+
MERGE (tgt)-[bl:BACKLINKS]->(src)
|
|
20
|
+
ON CREATE SET bl.accountId = $accountId,
|
|
21
|
+
bl.createdAt = datetime()
|
|
22
|
+
RETURN count(src) AS proposed,
|
|
23
|
+
count(CASE WHEN bl.createdAt IS NOT NULL THEN 1 END) AS applied`, { accountId });
|
|
24
|
+
const proposed = Number(result.records[0]?.get("proposed") ?? 0);
|
|
25
|
+
const applied = Number(result.records[0]?.get("applied") ?? 0);
|
|
26
|
+
const elapsedMs = Date.now() - start;
|
|
27
|
+
process.stderr.write(`[dream-cycle] phase=6 op=backlinks-written accountId=${accountId} count=${applied} elapsedMs=${elapsedMs}\n`);
|
|
28
|
+
return {
|
|
29
|
+
phase: 6,
|
|
30
|
+
name: "backlinks",
|
|
31
|
+
durationSec: Math.round(elapsedMs / 1000),
|
|
32
|
+
proposed,
|
|
33
|
+
applied,
|
|
34
|
+
deferred: 0,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=phase-backlinks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-backlinks.js","sourceRoot":"","sources":["../../../src/lib/dream-cycle/phase-backlinks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAiB;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAEnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B;;;;;;;4EAOwE,EACxE,EAAE,SAAS,EAAE,CACd,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IAErC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wDAAwD,SAAS,UAAU,OAAO,cAAc,SAAS,IAAI,CAC9G,CAAC;IACF,OAAO;QACL,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACzC,QAAQ;QACR,OAAO;QACP,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 7 — tag deduplication and normalisation (Task 596).
|
|
3
|
+
*
|
|
4
|
+
* Two passes:
|
|
5
|
+
*
|
|
6
|
+
* Pass A — KnowledgeDocument nodes with a `tags` string-array property.
|
|
7
|
+
* For each node, normalise every tag (lowercase, strip non-alphanumeric
|
|
8
|
+
* except hyphens/underscores/spaces, trim), deduplicate, and write back
|
|
9
|
+
* only when the normalised array differs from the original.
|
|
10
|
+
*
|
|
11
|
+
* Pass B — :DefinedTerm {category:'obsidian-tag'} nodes.
|
|
12
|
+
* Group by normalised name. For each group with more than one variant,
|
|
13
|
+
* pick the first alphabetically as canonical, retarget all :TAGGED_WITH
|
|
14
|
+
* edges from non-canonical nodes to the canonical node, then detach-delete
|
|
15
|
+
* non-canonical nodes that become edge-free.
|
|
16
|
+
*
|
|
17
|
+
* `applied` = number of KD nodes updated + number of DefinedTerm non-canonical
|
|
18
|
+
* variants whose :TAGGED_WITH edges were retargeted (whether or not the node
|
|
19
|
+
* was subsequently deleted — deletion is blocked when other edges exist).
|
|
20
|
+
*/
|
|
21
|
+
import type { PhaseContext, PhaseResult } from "./index.js";
|
|
22
|
+
/** Normalise a tag string: lowercase, strip non-alphanumeric-separator chars, trim. */
|
|
23
|
+
export declare function normaliseTagStr(tag: string): string;
|
|
24
|
+
export declare function phaseTagNormalisation(ctx: PhaseContext): Promise<PhaseResult>;
|
|
25
|
+
//# sourceMappingURL=phase-tag-normalisation.d.ts.map
|
package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-tag-normalisation.d.ts","sourceRoot":"","sources":["../../../src/lib/dream-cycle/phase-tag-normalisation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAgFnF"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 7 — tag deduplication and normalisation (Task 596).
|
|
3
|
+
*
|
|
4
|
+
* Two passes:
|
|
5
|
+
*
|
|
6
|
+
* Pass A — KnowledgeDocument nodes with a `tags` string-array property.
|
|
7
|
+
* For each node, normalise every tag (lowercase, strip non-alphanumeric
|
|
8
|
+
* except hyphens/underscores/spaces, trim), deduplicate, and write back
|
|
9
|
+
* only when the normalised array differs from the original.
|
|
10
|
+
*
|
|
11
|
+
* Pass B — :DefinedTerm {category:'obsidian-tag'} nodes.
|
|
12
|
+
* Group by normalised name. For each group with more than one variant,
|
|
13
|
+
* pick the first alphabetically as canonical, retarget all :TAGGED_WITH
|
|
14
|
+
* edges from non-canonical nodes to the canonical node, then detach-delete
|
|
15
|
+
* non-canonical nodes that become edge-free.
|
|
16
|
+
*
|
|
17
|
+
* `applied` = number of KD nodes updated + number of DefinedTerm non-canonical
|
|
18
|
+
* variants whose :TAGGED_WITH edges were retargeted (whether or not the node
|
|
19
|
+
* was subsequently deleted — deletion is blocked when other edges exist).
|
|
20
|
+
*/
|
|
21
|
+
/** Normalise a tag string: lowercase, strip non-alphanumeric-separator chars, trim. */
|
|
22
|
+
export function normaliseTagStr(tag) {
|
|
23
|
+
return tag
|
|
24
|
+
.toLowerCase()
|
|
25
|
+
.replace(/[^a-z0-9_\- ]/g, "")
|
|
26
|
+
.trim();
|
|
27
|
+
}
|
|
28
|
+
export async function phaseTagNormalisation(ctx) {
|
|
29
|
+
const start = Date.now();
|
|
30
|
+
const { accountId, session } = ctx;
|
|
31
|
+
let applied = 0;
|
|
32
|
+
// --- Pass A: KnowledgeDocument tags[] array ---
|
|
33
|
+
const kdResult = await session.run(`MATCH (n:KnowledgeDocument)
|
|
34
|
+
WHERE n.accountId = $accountId AND n.tags IS NOT NULL AND size(n.tags) > 0
|
|
35
|
+
RETURN elementId(n) AS eid, n.tags AS tags`, { accountId });
|
|
36
|
+
for (const record of kdResult.records) {
|
|
37
|
+
const eid = record.get("eid");
|
|
38
|
+
const tags = record.get("tags");
|
|
39
|
+
const normTags = [...new Set(tags.map(normaliseTagStr).filter((t) => t.length > 0))];
|
|
40
|
+
if (normTags.length !== tags.length || normTags.some((t, i) => t !== tags[i])) {
|
|
41
|
+
await session.run(`MATCH (n) WHERE elementId(n) = $eid SET n.tags = $tags`, { eid, tags: normTags });
|
|
42
|
+
applied++;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// --- Pass B: DefinedTerm obsidian-tag variants ---
|
|
46
|
+
const dtResult = await session.run(`MATCH (t:DefinedTerm)
|
|
47
|
+
WHERE t.accountId = $accountId AND t.category = 'obsidian-tag'
|
|
48
|
+
RETURN elementId(t) AS eid, t.name AS name`, { accountId });
|
|
49
|
+
const groups = new Map();
|
|
50
|
+
for (const record of dtResult.records) {
|
|
51
|
+
const eid = record.get("eid");
|
|
52
|
+
const name = record.get("name");
|
|
53
|
+
const key = normaliseTagStr(name);
|
|
54
|
+
if (!groups.has(key))
|
|
55
|
+
groups.set(key, []);
|
|
56
|
+
groups.get(key).push({ eid, name });
|
|
57
|
+
}
|
|
58
|
+
for (const [, variants] of groups) {
|
|
59
|
+
if (variants.length <= 1)
|
|
60
|
+
continue;
|
|
61
|
+
// Canonical = alphabetically first (stable, deterministic).
|
|
62
|
+
variants.sort((a, b) => a.name.localeCompare(b.name));
|
|
63
|
+
const canonical = variants[0];
|
|
64
|
+
const nonCanonicals = variants.slice(1);
|
|
65
|
+
for (const nonCanon of nonCanonicals) {
|
|
66
|
+
await session.run(`MATCH (t:DefinedTerm) WHERE elementId(t) = $oldEid
|
|
67
|
+
MATCH (canon:DefinedTerm) WHERE elementId(canon) = $canonEid
|
|
68
|
+
OPTIONAL MATCH (src)-[r:TAGGED_WITH]->(t)
|
|
69
|
+
FOREACH (_ IN CASE WHEN src IS NOT NULL THEN [1] ELSE [] END |
|
|
70
|
+
MERGE (src)-[:TAGGED_WITH]->(canon)
|
|
71
|
+
DELETE r
|
|
72
|
+
)
|
|
73
|
+
WITH t
|
|
74
|
+
WHERE NOT (t)-[]-()
|
|
75
|
+
DETACH DELETE t`, { oldEid: nonCanon.eid, canonEid: canonical.eid });
|
|
76
|
+
applied++;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const elapsedMs = Date.now() - start;
|
|
80
|
+
process.stderr.write(`[dream-cycle] phase=7 op=tags-normalised accountId=${accountId} merged=${applied} elapsedMs=${elapsedMs}\n`);
|
|
81
|
+
return {
|
|
82
|
+
phase: 7,
|
|
83
|
+
name: "tag-normalisation",
|
|
84
|
+
durationSec: Math.round(elapsedMs / 1000),
|
|
85
|
+
proposed: applied,
|
|
86
|
+
applied,
|
|
87
|
+
deferred: 0,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=phase-tag-normalisation.js.map
|
package/payload/platform/plugins/memory/mcp/dist/lib/dream-cycle/phase-tag-normalisation.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase-tag-normalisation.js","sourceRoot":"","sources":["../../../src/lib/dream-cycle/phase-tag-normalisation.ts"],"names":[],"mappings":"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"}
|
|
@@ -178,4 +178,121 @@ describe("conversation-archive-derive-insights — runtime", () => {
|
|
|
178
178
|
expect(result.rejectionsFiltered).toBe(1);
|
|
179
179
|
});
|
|
180
180
|
});
|
|
181
|
+
// ---------------------------------------------------------------------------
|
|
182
|
+
// Task 595 — inline-rewrite signals
|
|
183
|
+
// ---------------------------------------------------------------------------
|
|
184
|
+
describe("conversation-archive-derive-insights — inline-rewrite signals (Task 595)", () => {
|
|
185
|
+
it("DeriveInsightsParams declares inlineRewrite and inlineRewriteThreshold", () => {
|
|
186
|
+
const src = readFileSync(TOOL_PATH, "utf-8");
|
|
187
|
+
expect(src).toContain("inlineRewrite?: boolean");
|
|
188
|
+
expect(src).toContain("inlineRewriteThreshold?: number");
|
|
189
|
+
});
|
|
190
|
+
it("DeriveInsightsResult declares inlineRewriteSignals optional field with displayName and mentionCount", () => {
|
|
191
|
+
const src = readFileSync(TOOL_PATH, "utf-8");
|
|
192
|
+
expect(src).toMatch(/inlineRewriteSignals\?:\s*\{/);
|
|
193
|
+
expect(src).toContain("displayName: string");
|
|
194
|
+
expect(src).toContain("mentionCount: number");
|
|
195
|
+
});
|
|
196
|
+
it("inlineRewriteSignals is undefined when inlineRewrite param is absent", async () => {
|
|
197
|
+
mockSession.run.mockResolvedValue({ records: [{ get: () => "archive-1" }] });
|
|
198
|
+
const { conversationArchiveDeriveInsights } = await import("../../tools/conversation-archive-derive-insights.js");
|
|
199
|
+
const result = await conversationArchiveDeriveInsights({
|
|
200
|
+
accountId: "acc1",
|
|
201
|
+
archiveElementId: "arc1",
|
|
202
|
+
chunkElementId: "chunk1",
|
|
203
|
+
claims: [
|
|
204
|
+
{ kind: "mention", evidenceSnippet: "Joel joined.", subject: "Joel Smith", payload: {} },
|
|
205
|
+
{ kind: "mention", evidenceSnippet: "Joel again.", subject: "Joel Smith", payload: {} },
|
|
206
|
+
],
|
|
207
|
+
});
|
|
208
|
+
expect(result.inlineRewriteSignals).toBeUndefined();
|
|
209
|
+
});
|
|
210
|
+
it("returns signal when a subject appears >= threshold times with inlineRewrite=true", async () => {
|
|
211
|
+
mockSession.run.mockResolvedValue({ records: [{ get: () => "archive-1" }] });
|
|
212
|
+
const { conversationArchiveDeriveInsights } = await import("../../tools/conversation-archive-derive-insights.js");
|
|
213
|
+
const result = await conversationArchiveDeriveInsights({
|
|
214
|
+
accountId: "acc1",
|
|
215
|
+
archiveElementId: "arc1",
|
|
216
|
+
chunkElementId: "chunk1",
|
|
217
|
+
claims: [
|
|
218
|
+
{ kind: "mention", evidenceSnippet: "Joel joined.", subject: "Joel Smith", payload: {} },
|
|
219
|
+
{ kind: "mention", evidenceSnippet: "Joel again.", subject: "Joel Smith", payload: {} },
|
|
220
|
+
],
|
|
221
|
+
inlineRewrite: true,
|
|
222
|
+
inlineRewriteThreshold: 2,
|
|
223
|
+
});
|
|
224
|
+
expect(result.inlineRewriteSignals).toBeDefined();
|
|
225
|
+
expect(result.inlineRewriteSignals).toHaveLength(1);
|
|
226
|
+
expect(result.inlineRewriteSignals[0].displayName).toBe("Joel Smith");
|
|
227
|
+
expect(result.inlineRewriteSignals[0].mentionCount).toBe(2);
|
|
228
|
+
});
|
|
229
|
+
it("does not return a signal when mention count is below threshold", async () => {
|
|
230
|
+
mockSession.run.mockResolvedValue({ records: [{ get: () => "archive-1" }] });
|
|
231
|
+
const { conversationArchiveDeriveInsights } = await import("../../tools/conversation-archive-derive-insights.js");
|
|
232
|
+
const result = await conversationArchiveDeriveInsights({
|
|
233
|
+
accountId: "acc1",
|
|
234
|
+
archiveElementId: "arc1",
|
|
235
|
+
chunkElementId: "chunk1",
|
|
236
|
+
claims: [
|
|
237
|
+
{ kind: "mention", evidenceSnippet: "Joel joined.", subject: "Joel Smith", payload: {} },
|
|
238
|
+
],
|
|
239
|
+
inlineRewrite: true,
|
|
240
|
+
inlineRewriteThreshold: 2,
|
|
241
|
+
});
|
|
242
|
+
expect(result.inlineRewriteSignals).toEqual([]);
|
|
243
|
+
});
|
|
244
|
+
it("uses default threshold of 2 when inlineRewriteThreshold is omitted", async () => {
|
|
245
|
+
mockSession.run.mockResolvedValue({ records: [{ get: () => "archive-1" }] });
|
|
246
|
+
const { conversationArchiveDeriveInsights } = await import("../../tools/conversation-archive-derive-insights.js");
|
|
247
|
+
// Two mentions of same entity with no explicit threshold → default 2 fires
|
|
248
|
+
const result = await conversationArchiveDeriveInsights({
|
|
249
|
+
accountId: "acc1",
|
|
250
|
+
archiveElementId: "arc1",
|
|
251
|
+
chunkElementId: "chunk1",
|
|
252
|
+
claims: [
|
|
253
|
+
{ kind: "mention", evidenceSnippet: "Joel joined.", subject: "Joel Smith", payload: {} },
|
|
254
|
+
{ kind: "mention", evidenceSnippet: "Joel again.", subject: "Joel Smith", payload: {} },
|
|
255
|
+
],
|
|
256
|
+
inlineRewrite: true,
|
|
257
|
+
// inlineRewriteThreshold intentionally omitted — default 2 should apply
|
|
258
|
+
});
|
|
259
|
+
expect(result.inlineRewriteSignals).toHaveLength(1);
|
|
260
|
+
expect(result.inlineRewriteSignals[0].displayName).toBe("Joel Smith");
|
|
261
|
+
expect(result.inlineRewriteSignals[0].mentionCount).toBe(2);
|
|
262
|
+
});
|
|
263
|
+
it("counts rejected mention claims in signals (density is rejection-independent)", async () => {
|
|
264
|
+
mockSession.run.mockResolvedValue({ records: [{ get: () => "archive-1" }] });
|
|
265
|
+
const { conversationArchiveDeriveInsights, rejectionsJsonlPath } = await import("../../tools/conversation-archive-derive-insights.js");
|
|
266
|
+
// Write a rejection for the first Joel mention so it is filtered from proposals
|
|
267
|
+
const { createHash } = await import("node:crypto");
|
|
268
|
+
const { writeFileSync, mkdirSync } = await import("node:fs");
|
|
269
|
+
const { dirname } = await import("node:path");
|
|
270
|
+
const rPath = rejectionsJsonlPath("acc1");
|
|
271
|
+
mkdirSync(dirname(rPath), { recursive: true });
|
|
272
|
+
const h = createHash("sha256");
|
|
273
|
+
h.update("mention");
|
|
274
|
+
h.update(" ");
|
|
275
|
+
h.update("Joel Smith");
|
|
276
|
+
h.update(" ");
|
|
277
|
+
h.update("Joel joined.");
|
|
278
|
+
const contentHash = h.digest("hex");
|
|
279
|
+
writeFileSync(rPath, JSON.stringify({ chunkElementId: "chunk1", kind: "mention", contentHash }) + "\n");
|
|
280
|
+
const result = await conversationArchiveDeriveInsights({
|
|
281
|
+
accountId: "acc1",
|
|
282
|
+
archiveElementId: "arc1",
|
|
283
|
+
chunkElementId: "chunk1",
|
|
284
|
+
claims: [
|
|
285
|
+
{ kind: "mention", evidenceSnippet: "Joel joined.", subject: "Joel Smith", payload: {} },
|
|
286
|
+
{ kind: "mention", evidenceSnippet: "Joel again.", subject: "Joel Smith", payload: {} },
|
|
287
|
+
],
|
|
288
|
+
inlineRewrite: true,
|
|
289
|
+
inlineRewriteThreshold: 2,
|
|
290
|
+
});
|
|
291
|
+
// First mention is rejected → only 1 proposal, but signals should still count both
|
|
292
|
+
expect(result.proposals).toHaveLength(1);
|
|
293
|
+
expect(result.rejectionsFiltered).toBe(1);
|
|
294
|
+
expect(result.inlineRewriteSignals).toHaveLength(1);
|
|
295
|
+
expect(result.inlineRewriteSignals[0].mentionCount).toBe(2); // not 1
|
|
296
|
+
});
|
|
297
|
+
});
|
|
181
298
|
//# sourceMappingURL=conversation-archive-derive-insights.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-archive-derive-insights.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/conversation-archive-derive-insights.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conversation-archive-derive-insights.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/conversation-archive-derive-insights.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-ingest-inline-rewrite.test.d.ts","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-ingest-inline-rewrite.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task 595 — inline compiled-truth reconciliation gate in memory-ingest.
|
|
3
|
+
*
|
|
4
|
+
* All assertions read source to avoid live-DB dependencies, matching the
|
|
5
|
+
* pattern established by the existing memory-ingest.test.ts suite.
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it, expect } from "vitest";
|
|
8
|
+
import { readFileSync } from "node:fs";
|
|
9
|
+
import { resolve } from "node:path";
|
|
10
|
+
const INGEST_PATH = resolve(import.meta.dirname, "../../tools/memory-ingest.ts");
|
|
11
|
+
function src() {
|
|
12
|
+
return readFileSync(INGEST_PATH, "utf-8");
|
|
13
|
+
}
|
|
14
|
+
describe("memory-ingest — inline compiled-truth gate (Task 595)", () => {
|
|
15
|
+
it("IngestParams declares inlineRewrite, forceRewrite, inlineRewriteThreshold", () => {
|
|
16
|
+
const s = src();
|
|
17
|
+
expect(s).toContain("inlineRewrite?: boolean");
|
|
18
|
+
expect(s).toContain("forceRewrite?: boolean");
|
|
19
|
+
expect(s).toContain("inlineRewriteThreshold?: number");
|
|
20
|
+
});
|
|
21
|
+
it("IngestResult declares inlineRewriteCandidates and inlineRewriteDeferred optional fields", () => {
|
|
22
|
+
const s = src();
|
|
23
|
+
expect(s).toMatch(/inlineRewriteCandidates\?:\s*InlineRewriteCandidate\[\]/);
|
|
24
|
+
expect(s).toMatch(/inlineRewriteDeferred\?:\s*InlineRewriteDeferred\[\]/);
|
|
25
|
+
});
|
|
26
|
+
it("imports InlineRewriteCandidate and InlineRewriteDeferred from compiled-truth-revision", () => {
|
|
27
|
+
const s = src();
|
|
28
|
+
expect(s).toContain("InlineRewriteCandidate");
|
|
29
|
+
expect(s).toContain("InlineRewriteDeferred");
|
|
30
|
+
expect(s).toMatch(/from ["']\.\.\/lib\/compiled-truth-revision\.js["']/);
|
|
31
|
+
});
|
|
32
|
+
it("queryInlineRewriteCandidates queries MENTIONS and REFERENCES edges via HAS_SECTION*0..1", () => {
|
|
33
|
+
const s = src();
|
|
34
|
+
expect(s).toContain("queryInlineRewriteCandidates");
|
|
35
|
+
expect(s).toContain("HAS_SECTION*0..1");
|
|
36
|
+
expect(s).toMatch(/MENTIONS\|REFERENCES/);
|
|
37
|
+
});
|
|
38
|
+
it("label extraction uses known primary-label allowlist for deterministic ordering", () => {
|
|
39
|
+
const s = src();
|
|
40
|
+
// Must not use NOT IN filter (non-deterministic ordering for multi-labeled nodes).
|
|
41
|
+
// Must use IN filter against a closed set of compiledTruth-bearing labels.
|
|
42
|
+
expect(s).toMatch(/l IN \[.*'Person'.*'Organization'.*'Concept'/);
|
|
43
|
+
expect(s).not.toContain("l NOT IN ['Trashed']");
|
|
44
|
+
});
|
|
45
|
+
it("gate only runs when inlineRewrite param is true", () => {
|
|
46
|
+
const s = src();
|
|
47
|
+
expect(s).toMatch(/if\s*\(\s*params\.inlineRewrite\s*\)/);
|
|
48
|
+
});
|
|
49
|
+
it("applies 7-day cooldown window and forceRewrite bypass", () => {
|
|
50
|
+
const s = src();
|
|
51
|
+
expect(s).toContain("7 * 24 * 60 * 60 * 1000");
|
|
52
|
+
expect(s).toMatch(/params\.forceRewrite/);
|
|
53
|
+
});
|
|
54
|
+
it("emits the observability log line with op=compiled-truth-inline", () => {
|
|
55
|
+
const s = src();
|
|
56
|
+
expect(s).toContain("op=compiled-truth-inline");
|
|
57
|
+
expect(s).toContain("entitiesChecked=");
|
|
58
|
+
expect(s).toContain("entitiesRecompiled=");
|
|
59
|
+
expect(s).toContain("entitiesDeferred=");
|
|
60
|
+
});
|
|
61
|
+
it("default threshold is 2 when inlineRewriteThreshold is not provided", () => {
|
|
62
|
+
const s = src();
|
|
63
|
+
expect(s).toContain("inlineRewriteThreshold ?? 2");
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=memory-ingest-inline-rewrite.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-ingest-inline-rewrite.test.js","sourceRoot":"","sources":["../../../src/tools/__tests__/memory-ingest-inline-rewrite.test.ts"],"names":[],"mappings":"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"}
|
package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts
CHANGED
|
@@ -46,6 +46,19 @@ export interface DeriveInsightsParams {
|
|
|
46
46
|
claims: AgentClaim[];
|
|
47
47
|
/** Optional override for the SDK-injected session id (provenance stamping). */
|
|
48
48
|
sessionId?: string;
|
|
49
|
+
/**
|
|
50
|
+
* When true, count mention-claim subjects in this chunk and return those
|
|
51
|
+
* reaching `inlineRewriteThreshold` in `inlineRewriteSignals`. The calling
|
|
52
|
+
* skill accumulates signals across chunks; when an entity's cumulative count
|
|
53
|
+
* hits threshold, resolve it via `memory-search` and dispatch the
|
|
54
|
+
* `compiled-truth-rewriter` specialist.
|
|
55
|
+
*/
|
|
56
|
+
inlineRewrite?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Minimum mention-claim count for a subject to appear in
|
|
59
|
+
* `inlineRewriteSignals`. Default: 2.
|
|
60
|
+
*/
|
|
61
|
+
inlineRewriteThreshold?: number;
|
|
49
62
|
}
|
|
50
63
|
export interface Proposal {
|
|
51
64
|
/** elementId of the source conversation-document :Section chunk. */
|
|
@@ -84,6 +97,18 @@ export interface DeriveInsightsResult {
|
|
|
84
97
|
rejectionsFiltered: number;
|
|
85
98
|
/** Claims the agent emitted that did not survive normalisation (missing required fields). */
|
|
86
99
|
invalidClaims: number;
|
|
100
|
+
/**
|
|
101
|
+
* Entities mentioned >= `inlineRewriteThreshold` times among this chunk's
|
|
102
|
+
* "mention" claims. Populated only when `inlineRewrite=true`. The calling
|
|
103
|
+
* skill accumulates across all chunks; when an entity's cumulative count
|
|
104
|
+
* reaches threshold, resolve it via `memory-search` and dispatch the
|
|
105
|
+
* `compiled-truth-rewriter` specialist. Uses display names only — no
|
|
106
|
+
* elementId resolution happens here.
|
|
107
|
+
*/
|
|
108
|
+
inlineRewriteSignals?: {
|
|
109
|
+
displayName: string;
|
|
110
|
+
mentionCount: number;
|
|
111
|
+
}[];
|
|
87
112
|
}
|
|
88
113
|
export declare function conversationArchiveDeriveInsights(params: DeriveInsightsParams): Promise<DeriveInsightsResult>;
|
|
89
114
|
//# sourceMappingURL=conversation-archive-derive-insights.d.ts.map
|
package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-archive-derive-insights.d.ts","sourceRoot":"","sources":["../../src/tools/conversation-archive-derive-insights.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AA0BH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAS7D;AAID,wBAAgB,YAAY,CAC1B,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAID,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAwC7D;AAQD,eAAO,MAAM,cAAc,qEAKjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAM3D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,yFAAyF;IACzF,eAAe,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation-archive-derive-insights.d.ts","sourceRoot":"","sources":["../../src/tools/conversation-archive-derive-insights.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AA0BH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAS7D;AAID,wBAAgB,YAAY,CAC1B,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAID,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAwC7D;AAQD,eAAO,MAAM,cAAc,qEAKjB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAM3D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,yFAAyF;IACzF,eAAe,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,QAAQ;IACvB,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,IAAI,EAAE,YAAY,CAAC;IACnB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC;;;;OAIG;IACH,cAAc,EAAE;QACd,eAAe,EAAE,KAAK,CAAC;YACrB,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;YAC3B,WAAW,EAAE,MAAM,CAAC;YACpB,cAAc,EAAE,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC,CAAC;SAClD,CAAC,CAAC;KACJ,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,oFAAoF;IACpF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6FAA6F;IAC7F,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACxE;AA6QD,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAU/B"}
|
package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js
CHANGED
|
@@ -343,6 +343,10 @@ async function conversationArchiveDeriveInsightsImpl(params) {
|
|
|
343
343
|
process.stderr.write(`[conversation-archive-derive-insights] start accountId=${accountId} archiveElementId=${archiveElementId} chunkElementId=${chunkElementId} claims=${claims.length}\n`);
|
|
344
344
|
const rejections = loadRejections(accountId);
|
|
345
345
|
const proposals = [];
|
|
346
|
+
// All valid (normalised + buildable) proposals, including rejected ones.
|
|
347
|
+
// Used for inline-rewrite signal counting so the density signal is not
|
|
348
|
+
// deflated by the operator's rejection history on specific evidence snippets.
|
|
349
|
+
const validProposals = [];
|
|
346
350
|
let rejectionsFiltered = 0;
|
|
347
351
|
let invalidClaims = 0;
|
|
348
352
|
for (const rawClaim of claims) {
|
|
@@ -356,12 +360,33 @@ async function conversationArchiveDeriveInsightsImpl(params) {
|
|
|
356
360
|
invalidClaims += 1;
|
|
357
361
|
continue;
|
|
358
362
|
}
|
|
363
|
+
validProposals.push(proposal);
|
|
359
364
|
if (rejections.has(rejectionKey(proposal.chunkElementId, proposal.kind, proposal.contentHash))) {
|
|
360
365
|
rejectionsFiltered += 1;
|
|
361
366
|
continue;
|
|
362
367
|
}
|
|
363
368
|
proposals.push(proposal);
|
|
364
369
|
}
|
|
370
|
+
// Inline compiled-truth reconciliation signals (opt-in — Task 595).
|
|
371
|
+
// Count mention-claim subjects across ALL valid claims (including
|
|
372
|
+
// operator-rejected ones) so the density signal is not deflated by
|
|
373
|
+
// rejections of specific evidence snippets. A rejection of an evidence
|
|
374
|
+
// snippet does not mean the entity should be excluded from rewrite signals.
|
|
375
|
+
let inlineRewriteSignals;
|
|
376
|
+
if (params.inlineRewrite) {
|
|
377
|
+
const threshold = params.inlineRewriteThreshold ?? 2;
|
|
378
|
+
const counts = {};
|
|
379
|
+
for (const p of validProposals) {
|
|
380
|
+
if (p.kind === "mention" && p.disambiguation) {
|
|
381
|
+
const displayName = p.disambiguation.needsResolution[0]?.displayName ?? "";
|
|
382
|
+
if (displayName)
|
|
383
|
+
counts[displayName] = (counts[displayName] ?? 0) + 1;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
inlineRewriteSignals = Object.entries(counts)
|
|
387
|
+
.filter(([, count]) => count >= threshold)
|
|
388
|
+
.map(([displayName, mentionCount]) => ({ displayName, mentionCount }));
|
|
389
|
+
}
|
|
365
390
|
process.stderr.write(`[conversation-archive-derive-insights] done accountId=${accountId} archiveElementId=${archiveElementId} chunkElementId=${chunkElementId} proposals=${proposals.length} rejections-filtered=${rejectionsFiltered} invalidClaims=${invalidClaims} ms=${Date.now() - start}\n`);
|
|
366
391
|
return {
|
|
367
392
|
archiveElementId,
|
|
@@ -369,6 +394,7 @@ async function conversationArchiveDeriveInsightsImpl(params) {
|
|
|
369
394
|
proposals,
|
|
370
395
|
rejectionsFiltered,
|
|
371
396
|
invalidClaims,
|
|
397
|
+
...(inlineRewriteSignals !== undefined ? { inlineRewriteSignals } : {}),
|
|
372
398
|
};
|
|
373
399
|
}
|
|
374
400
|
//# sourceMappingURL=conversation-archive-derive-insights.js.map
|