@theihtisham/agent-shadow-brain 6.0.0 → 6.0.3
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/CHANGELOG.md +372 -0
- package/README.md +366 -355
- package/dist/brain/auto-update.js +1 -1
- package/dist/brain/brain-3d.d.ts +79 -0
- package/dist/brain/brain-3d.d.ts.map +1 -0
- package/dist/brain/brain-3d.js +468 -0
- package/dist/brain/brain-3d.js.map +1 -0
- package/dist/brain/brain-active-learner.d.ts +74 -0
- package/dist/brain/brain-active-learner.d.ts.map +1 -0
- package/dist/brain/brain-active-learner.js +425 -0
- package/dist/brain/brain-active-learner.js.map +1 -0
- package/dist/brain/brain-ascii.d.ts +32 -0
- package/dist/brain/brain-ascii.d.ts.map +1 -0
- package/dist/brain/brain-ascii.js +402 -0
- package/dist/brain/brain-ascii.js.map +1 -0
- package/dist/brain/brain-cinema.d.ts +45 -0
- package/dist/brain/brain-cinema.d.ts.map +1 -0
- package/dist/brain/brain-cinema.js +393 -0
- package/dist/brain/brain-cinema.js.map +1 -0
- package/dist/brain/brain-coach.d.ts +45 -0
- package/dist/brain/brain-coach.d.ts.map +1 -0
- package/dist/brain/brain-coach.js +383 -0
- package/dist/brain/brain-coach.js.map +1 -0
- package/dist/brain/brain-consolidator.d.ts +56 -0
- package/dist/brain/brain-consolidator.d.ts.map +1 -0
- package/dist/brain/brain-consolidator.js +386 -0
- package/dist/brain/brain-consolidator.js.map +1 -0
- package/dist/brain/brain-contradictions.d.ts +57 -0
- package/dist/brain/brain-contradictions.d.ts.map +1 -0
- package/dist/brain/brain-contradictions.js +443 -0
- package/dist/brain/brain-contradictions.js.map +1 -0
- package/dist/brain/brain-diff.d.ts +61 -0
- package/dist/brain/brain-diff.d.ts.map +1 -0
- package/dist/brain/brain-diff.js +439 -0
- package/dist/brain/brain-diff.js.map +1 -0
- package/dist/brain/brain-dna.d.ts +59 -0
- package/dist/brain/brain-dna.d.ts.map +1 -0
- package/dist/brain/brain-dna.js +336 -0
- package/dist/brain/brain-dna.js.map +1 -0
- package/dist/brain/brain-doppelganger.d.ts +32 -0
- package/dist/brain/brain-doppelganger.d.ts.map +1 -0
- package/dist/brain/brain-doppelganger.js +417 -0
- package/dist/brain/brain-doppelganger.js.map +1 -0
- package/dist/brain/brain-graph-walker.d.ts +54 -0
- package/dist/brain/brain-graph-walker.d.ts.map +1 -0
- package/dist/brain/brain-graph-walker.js +412 -0
- package/dist/brain/brain-graph-walker.js.map +1 -0
- package/dist/brain/brain-holiday-card.d.ts +50 -0
- package/dist/brain/brain-holiday-card.d.ts.map +1 -0
- package/dist/brain/brain-holiday-card.js +432 -0
- package/dist/brain/brain-holiday-card.js.map +1 -0
- package/dist/brain/brain-memes.d.ts +44 -0
- package/dist/brain/brain-memes.d.ts.map +1 -0
- package/dist/brain/brain-memes.js +438 -0
- package/dist/brain/brain-memes.js.map +1 -0
- package/dist/brain/brain-memory-tiers.d.ts +67 -0
- package/dist/brain/brain-memory-tiers.d.ts.map +1 -0
- package/dist/brain/brain-memory-tiers.js +292 -0
- package/dist/brain/brain-memory-tiers.js.map +1 -0
- package/dist/brain/brain-notebook.d.ts +68 -0
- package/dist/brain/brain-notebook.d.ts.map +1 -0
- package/dist/brain/brain-notebook.js +379 -0
- package/dist/brain/brain-notebook.js.map +1 -0
- package/dist/brain/brain-portability.js +3 -3
- package/dist/brain/brain-portability.js.map +1 -1
- package/dist/brain/brain-quantize.d.ts +62 -0
- package/dist/brain/brain-quantize.d.ts.map +1 -0
- package/dist/brain/brain-quantize.js +346 -0
- package/dist/brain/brain-quantize.js.map +1 -0
- package/dist/brain/brain-query-expander.d.ts +31 -0
- package/dist/brain/brain-query-expander.d.ts.map +1 -0
- package/dist/brain/brain-query-expander.js +417 -0
- package/dist/brain/brain-query-expander.js.map +1 -0
- package/dist/brain/brain-quest.d.ts +58 -0
- package/dist/brain/brain-quest.d.ts.map +1 -0
- package/dist/brain/brain-quest.js +541 -0
- package/dist/brain/brain-quest.js.map +1 -0
- package/dist/brain/brain-recall-cache.d.ts +73 -0
- package/dist/brain/brain-recall-cache.d.ts.map +1 -0
- package/dist/brain/brain-recall-cache.js +444 -0
- package/dist/brain/brain-recall-cache.js.map +1 -0
- package/dist/brain/brain-reflex.d.ts +55 -0
- package/dist/brain/brain-reflex.d.ts.map +1 -0
- package/dist/brain/brain-reflex.js +364 -0
- package/dist/brain/brain-reflex.js.map +1 -0
- package/dist/brain/brain-replay.d.ts +74 -0
- package/dist/brain/brain-replay.d.ts.map +1 -0
- package/dist/brain/brain-replay.js +336 -0
- package/dist/brain/brain-replay.js.map +1 -0
- package/dist/brain/brain-rerank.d.ts +39 -0
- package/dist/brain/brain-rerank.d.ts.map +1 -0
- package/dist/brain/brain-rerank.js +216 -0
- package/dist/brain/brain-rerank.js.map +1 -0
- package/dist/brain/brain-roast.d.ts +44 -0
- package/dist/brain/brain-roast.d.ts.map +1 -0
- package/dist/brain/brain-roast.js +566 -0
- package/dist/brain/brain-roast.js.map +1 -0
- package/dist/brain/brain-sonification.d.ts +57 -0
- package/dist/brain/brain-sonification.d.ts.map +1 -0
- package/dist/brain/brain-sonification.js +286 -0
- package/dist/brain/brain-sonification.js.map +1 -0
- package/dist/brain/brain-tarot.d.ts +49 -0
- package/dist/brain/brain-tarot.d.ts.map +1 -0
- package/dist/brain/brain-tarot.js +634 -0
- package/dist/brain/brain-tarot.js.map +1 -0
- package/dist/brain/brain-time-capsule.d.ts +80 -0
- package/dist/brain/brain-time-capsule.d.ts.map +1 -0
- package/dist/brain/brain-time-capsule.js +289 -0
- package/dist/brain/brain-time-capsule.js.map +1 -0
- package/dist/brain/brain-trophies.d.ts +60 -0
- package/dist/brain/brain-trophies.d.ts.map +1 -0
- package/dist/brain/brain-trophies.js +431 -0
- package/dist/brain/brain-trophies.js.map +1 -0
- package/dist/brain/brain-working-memory.d.ts +78 -0
- package/dist/brain/brain-working-memory.d.ts.map +1 -0
- package/dist/brain/brain-working-memory.js +367 -0
- package/dist/brain/brain-working-memory.js.map +1 -0
- package/dist/brain/confidence-gate.d.ts +69 -0
- package/dist/brain/confidence-gate.d.ts.map +1 -0
- package/dist/brain/confidence-gate.js +244 -0
- package/dist/brain/confidence-gate.js.map +1 -0
- package/dist/brain/constitution.d.ts +59 -0
- package/dist/brain/constitution.d.ts.map +1 -0
- package/dist/brain/constitution.js +315 -0
- package/dist/brain/constitution.js.map +1 -0
- package/dist/brain/context-continuity.d.ts +78 -0
- package/dist/brain/context-continuity.d.ts.map +1 -0
- package/dist/brain/context-continuity.js +341 -0
- package/dist/brain/context-continuity.js.map +1 -0
- package/dist/brain/embeddings-v2.d.ts +58 -0
- package/dist/brain/embeddings-v2.d.ts.map +1 -0
- package/dist/brain/embeddings-v2.js +344 -0
- package/dist/brain/embeddings-v2.js.map +1 -0
- package/dist/brain/global-brain.d.ts.map +1 -1
- package/dist/brain/global-brain.js +35 -9
- package/dist/brain/global-brain.js.map +1 -1
- package/dist/brain/hive-voice.d.ts +71 -0
- package/dist/brain/hive-voice.d.ts.map +1 -0
- package/dist/brain/hive-voice.js +352 -0
- package/dist/brain/hive-voice.js.map +1 -0
- package/dist/brain/live-brain.d.ts +119 -0
- package/dist/brain/live-brain.d.ts.map +1 -0
- package/dist/brain/live-brain.js +405 -0
- package/dist/brain/live-brain.js.map +1 -0
- package/dist/brain/markdown-export.d.ts +48 -0
- package/dist/brain/markdown-export.d.ts.map +1 -0
- package/dist/brain/markdown-export.js +382 -0
- package/dist/brain/markdown-export.js.map +1 -0
- package/dist/brain/mcp-server.d.ts +4 -0
- package/dist/brain/mcp-server.d.ts.map +1 -1
- package/dist/brain/mcp-server.js +81 -5
- package/dist/brain/mcp-server.js.map +1 -1
- package/dist/brain/memory-seeder.d.ts +78 -0
- package/dist/brain/memory-seeder.d.ts.map +1 -0
- package/dist/brain/memory-seeder.js +326 -0
- package/dist/brain/memory-seeder.js.map +1 -0
- package/dist/brain/multimodal-vision.d.ts +38 -0
- package/dist/brain/multimodal-vision.d.ts.map +1 -0
- package/dist/brain/multimodal-vision.js +257 -0
- package/dist/brain/multimodal-vision.js.map +1 -0
- package/dist/brain/orchestrator.js +1 -1
- package/dist/brain/otel-lite.d.ts +71 -0
- package/dist/brain/otel-lite.d.ts.map +1 -0
- package/dist/brain/otel-lite.js +232 -0
- package/dist/brain/otel-lite.js.map +1 -0
- package/dist/brain/token-economy.d.ts +2 -0
- package/dist/brain/token-economy.d.ts.map +1 -1
- package/dist/brain/token-economy.js +80 -24
- package/dist/brain/token-economy.js.map +1 -1
- package/dist/cli.js +1120 -32
- package/dist/cli.js.map +1 -1
- package/dist/dashboard/server.d.ts +5 -0
- package/dist/dashboard/server.d.ts.map +1 -1
- package/dist/dashboard/server.js +355 -2
- package/dist/dashboard/server.js.map +1 -1
- package/dist/dashboard/v6-dashboard-html.d.ts +1 -1
- package/dist/dashboard/v6-dashboard-html.d.ts.map +1 -1
- package/dist/dashboard/v6-dashboard-html.js +755 -85
- package/dist/dashboard/v6-dashboard-html.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +17 -12
- package/dist/types.d.ts.map +1 -1
- package/docs/launch/README.md +61 -0
- package/docs/launch/RELEASE_CHECKLIST_v6.0.3.md +102 -0
- package/docs/launch/RELEASE_NOTES_v6.0.3.md +111 -0
- package/package.json +25 -13
- package/tools/export-resume-pack.mjs +56 -0
- package/tools/record-global-memory.mjs +72 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { BrainTimelineEvent, GlobalEntry } from '../types.js';
|
|
2
|
+
export interface ContextSeedSource {
|
|
3
|
+
label: string;
|
|
4
|
+
path: string;
|
|
5
|
+
exists: boolean;
|
|
6
|
+
lastModified?: string;
|
|
7
|
+
excerpt?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ContextSeedPack {
|
|
10
|
+
generatedAt: string;
|
|
11
|
+
projectDir: string;
|
|
12
|
+
projectName: string;
|
|
13
|
+
projectExists: boolean;
|
|
14
|
+
note: string;
|
|
15
|
+
sources: ContextSeedSource[];
|
|
16
|
+
memories: BrainTimelineEvent[];
|
|
17
|
+
warnings: string[];
|
|
18
|
+
markdown: string;
|
|
19
|
+
}
|
|
20
|
+
export interface MemoryQualityReport {
|
|
21
|
+
totalEntries: number;
|
|
22
|
+
avgScore: number;
|
|
23
|
+
sourceBacked: number;
|
|
24
|
+
sourceCoverage: number;
|
|
25
|
+
stale: number;
|
|
26
|
+
lowQuality: number;
|
|
27
|
+
duplicates: Array<{
|
|
28
|
+
signature: string;
|
|
29
|
+
count: number;
|
|
30
|
+
ids: string[];
|
|
31
|
+
}>;
|
|
32
|
+
warnings: string[];
|
|
33
|
+
}
|
|
34
|
+
export interface ContextResumePack {
|
|
35
|
+
generatedAt: string;
|
|
36
|
+
projectDir: string;
|
|
37
|
+
projectName: string;
|
|
38
|
+
projectId: string;
|
|
39
|
+
disclaimer: string;
|
|
40
|
+
stats: {
|
|
41
|
+
docCount: number;
|
|
42
|
+
memoryCount: number;
|
|
43
|
+
avgQualityScore: number;
|
|
44
|
+
sourceCoverage: number;
|
|
45
|
+
staleCount: number;
|
|
46
|
+
duplicateClusterCount: number;
|
|
47
|
+
};
|
|
48
|
+
warnings: string[];
|
|
49
|
+
suggestedRecallQueries: string[];
|
|
50
|
+
blockers: Array<GlobalEntry & {
|
|
51
|
+
qualityScore?: number;
|
|
52
|
+
sources?: string[];
|
|
53
|
+
tags?: string[];
|
|
54
|
+
}>;
|
|
55
|
+
topMemories: Array<GlobalEntry & {
|
|
56
|
+
qualityScore?: number;
|
|
57
|
+
sources?: string[];
|
|
58
|
+
tags?: string[];
|
|
59
|
+
}>;
|
|
60
|
+
sourceDocs: ContextSeedSource[];
|
|
61
|
+
markdown: string;
|
|
62
|
+
}
|
|
63
|
+
export declare function analyzeMemoryQuality(entries: GlobalEntry[], nowDate?: Date): MemoryQualityReport;
|
|
64
|
+
export declare function generateContextResumePack(opts: {
|
|
65
|
+
projectDir: string;
|
|
66
|
+
projectName: string;
|
|
67
|
+
projectId: string;
|
|
68
|
+
entries: GlobalEntry[];
|
|
69
|
+
maxMemories?: number;
|
|
70
|
+
now?: Date;
|
|
71
|
+
}): ContextResumePack;
|
|
72
|
+
export declare function buildContextSeedPack(opts: {
|
|
73
|
+
projectDir: string;
|
|
74
|
+
sourceFiles?: string[];
|
|
75
|
+
queries?: string[];
|
|
76
|
+
maxMemories?: number;
|
|
77
|
+
}): Promise<ContextSeedPack>;
|
|
78
|
+
//# sourceMappingURL=context-continuity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-continuity.d.ts","sourceRoot":"","sources":["../../src/brain/context-continuity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { GlobalBrain } from './global-brain.js';
|
|
4
|
+
const DEFAULT_SOURCE_FILES = [
|
|
5
|
+
'README.md',
|
|
6
|
+
'AGENTS.md',
|
|
7
|
+
'CHANGELOG.md',
|
|
8
|
+
'package.json',
|
|
9
|
+
'docs/ROADMAP.md',
|
|
10
|
+
'docs/ROADMAP-v7.md',
|
|
11
|
+
'DEV_AGENT_BRAIN.md',
|
|
12
|
+
'DEV_PROGRESS.md',
|
|
13
|
+
'DEV_VERIFICATION_LOG.md',
|
|
14
|
+
'DEV_WORK_PREFLIGHT.md',
|
|
15
|
+
'DEV_RESOURCE_REGISTRY.md',
|
|
16
|
+
'WORKER_ORCHESTRATION_STATUS.md',
|
|
17
|
+
'DEV_AGENT_TASKS.md',
|
|
18
|
+
];
|
|
19
|
+
const DEFAULT_RECALL_QUERIES = [
|
|
20
|
+
'active gate blocker next movement visual proof',
|
|
21
|
+
'rejected paths do not repeat gotcha',
|
|
22
|
+
'tool availability resource registry VPS Blender Unity Triverse',
|
|
23
|
+
'context continuity resume compacted session',
|
|
24
|
+
];
|
|
25
|
+
function redactSecrets(text) {
|
|
26
|
+
return text
|
|
27
|
+
.replace(/-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g, '[REDACTED_PRIVATE_KEY]')
|
|
28
|
+
.replace(/\bsk-[A-Za-z0-9_-]{16,}\b/g, '[REDACTED_API_KEY]')
|
|
29
|
+
.replace(/\b([A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,})\b/g, '[REDACTED_TOKEN]')
|
|
30
|
+
.replace(/^(\s*(?:pass|password|api[_ -]?key|token|secret)\s*[:=]\s*).+$/gim, '$1[REDACTED]');
|
|
31
|
+
}
|
|
32
|
+
function tailLines(text, maxLines, maxChars) {
|
|
33
|
+
const normalized = text.replace(/\r\n/g, '\n');
|
|
34
|
+
const lines = normalized.split('\n');
|
|
35
|
+
const tail = lines.slice(Math.max(0, lines.length - maxLines)).join('\n').trim();
|
|
36
|
+
if (tail.length <= maxChars)
|
|
37
|
+
return tail;
|
|
38
|
+
return tail.slice(tail.length - maxChars).trim();
|
|
39
|
+
}
|
|
40
|
+
function readSource(projectDir, relPath) {
|
|
41
|
+
const fullPath = path.join(projectDir, relPath);
|
|
42
|
+
if (!fs.existsSync(fullPath)) {
|
|
43
|
+
return { label: relPath, path: fullPath, exists: false };
|
|
44
|
+
}
|
|
45
|
+
const stat = fs.statSync(fullPath);
|
|
46
|
+
const raw = fs.readFileSync(fullPath, 'utf-8');
|
|
47
|
+
const excerpt = redactSecrets(tailLines(raw, 90, 7000));
|
|
48
|
+
return {
|
|
49
|
+
label: relPath,
|
|
50
|
+
path: fullPath,
|
|
51
|
+
exists: true,
|
|
52
|
+
lastModified: stat.mtime.toISOString(),
|
|
53
|
+
excerpt,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function memoryToMarkdown(memory) {
|
|
57
|
+
const created = new Date(memory.createdAt).toISOString();
|
|
58
|
+
const sourceHint = Array.isArray(memory.metadata?.sources)
|
|
59
|
+
? `\n Sources: ${memory.metadata.sources.join('; ')}`
|
|
60
|
+
: '';
|
|
61
|
+
return `- ${memory.category} (${memory.agentTool}, ${created}, importance ${memory.importance})\n id: ${memory.id}\n ${redactSecrets(memory.content).slice(0, 900)}${sourceHint}`;
|
|
62
|
+
}
|
|
63
|
+
function scoreMemory(entry, nowDate = new Date()) {
|
|
64
|
+
const metadata = entry.metadata ?? {};
|
|
65
|
+
const hasSources = Array.isArray(metadata.sources) && metadata.sources.length > 0;
|
|
66
|
+
const hasTags = Array.isArray(metadata.tags) && metadata.tags.length > 0;
|
|
67
|
+
const contentLength = String(entry.content ?? '').trim().length;
|
|
68
|
+
const ageDays = (nowDate.getTime() - new Date(entry.createdAt).getTime()) / 86400000;
|
|
69
|
+
let score = 35;
|
|
70
|
+
if (contentLength >= 160)
|
|
71
|
+
score += 20;
|
|
72
|
+
else if (contentLength >= 80)
|
|
73
|
+
score += 12;
|
|
74
|
+
if (hasSources)
|
|
75
|
+
score += 25;
|
|
76
|
+
if (hasTags)
|
|
77
|
+
score += 8;
|
|
78
|
+
score += Math.round(Math.min(10, Math.max(0, entry.importance * 10)));
|
|
79
|
+
if (ageDays > 30)
|
|
80
|
+
score -= 12;
|
|
81
|
+
if (ageDays > 90)
|
|
82
|
+
score -= 15;
|
|
83
|
+
return Math.max(0, Math.min(100, score));
|
|
84
|
+
}
|
|
85
|
+
function enrichMemory(entry, nowDate = new Date()) {
|
|
86
|
+
const metadata = entry.metadata ?? {};
|
|
87
|
+
return {
|
|
88
|
+
...entry,
|
|
89
|
+
qualityScore: scoreMemory(entry, nowDate),
|
|
90
|
+
sources: Array.isArray(metadata.sources) ? metadata.sources.map(String) : [],
|
|
91
|
+
tags: Array.isArray(metadata.tags) ? metadata.tags.map(String) : [],
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
export function analyzeMemoryQuality(entries, nowDate = new Date()) {
|
|
95
|
+
if (!entries.length) {
|
|
96
|
+
return { totalEntries: 0, avgScore: 0, sourceBacked: 0, sourceCoverage: 0, stale: 0, lowQuality: 0, duplicates: [], warnings: [] };
|
|
97
|
+
}
|
|
98
|
+
const now = nowDate.getTime();
|
|
99
|
+
const scores = entries.map(entry => scoreMemory(entry, nowDate));
|
|
100
|
+
const withSources = entries.filter(e => Array.isArray(e.metadata?.sources) && e.metadata.sources.length > 0).length;
|
|
101
|
+
const stale = entries.filter(e => now - new Date(e.createdAt).getTime() > 30 * 86400000).length;
|
|
102
|
+
const lowQuality = scores.filter(score => score < 55).length;
|
|
103
|
+
const bySignature = new Map();
|
|
104
|
+
for (const entry of entries) {
|
|
105
|
+
const signature = String(entry.content ?? '')
|
|
106
|
+
.toLowerCase()
|
|
107
|
+
.replace(/\[[^\]]+\]/g, '')
|
|
108
|
+
.replace(/[^a-z0-9]+/g, ' ')
|
|
109
|
+
.trim()
|
|
110
|
+
.split(/\s+/)
|
|
111
|
+
.slice(0, 18)
|
|
112
|
+
.join(' ');
|
|
113
|
+
if (!signature)
|
|
114
|
+
continue;
|
|
115
|
+
const ids = bySignature.get(signature) ?? [];
|
|
116
|
+
ids.push(entry.id);
|
|
117
|
+
bySignature.set(signature, ids);
|
|
118
|
+
}
|
|
119
|
+
const duplicates = Array.from(bySignature.entries())
|
|
120
|
+
.filter(([, ids]) => ids.length > 1)
|
|
121
|
+
.slice(0, 10)
|
|
122
|
+
.map(([signature, ids]) => ({ signature, count: ids.length, ids }));
|
|
123
|
+
const warnings = [];
|
|
124
|
+
if (withSources / entries.length < 0.65)
|
|
125
|
+
warnings.push('Low source coverage: many memories lack evidence paths.');
|
|
126
|
+
if (stale > 0)
|
|
127
|
+
warnings.push(`${stale} stale memories are older than 30 days; verify against visible project files before acting.`);
|
|
128
|
+
if (duplicates.length)
|
|
129
|
+
warnings.push(`${duplicates.length} possible duplicate memory clusters found.`);
|
|
130
|
+
if (lowQuality)
|
|
131
|
+
warnings.push(`${lowQuality} memories scored below 55 and may need better tags, sources, or action text.`);
|
|
132
|
+
return {
|
|
133
|
+
totalEntries: entries.length,
|
|
134
|
+
avgScore: Math.round(scores.reduce((sum, score) => sum + score, 0) / scores.length),
|
|
135
|
+
sourceBacked: withSources,
|
|
136
|
+
sourceCoverage: withSources / entries.length,
|
|
137
|
+
stale,
|
|
138
|
+
lowQuality,
|
|
139
|
+
duplicates,
|
|
140
|
+
warnings,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function sourceToMarkdown(source) {
|
|
144
|
+
if (!source.exists)
|
|
145
|
+
return `### ${source.label}\nMissing at ${source.path}`;
|
|
146
|
+
return `### ${source.label}\nPath: ${source.path}\nLast modified: ${source.lastModified}\n\n${source.excerpt || '(empty)'}`;
|
|
147
|
+
}
|
|
148
|
+
function buildMarkdown(pack) {
|
|
149
|
+
const warnings = pack.warnings.length
|
|
150
|
+
? pack.warnings.map(w => `- ${w}`).join('\n')
|
|
151
|
+
: '- None.';
|
|
152
|
+
const memories = pack.memories.length
|
|
153
|
+
? pack.memories.map(memoryToMarkdown).join('\n\n')
|
|
154
|
+
: '- No project-scoped or global memories matched the continuity queries.';
|
|
155
|
+
const sources = pack.sources.map(sourceToMarkdown).join('\n\n');
|
|
156
|
+
return [
|
|
157
|
+
'# Shadow Brain Context Continuity Seed',
|
|
158
|
+
'',
|
|
159
|
+
`Generated: ${pack.generatedAt}`,
|
|
160
|
+
`Project: ${pack.projectName}`,
|
|
161
|
+
`Path: ${pack.projectDir}`,
|
|
162
|
+
'',
|
|
163
|
+
'## Read First',
|
|
164
|
+
'',
|
|
165
|
+
pack.note,
|
|
166
|
+
'',
|
|
167
|
+
'This pack is designed for Codex/Cursor/Claude/other agents after context compaction or a fresh session. It cannot read hidden model context. It reconstructs the working state from source-backed project files and Shadow Brain memories.',
|
|
168
|
+
'',
|
|
169
|
+
'## Warnings',
|
|
170
|
+
'',
|
|
171
|
+
warnings,
|
|
172
|
+
'',
|
|
173
|
+
'## High-Value Memories',
|
|
174
|
+
'',
|
|
175
|
+
memories,
|
|
176
|
+
'',
|
|
177
|
+
'## Source File Excerpts',
|
|
178
|
+
'',
|
|
179
|
+
sources,
|
|
180
|
+
'',
|
|
181
|
+
'## Required Agent Behavior',
|
|
182
|
+
'',
|
|
183
|
+
'- Treat project files as source of truth if they conflict with memory.',
|
|
184
|
+
'- Verify the active blocker before implementation.',
|
|
185
|
+
'- Do not repeat rejected routes listed above.',
|
|
186
|
+
'- Do not store secrets in repo files, memory, prompts, logs, or reports.',
|
|
187
|
+
'- Update progress and verification files after meaningful work.',
|
|
188
|
+
].join('\n');
|
|
189
|
+
}
|
|
190
|
+
function buildResumeMarkdown(pack) {
|
|
191
|
+
const warnings = pack.warnings.length ? pack.warnings.map(w => `- ${w}`).join('\n') : '- None.';
|
|
192
|
+
const blockers = pack.blockers.length
|
|
193
|
+
? pack.blockers.map(memoryToMarkdown).join('\n\n')
|
|
194
|
+
: '- No blocker memories found.';
|
|
195
|
+
const top = pack.topMemories.length
|
|
196
|
+
? pack.topMemories.map(memoryToMarkdown).join('\n\n')
|
|
197
|
+
: '- No high-value memories found.';
|
|
198
|
+
const docs = pack.sourceDocs.map(sourceToMarkdown).join('\n\n');
|
|
199
|
+
const queries = pack.suggestedRecallQueries.map(q => `- ${q}`).join('\n');
|
|
200
|
+
return [
|
|
201
|
+
'# Shadow Brain Resume Pack',
|
|
202
|
+
'',
|
|
203
|
+
'Context Continuity Resume Pack',
|
|
204
|
+
'',
|
|
205
|
+
`Generated: ${pack.generatedAt}`,
|
|
206
|
+
`Project: ${pack.projectName}`,
|
|
207
|
+
`Path: ${pack.projectDir}`,
|
|
208
|
+
'',
|
|
209
|
+
'## Purpose',
|
|
210
|
+
'',
|
|
211
|
+
pack.disclaimer,
|
|
212
|
+
'',
|
|
213
|
+
'## Stats',
|
|
214
|
+
'',
|
|
215
|
+
`- Source docs: ${pack.stats.docCount}`,
|
|
216
|
+
`- Memories: ${pack.stats.memoryCount}`,
|
|
217
|
+
`- Average memory quality: ${pack.stats.avgQualityScore}/100`,
|
|
218
|
+
`- Source coverage: ${Math.round(pack.stats.sourceCoverage * 100)}%`,
|
|
219
|
+
'',
|
|
220
|
+
'## Warnings',
|
|
221
|
+
'',
|
|
222
|
+
warnings,
|
|
223
|
+
'',
|
|
224
|
+
'## Suggested Recall Queries',
|
|
225
|
+
'',
|
|
226
|
+
queries,
|
|
227
|
+
'',
|
|
228
|
+
'## Current Blockers And Stop Rules',
|
|
229
|
+
'',
|
|
230
|
+
blockers,
|
|
231
|
+
'',
|
|
232
|
+
'## Top Memories',
|
|
233
|
+
'',
|
|
234
|
+
top,
|
|
235
|
+
'',
|
|
236
|
+
'## Source File Excerpts',
|
|
237
|
+
'',
|
|
238
|
+
docs,
|
|
239
|
+
].join('\n');
|
|
240
|
+
}
|
|
241
|
+
export function generateContextResumePack(opts) {
|
|
242
|
+
const maxMemories = opts.maxMemories ?? 12;
|
|
243
|
+
const nowDate = opts.now ?? new Date();
|
|
244
|
+
const quality = analyzeMemoryQuality(opts.entries, nowDate);
|
|
245
|
+
const sourceDocs = DEFAULT_SOURCE_FILES.map(file => readSource(opts.projectDir, file));
|
|
246
|
+
const existingDocs = sourceDocs.filter(s => s.exists);
|
|
247
|
+
const enriched = opts.entries
|
|
248
|
+
.map(entry => enrichMemory(entry, nowDate))
|
|
249
|
+
.sort((a, b) => {
|
|
250
|
+
if ((b.qualityScore ?? 0) !== (a.qualityScore ?? 0))
|
|
251
|
+
return (b.qualityScore ?? 0) - (a.qualityScore ?? 0);
|
|
252
|
+
if (b.importance !== a.importance)
|
|
253
|
+
return b.importance - a.importance;
|
|
254
|
+
return new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
|
|
255
|
+
});
|
|
256
|
+
const blockerTerms = /\b(blocked|blocker|rejected|reject|do not|next movement|active gate|gate 2|visual proof|gotcha)\b/i;
|
|
257
|
+
const blockers = enriched.filter(e => blockerTerms.test(`${e.category} ${e.content}`)).slice(0, Math.min(8, maxMemories));
|
|
258
|
+
const topMemories = enriched.slice(0, maxMemories);
|
|
259
|
+
const warnings = [];
|
|
260
|
+
if (!existingDocs.length)
|
|
261
|
+
warnings.push('No source docs were found. Resume pack is memory-only and may be stale.');
|
|
262
|
+
if (quality.sourceCoverage < 0.5 && opts.entries.length > 5)
|
|
263
|
+
warnings.push('Low source coverage: many memories lack evidence paths.');
|
|
264
|
+
if (quality.stale > Math.max(5, opts.entries.length * 0.3))
|
|
265
|
+
warnings.push('Many memories are older than 30 days. Verify against current files before acting.');
|
|
266
|
+
if (quality.duplicates.length)
|
|
267
|
+
warnings.push(`Possible duplicate memory clusters: ${quality.duplicates.length}.`);
|
|
268
|
+
const packBase = {
|
|
269
|
+
generatedAt: nowDate.toISOString(),
|
|
270
|
+
projectDir: path.resolve(opts.projectDir),
|
|
271
|
+
projectName: opts.projectName,
|
|
272
|
+
projectId: opts.projectId,
|
|
273
|
+
disclaimer: 'Use this after context compaction, account/model switches, or a fresh agent session. It is rebuilt from visible project files and stored memories; it does not read or infer hidden model context.',
|
|
274
|
+
stats: {
|
|
275
|
+
docCount: existingDocs.length,
|
|
276
|
+
memoryCount: opts.entries.length,
|
|
277
|
+
avgQualityScore: quality.avgScore,
|
|
278
|
+
sourceCoverage: quality.sourceCoverage,
|
|
279
|
+
staleCount: quality.stale,
|
|
280
|
+
duplicateClusterCount: quality.duplicates.length,
|
|
281
|
+
},
|
|
282
|
+
warnings,
|
|
283
|
+
suggestedRecallQueries: DEFAULT_RECALL_QUERIES,
|
|
284
|
+
blockers,
|
|
285
|
+
topMemories,
|
|
286
|
+
sourceDocs: existingDocs,
|
|
287
|
+
};
|
|
288
|
+
return {
|
|
289
|
+
...packBase,
|
|
290
|
+
markdown: buildResumeMarkdown(packBase),
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
export async function buildContextSeedPack(opts) {
|
|
294
|
+
const projectDir = path.resolve(opts.projectDir);
|
|
295
|
+
const sourceFiles = opts.sourceFiles ?? DEFAULT_SOURCE_FILES;
|
|
296
|
+
const queries = opts.queries ?? DEFAULT_RECALL_QUERIES;
|
|
297
|
+
const maxMemories = opts.maxMemories ?? 12;
|
|
298
|
+
const projectExists = fs.existsSync(projectDir);
|
|
299
|
+
const projectName = path.basename(projectDir);
|
|
300
|
+
const generatedAt = new Date().toISOString();
|
|
301
|
+
const warnings = [];
|
|
302
|
+
if (!projectExists)
|
|
303
|
+
warnings.push(`Project directory does not exist: ${projectDir}`);
|
|
304
|
+
const sources = sourceFiles.map(file => readSource(projectDir, file));
|
|
305
|
+
if (!sources.some(s => s.exists))
|
|
306
|
+
warnings.push('No continuity source files were found for this project.');
|
|
307
|
+
const brain = GlobalBrain.getInstance();
|
|
308
|
+
await brain.init();
|
|
309
|
+
const projectId = GlobalBrain.projectIdFor(projectDir);
|
|
310
|
+
const memoriesById = new Map();
|
|
311
|
+
for (const query of queries) {
|
|
312
|
+
const keywords = query.split(/\s+/).filter(Boolean);
|
|
313
|
+
const projectMatches = brain.recall({ projectId, keywords, limit: maxMemories });
|
|
314
|
+
const matches = projectMatches.length ? projectMatches : brain.recall({ keywords, limit: Math.ceil(maxMemories / 2) });
|
|
315
|
+
for (const entry of matches) {
|
|
316
|
+
memoriesById.set(entry.id, entry);
|
|
317
|
+
if (memoriesById.size >= maxMemories)
|
|
318
|
+
break;
|
|
319
|
+
}
|
|
320
|
+
if (memoriesById.size >= maxMemories)
|
|
321
|
+
break;
|
|
322
|
+
}
|
|
323
|
+
const memories = Array.from(memoriesById.values()).slice(0, maxMemories);
|
|
324
|
+
if (!memories.length)
|
|
325
|
+
warnings.push('No Shadow Brain memories matched the continuity seed queries.');
|
|
326
|
+
const basePack = {
|
|
327
|
+
generatedAt,
|
|
328
|
+
projectDir,
|
|
329
|
+
projectName,
|
|
330
|
+
projectExists,
|
|
331
|
+
note: 'Use this compact continuity seed before work starts, after context compaction, or before handing the project to another agent.',
|
|
332
|
+
sources,
|
|
333
|
+
memories,
|
|
334
|
+
warnings,
|
|
335
|
+
};
|
|
336
|
+
return {
|
|
337
|
+
...basePack,
|
|
338
|
+
markdown: buildMarkdown(basePack),
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
//# sourceMappingURL=context-continuity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-continuity.js","sourceRoot":"","sources":["../../src/brain/context-continuity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { Embeddings } from './embeddings.js';
|
|
3
|
+
export interface SearchHit {
|
|
4
|
+
id: string;
|
|
5
|
+
score: number;
|
|
6
|
+
text: string;
|
|
7
|
+
metadata?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
export interface IndexStats {
|
|
10
|
+
count: number;
|
|
11
|
+
shards: number;
|
|
12
|
+
avgNeighbors: number;
|
|
13
|
+
ollamaModel: string | null;
|
|
14
|
+
ollamaPullState: 'idle' | 'pulling' | 'complete' | 'failed';
|
|
15
|
+
approxBytes: number;
|
|
16
|
+
}
|
|
17
|
+
export declare class EmbeddingsV2 extends EventEmitter {
|
|
18
|
+
private docs;
|
|
19
|
+
private entryPoint;
|
|
20
|
+
private nextShard;
|
|
21
|
+
private currentShardBytes;
|
|
22
|
+
private initialized;
|
|
23
|
+
private pullState;
|
|
24
|
+
private readonly embeddings;
|
|
25
|
+
private readonly M;
|
|
26
|
+
private readonly efConstruct;
|
|
27
|
+
private readonly efSearch;
|
|
28
|
+
constructor(opts?: {
|
|
29
|
+
embeddings?: Embeddings;
|
|
30
|
+
M?: number;
|
|
31
|
+
efConstruct?: number;
|
|
32
|
+
efSearch?: number;
|
|
33
|
+
});
|
|
34
|
+
init(): Promise<void>;
|
|
35
|
+
/** Index a document. Replaces any prior doc with the same id. */
|
|
36
|
+
addDocument(id: string, text: string, metadata?: Record<string, unknown>): Promise<void>;
|
|
37
|
+
/** Approximate top-K nearest neighbors by cosine similarity. */
|
|
38
|
+
search(query: string, topK?: number): Promise<SearchHit[]>;
|
|
39
|
+
/** Remove a document from the index. */
|
|
40
|
+
delete(id: string): Promise<boolean>;
|
|
41
|
+
count(): number;
|
|
42
|
+
stats(): IndexStats;
|
|
43
|
+
flush(): Promise<void>;
|
|
44
|
+
private linkNode;
|
|
45
|
+
private detachNode;
|
|
46
|
+
private greedySearch;
|
|
47
|
+
private dotById;
|
|
48
|
+
private loadShards;
|
|
49
|
+
private pickShardFor;
|
|
50
|
+
private shardCount;
|
|
51
|
+
private persistShard;
|
|
52
|
+
private shardBytes;
|
|
53
|
+
private approxBytes;
|
|
54
|
+
private maybeAutoPull;
|
|
55
|
+
}
|
|
56
|
+
export declare function getEmbeddingsV2(): EmbeddingsV2;
|
|
57
|
+
export declare function resetEmbeddingsV2ForTests(): void;
|
|
58
|
+
//# sourceMappingURL=embeddings-v2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddings-v2.d.ts","sourceRoot":"","sources":["../../src/brain/embeddings-v2.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAiB,MAAM,iBAAiB,CAAC;AAyB5D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC5D,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,IAAI,CAAsC;IAClD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAQ7F,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,iEAAiE;IAC3D,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9F,gEAAgE;IAC1D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAc5D,wCAAwC;IAClC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1C,KAAK,IAAI,MAAM;IAEf,KAAK,IAAI,UAAU;IAab,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,OAAO,CAAC,QAAQ;IAsBhB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,YAAY;IAkCpB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,UAAU;YAIJ,YAAY;IAe1B,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,WAAW;YAYL,aAAa;CA2C5B;AAUD,wBAAgB,eAAe,IAAI,YAAY,CAG9C;AACD,wBAAgB,yBAAyB,IAAI,IAAI,CAAsB"}
|