cortex-mcp 2.6.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +58 -279
- package/README.md +224 -393
- package/dist/cli/setup.js +60 -58
- package/dist/cli/setup.js.map +1 -1
- package/dist/config/config.js +2 -2
- package/dist/config/config.js.map +1 -1
- package/dist/db/database.d.ts +0 -8
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/database.js +2 -34
- package/dist/db/database.js.map +1 -1
- package/dist/db/event-log.d.ts +0 -4
- package/dist/db/event-log.d.ts.map +1 -1
- package/dist/db/event-log.js +10 -14
- package/dist/db/event-log.js.map +1 -1
- package/dist/db/memory-store.d.ts +3 -30
- package/dist/db/memory-store.d.ts.map +1 -1
- package/dist/db/memory-store.js +44 -140
- package/dist/db/memory-store.js.map +1 -1
- package/dist/embedding-worker.js +1 -1
- package/dist/embedding-worker.js.map +1 -1
- package/dist/hooks/git-capture.js +3 -3
- package/dist/hooks/git-hooks.js +2 -5
- package/dist/mcp-stdio.js +3 -34
- package/dist/mcp-stdio.js.map +1 -1
- package/dist/memory/anticipation-engine.d.ts.map +1 -1
- package/dist/memory/anticipation-engine.js +10 -18
- package/dist/memory/anticipation-engine.js.map +1 -1
- package/dist/memory/auto-learner.d.ts.map +1 -1
- package/dist/memory/auto-learner.js +43 -190
- package/dist/memory/auto-learner.js.map +1 -1
- package/dist/memory/confidence-decay.d.ts.map +1 -1
- package/dist/memory/confidence-decay.js +9 -13
- package/dist/memory/confidence-decay.js.map +1 -1
- package/dist/memory/embedding-manager.d.ts.map +1 -1
- package/dist/memory/embedding-manager.js +4 -6
- package/dist/memory/embedding-manager.js.map +1 -1
- package/dist/memory/export-import.js +2 -2
- package/dist/memory/export-import.js.map +1 -1
- package/dist/memory/git-memory.d.ts.map +1 -1
- package/dist/memory/git-memory.js +26 -20
- package/dist/memory/git-memory.js.map +1 -1
- package/dist/memory/learning-rate.js +7 -8
- package/dist/memory/learning-rate.js.map +1 -1
- package/dist/memory/llm-enhancer.d.ts +14 -2
- package/dist/memory/llm-enhancer.d.ts.map +1 -1
- package/dist/memory/llm-enhancer.js +46 -66
- package/dist/memory/llm-enhancer.js.map +1 -1
- package/dist/memory/memory-cache.d.ts.map +1 -1
- package/dist/memory/memory-cache.js +0 -10
- package/dist/memory/memory-cache.js.map +1 -1
- package/dist/memory/memory-consolidator.d.ts.map +1 -1
- package/dist/memory/memory-consolidator.js +14 -20
- package/dist/memory/memory-consolidator.js.map +1 -1
- package/dist/memory/memory-decay.d.ts.map +1 -1
- package/dist/memory/memory-decay.js +52 -82
- package/dist/memory/memory-decay.js.map +1 -1
- package/dist/memory/memory-quality.d.ts +1 -1
- package/dist/memory/memory-quality.d.ts.map +1 -1
- package/dist/memory/memory-quality.js +6 -9
- package/dist/memory/memory-quality.js.map +1 -1
- package/dist/memory/memory-ranker.d.ts.map +1 -1
- package/dist/memory/memory-ranker.js +3 -12
- package/dist/memory/memory-ranker.js.map +1 -1
- package/dist/memory/meta-memory.js +3 -3
- package/dist/memory/meta-memory.js.map +1 -1
- package/dist/memory/session-tracker.d.ts +0 -2
- package/dist/memory/session-tracker.d.ts.map +1 -1
- package/dist/memory/session-tracker.js +8 -26
- package/dist/memory/session-tracker.js.map +1 -1
- package/dist/memory/temporal-engine.d.ts.map +1 -1
- package/dist/memory/temporal-engine.js +13 -9
- package/dist/memory/temporal-engine.js.map +1 -1
- package/dist/retrieval/hybrid-retriever.d.ts +2 -0
- package/dist/retrieval/hybrid-retriever.d.ts.map +1 -1
- package/dist/retrieval/hybrid-retriever.js +13 -3
- package/dist/retrieval/hybrid-retriever.js.map +1 -1
- package/dist/scanners/architecture-graph.js +2 -2
- package/dist/scanners/architecture-graph.js.map +1 -1
- package/dist/scanners/code-verifier.d.ts +0 -1
- package/dist/scanners/code-verifier.d.ts.map +1 -1
- package/dist/scanners/code-verifier.js +14 -14
- package/dist/scanners/code-verifier.js.map +1 -1
- package/dist/scanners/context-builder.d.ts.map +1 -1
- package/dist/scanners/context-builder.js +45 -33
- package/dist/scanners/context-builder.js.map +1 -1
- package/dist/scanners/export-map.js +2 -2
- package/dist/scanners/export-map.js.map +1 -1
- package/dist/scanners/project-scanner.js +2 -2
- package/dist/scanners/project-scanner.js.map +1 -1
- package/dist/security/encryption.js +1 -1
- package/dist/security/encryption.js.map +1 -1
- package/dist/security/feature-gate.d.ts.map +1 -1
- package/dist/security/feature-gate.js +20 -62
- package/dist/security/feature-gate.js.map +1 -1
- package/dist/security/license.js +35 -282
- package/dist/security/license.js.map +1 -1
- package/dist/security/rate-limiter.d.ts +3 -4
- package/dist/security/rate-limiter.d.ts.map +1 -1
- package/dist/security/rate-limiter.js +29 -11
- package/dist/security/rate-limiter.js.map +1 -1
- package/dist/server/dashboard.js +327 -166
- package/dist/server/dashboard.js.map +1 -1
- package/dist/server/mcp-handler.d.ts.map +1 -1
- package/dist/server/mcp-handler.js +827 -1002
- package/dist/server/mcp-handler.js.map +1 -1
- package/package.json +8 -18
- package/dist/memory/access-pattern-tracker.d.ts +0 -51
- package/dist/memory/access-pattern-tracker.d.ts.map +0 -1
- package/dist/memory/access-pattern-tracker.js +0 -92
- package/dist/memory/access-pattern-tracker.js.map +0 -1
- package/dist/memory/completion-resolver.d.ts +0 -38
- package/dist/memory/completion-resolver.d.ts.map +0 -1
- package/dist/memory/completion-resolver.js +0 -127
- package/dist/memory/completion-resolver.js.map +0 -1
- package/dist/memory/convention-detector.d.ts +0 -11
- package/dist/memory/convention-detector.d.ts.map +0 -1
- package/dist/memory/convention-detector.js +0 -294
- package/dist/memory/convention-detector.js.map +0 -1
- package/dist/memory/correction-detector.d.ts +0 -33
- package/dist/memory/correction-detector.d.ts.map +0 -1
- package/dist/memory/correction-detector.js +0 -129
- package/dist/memory/correction-detector.js.map +0 -1
- package/dist/memory/cross-memory-linker.d.ts +0 -18
- package/dist/memory/cross-memory-linker.d.ts.map +0 -1
- package/dist/memory/cross-memory-linker.js +0 -115
- package/dist/memory/cross-memory-linker.js.map +0 -1
- package/dist/memory/daily-diary.d.ts +0 -30
- package/dist/memory/daily-diary.d.ts.map +0 -1
- package/dist/memory/daily-diary.js +0 -159
- package/dist/memory/daily-diary.js.map +0 -1
- package/dist/memory/embedding-cache.d.ts +0 -32
- package/dist/memory/embedding-cache.d.ts.map +0 -1
- package/dist/memory/embedding-cache.js +0 -76
- package/dist/memory/embedding-cache.js.map +0 -1
- package/dist/memory/error-learner.d.ts +0 -26
- package/dist/memory/error-learner.d.ts.map +0 -1
- package/dist/memory/error-learner.js +0 -145
- package/dist/memory/error-learner.js.map +0 -1
- package/dist/memory/file-relationships.d.ts +0 -47
- package/dist/memory/file-relationships.d.ts.map +0 -1
- package/dist/memory/file-relationships.js +0 -130
- package/dist/memory/file-relationships.js.map +0 -1
- package/dist/memory/impact-analyzer.d.ts +0 -16
- package/dist/memory/impact-analyzer.d.ts.map +0 -1
- package/dist/memory/impact-analyzer.js +0 -189
- package/dist/memory/impact-analyzer.js.map +0 -1
- package/dist/memory/instructions-generator.d.ts +0 -30
- package/dist/memory/instructions-generator.d.ts.map +0 -1
- package/dist/memory/instructions-generator.js +0 -117
- package/dist/memory/instructions-generator.js.map +0 -1
- package/dist/memory/memory-export-md.d.ts +0 -12
- package/dist/memory/memory-export-md.d.ts.map +0 -1
- package/dist/memory/memory-export-md.js +0 -188
- package/dist/memory/memory-export-md.js.map +0 -1
- package/dist/memory/mmr-reranker.d.ts +0 -39
- package/dist/memory/mmr-reranker.d.ts.map +0 -1
- package/dist/memory/mmr-reranker.js +0 -115
- package/dist/memory/mmr-reranker.js.map +0 -1
- package/dist/memory/pre-flight.d.ts +0 -24
- package/dist/memory/pre-flight.d.ts.map +0 -1
- package/dist/memory/pre-flight.js +0 -121
- package/dist/memory/pre-flight.js.map +0 -1
- package/dist/memory/preference-learner.d.ts +0 -28
- package/dist/memory/preference-learner.d.ts.map +0 -1
- package/dist/memory/preference-learner.js +0 -144
- package/dist/memory/preference-learner.js.map +0 -1
- package/dist/memory/query-expansion.d.ts +0 -28
- package/dist/memory/query-expansion.d.ts.map +0 -1
- package/dist/memory/query-expansion.js +0 -140
- package/dist/memory/query-expansion.js.map +0 -1
- package/dist/memory/regression-guard.d.ts +0 -35
- package/dist/memory/regression-guard.d.ts.map +0 -1
- package/dist/memory/regression-guard.js +0 -90
- package/dist/memory/regression-guard.js.map +0 -1
- package/dist/memory/resume-work.d.ts +0 -37
- package/dist/memory/resume-work.d.ts.map +0 -1
- package/dist/memory/resume-work.js +0 -141
- package/dist/memory/resume-work.js.map +0 -1
- package/dist/memory/soul-manager.d.ts +0 -30
- package/dist/memory/soul-manager.d.ts.map +0 -1
- package/dist/memory/soul-manager.js +0 -171
- package/dist/memory/soul-manager.js.map +0 -1
- package/dist/memory/success-tracker.d.ts +0 -33
- package/dist/memory/success-tracker.d.ts.map +0 -1
- package/dist/memory/success-tracker.js +0 -75
- package/dist/memory/success-tracker.js.map +0 -1
- package/dist/memory/tool-recommender.d.ts +0 -29
- package/dist/memory/tool-recommender.d.ts.map +0 -1
- package/dist/memory/tool-recommender.js +0 -117
- package/dist/memory/tool-recommender.js.map +0 -1
- package/dist/memory/usage-stats.d.ts +0 -98
- package/dist/memory/usage-stats.d.ts.map +0 -1
- package/dist/memory/usage-stats.js +0 -345
- package/dist/memory/usage-stats.js.map +0 -1
- package/dist/utils/extract-tags.d.ts +0 -16
- package/dist/utils/extract-tags.d.ts.map +0 -1
- package/dist/utils/extract-tags.js +0 -40
- package/dist/utils/extract-tags.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resume-work.js","sourceRoot":"","sources":["../../src/memory/resume-work.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
export interface SoulEntry {
|
|
2
|
-
category: string;
|
|
3
|
-
content: string;
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* Load SOUL.md from workspace. Returns content or null.
|
|
7
|
-
*/
|
|
8
|
-
export declare function loadSoul(workspaceRoot: string): string | null;
|
|
9
|
-
/**
|
|
10
|
-
* Initialize SOUL.md with default template if it doesn't exist.
|
|
11
|
-
*/
|
|
12
|
-
export declare function initSoul(workspaceRoot: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* Update soul by appending a new entry under the right category.
|
|
15
|
-
*/
|
|
16
|
-
export declare function updateSoul(workspaceRoot: string, entry: SoulEntry): void;
|
|
17
|
-
/**
|
|
18
|
-
* Format soul content for injection into force_recall (Layer 0).
|
|
19
|
-
*/
|
|
20
|
-
export declare function formatSoul(workspaceRoot: string): string;
|
|
21
|
-
/**
|
|
22
|
-
* Auto-learn from memories to build soul entries.
|
|
23
|
-
* Called periodically — extracts strong conventions and rules.
|
|
24
|
-
*/
|
|
25
|
-
export declare function autoLearnSoul(workspaceRoot: string, memories: Array<{
|
|
26
|
-
type: string;
|
|
27
|
-
intent: string;
|
|
28
|
-
accessCount?: number;
|
|
29
|
-
}>): void;
|
|
30
|
-
//# sourceMappingURL=soul-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"soul-manager.d.ts","sourceRoot":"","sources":["../../src/memory/soul-manager.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB;AAuBD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ7D;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAWtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAoBxE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CASxD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAelI"}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.loadSoul = loadSoul;
|
|
37
|
-
exports.initSoul = initSoul;
|
|
38
|
-
exports.updateSoul = updateSoul;
|
|
39
|
-
exports.formatSoul = formatSoul;
|
|
40
|
-
exports.autoLearnSoul = autoLearnSoul;
|
|
41
|
-
/**
|
|
42
|
-
* Soul Manager — OpenClaw-style persistent identity layer.
|
|
43
|
-
*
|
|
44
|
-
* Creates and maintains a SOUL.md file in the workspace that stores:
|
|
45
|
-
* - User's coding preferences ("always use TypeScript strict mode")
|
|
46
|
-
* - Project conventions ("we use PostgreSQL, never MongoDB")
|
|
47
|
-
* - Identity ("Senior Backend Engineer working on e-commerce platform")
|
|
48
|
-
*
|
|
49
|
-
* This is injected as Layer 0 in force_recall — the very first thing the AI sees.
|
|
50
|
-
* Unlike transient memories, the Soul NEVER decays.
|
|
51
|
-
*
|
|
52
|
-
* Inspired by OpenClaw's SOUL.md / IDENTITY.md architecture.
|
|
53
|
-
*/
|
|
54
|
-
const fs = __importStar(require("fs"));
|
|
55
|
-
const path = __importStar(require("path"));
|
|
56
|
-
const DEFAULT_SOUL = `# 🧠 Cortex Soul — Who I Am
|
|
57
|
-
|
|
58
|
-
> This file is your AI's persistent identity. Edit it freely.
|
|
59
|
-
> Cortex reads this at the start of every session.
|
|
60
|
-
|
|
61
|
-
## Identity
|
|
62
|
-
- (Add your role: e.g., "Senior TypeScript developer")
|
|
63
|
-
- (Add your project: e.g., "Building an e-commerce platform")
|
|
64
|
-
|
|
65
|
-
## Conventions
|
|
66
|
-
- (Add team rules: e.g., "Always use strict TypeScript, never \`any\`")
|
|
67
|
-
- (Add stack: e.g., "PostgreSQL, Redis, Next.js 14")
|
|
68
|
-
|
|
69
|
-
## Preferences
|
|
70
|
-
- (Add style: e.g., "Prefer functional over OOP")
|
|
71
|
-
- (Add tools: e.g., "Use pnpm, not npm")
|
|
72
|
-
|
|
73
|
-
## Rules (Never Break)
|
|
74
|
-
- (Add hard rules: e.g., "Never delete user data without confirmation")
|
|
75
|
-
`;
|
|
76
|
-
/**
|
|
77
|
-
* Load SOUL.md from workspace. Returns content or null.
|
|
78
|
-
*/
|
|
79
|
-
function loadSoul(workspaceRoot) {
|
|
80
|
-
const soulPath = getSoulPath(workspaceRoot);
|
|
81
|
-
try {
|
|
82
|
-
if (fs.existsSync(soulPath)) {
|
|
83
|
-
return fs.readFileSync(soulPath, 'utf-8').trim();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
catch { /* file not readable */ }
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Initialize SOUL.md with default template if it doesn't exist.
|
|
91
|
-
*/
|
|
92
|
-
function initSoul(workspaceRoot) {
|
|
93
|
-
const soulPath = getSoulPath(workspaceRoot);
|
|
94
|
-
try {
|
|
95
|
-
const dir = path.dirname(soulPath);
|
|
96
|
-
if (!fs.existsSync(dir))
|
|
97
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
98
|
-
if (!fs.existsSync(soulPath)) {
|
|
99
|
-
fs.writeFileSync(soulPath, DEFAULT_SOUL, 'utf-8');
|
|
100
|
-
return DEFAULT_SOUL;
|
|
101
|
-
}
|
|
102
|
-
return fs.readFileSync(soulPath, 'utf-8').trim();
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
return '';
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Update soul by appending a new entry under the right category.
|
|
110
|
-
*/
|
|
111
|
-
function updateSoul(workspaceRoot, entry) {
|
|
112
|
-
const soulPath = getSoulPath(workspaceRoot);
|
|
113
|
-
try {
|
|
114
|
-
let content = loadSoul(workspaceRoot) || DEFAULT_SOUL;
|
|
115
|
-
const sectionMap = {
|
|
116
|
-
'identity': '## Identity',
|
|
117
|
-
'convention': '## Conventions',
|
|
118
|
-
'preference': '## Preferences',
|
|
119
|
-
'rule': '## Rules (Never Break)',
|
|
120
|
-
};
|
|
121
|
-
const header = sectionMap[entry.category] || '## Preferences';
|
|
122
|
-
const idx = content.indexOf(header);
|
|
123
|
-
if (idx >= 0) {
|
|
124
|
-
const insertAt = content.indexOf('\n', idx) + 1;
|
|
125
|
-
content = content.slice(0, insertAt) + `- ${entry.content}\n` + content.slice(insertAt);
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
content += `\n${header}\n- ${entry.content}\n`;
|
|
129
|
-
}
|
|
130
|
-
fs.writeFileSync(soulPath, content, 'utf-8');
|
|
131
|
-
}
|
|
132
|
-
catch { /* non-fatal */ }
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Format soul content for injection into force_recall (Layer 0).
|
|
136
|
-
*/
|
|
137
|
-
function formatSoul(workspaceRoot) {
|
|
138
|
-
const soul = loadSoul(workspaceRoot);
|
|
139
|
-
if (!soul || soul.includes('(Add your role'))
|
|
140
|
-
return ''; // Still default template
|
|
141
|
-
// Strip the header explanation, keep only the actual content
|
|
142
|
-
const lines = soul.split('\n').filter(l => l.trim() && !l.startsWith('>') && !l.includes('(Add your'));
|
|
143
|
-
if (lines.length <= 1)
|
|
144
|
-
return '';
|
|
145
|
-
return `\n## 🧬 Soul (Persistent Identity)\n${lines.join('\n')}`;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Auto-learn from memories to build soul entries.
|
|
149
|
-
* Called periodically — extracts strong conventions and rules.
|
|
150
|
-
*/
|
|
151
|
-
function autoLearnSoul(workspaceRoot, memories) {
|
|
152
|
-
try {
|
|
153
|
-
const soul = loadSoul(workspaceRoot) || '';
|
|
154
|
-
const strongConventions = memories.filter(m => (m.type === 'CONVENTION' || m.type === 'DECISION') &&
|
|
155
|
-
(m.accessCount || 0) >= 3 && // Accessed multiple times = important
|
|
156
|
-
!soul.includes(m.intent.slice(0, 40)) // Not already in soul
|
|
157
|
-
);
|
|
158
|
-
for (const m of strongConventions.slice(0, 3)) {
|
|
159
|
-
updateSoul(workspaceRoot, {
|
|
160
|
-
category: m.type === 'CONVENTION' ? 'convention' : 'preference',
|
|
161
|
-
content: m.intent.slice(0, 150),
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
catch { /* non-fatal */ }
|
|
166
|
-
}
|
|
167
|
-
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
168
|
-
function getSoulPath(workspaceRoot) {
|
|
169
|
-
return path.join(workspaceRoot, '.cortex', 'SOUL.md');
|
|
170
|
-
}
|
|
171
|
-
//# sourceMappingURL=soul-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"soul-manager.js","sourceRoot":"","sources":["../../src/memory/soul-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Success Tracker — Reinforces approaches that work.
|
|
3
|
-
*
|
|
4
|
-
* When the user says "that worked", "perfect", "great job", "exactly what I wanted",
|
|
5
|
-
* this module captures what approach was used and stores it as a proven pattern.
|
|
6
|
-
*
|
|
7
|
-
* The AI currently only learns from MISTAKES (corrections, bug fixes).
|
|
8
|
-
* But learning from SUCCESS is equally important — repeat what works.
|
|
9
|
-
*
|
|
10
|
-
* Detects:
|
|
11
|
-
* - Explicit praise: "perfect", "that's exactly right", "great"
|
|
12
|
-
* - Implicit success: "it works now", "the tests pass", "build succeeded"
|
|
13
|
-
* - Task completion: "done", "all good", "ship it"
|
|
14
|
-
*/
|
|
15
|
-
export interface SuccessSignal {
|
|
16
|
-
type: 'explicit_praise' | 'implicit_success' | 'task_completion';
|
|
17
|
-
trigger: string;
|
|
18
|
-
confidence: number;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Detect success signals from user text.
|
|
22
|
-
*/
|
|
23
|
-
export declare function detectSuccess(text: string): SuccessSignal[];
|
|
24
|
-
/**
|
|
25
|
-
* Build a success memory from the signal and the AI's recent response context.
|
|
26
|
-
* The context should describe what approach was used.
|
|
27
|
-
*/
|
|
28
|
-
export declare function buildSuccessMemory(signal: SuccessSignal, aiContext: string): {
|
|
29
|
-
intent: string;
|
|
30
|
-
reason: string;
|
|
31
|
-
tags: string[];
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=success-tracker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"success-tracker.d.ts","sourceRoot":"","sources":["../../src/memory/success-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACtB;AAyBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAiB3D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB,CAcA"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Success Tracker — Reinforces approaches that work.
|
|
4
|
-
*
|
|
5
|
-
* When the user says "that worked", "perfect", "great job", "exactly what I wanted",
|
|
6
|
-
* this module captures what approach was used and stores it as a proven pattern.
|
|
7
|
-
*
|
|
8
|
-
* The AI currently only learns from MISTAKES (corrections, bug fixes).
|
|
9
|
-
* But learning from SUCCESS is equally important — repeat what works.
|
|
10
|
-
*
|
|
11
|
-
* Detects:
|
|
12
|
-
* - Explicit praise: "perfect", "that's exactly right", "great"
|
|
13
|
-
* - Implicit success: "it works now", "the tests pass", "build succeeded"
|
|
14
|
-
* - Task completion: "done", "all good", "ship it"
|
|
15
|
-
*/
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.detectSuccess = detectSuccess;
|
|
18
|
-
exports.buildSuccessMemory = buildSuccessMemory;
|
|
19
|
-
// ─── Detection Patterns ──────────────────────────────────────────────────────
|
|
20
|
-
const PRAISE_PATTERNS = [
|
|
21
|
-
// Explicit praise (highest confidence)
|
|
22
|
-
{ regex: /\b(?:perfect|exactly\s+(?:right|what\s+i\s+(?:wanted|needed)))\b/i, type: 'explicit_praise', confidence: 0.95 },
|
|
23
|
-
{ regex: /\b(?:great\s+(?:job|work)|well\s+done|nice\s+work|awesome|excellent)\b/i, type: 'explicit_praise', confidence: 0.90 },
|
|
24
|
-
{ regex: /\bthat'?s?\s+(?:exactly|precisely|perfectly)\s+(?:right|correct|it)\b/i, type: 'explicit_praise', confidence: 0.90 },
|
|
25
|
-
{ regex: /\bthank(?:s| you)\s+(?:that|this|it)\s+(?:works?|helped|fixed)\b/i, type: 'explicit_praise', confidence: 0.85 },
|
|
26
|
-
{ regex: /\byou\s+(?:nailed|got)\s+it\b/i, type: 'explicit_praise', confidence: 0.90 },
|
|
27
|
-
// Implicit success (medium confidence)
|
|
28
|
-
{ regex: /\b(?:it|that)\s+works?\s+(?:now|perfectly|great|fine)\b/i, type: 'implicit_success', confidence: 0.85 },
|
|
29
|
-
{ regex: /\btests?\s+(?:pass|passed|passing|all\s+pass)\b/i, type: 'implicit_success', confidence: 0.90 },
|
|
30
|
-
{ regex: /\bbuild\s+(?:succeeded|passed|success|works)\b/i, type: 'implicit_success', confidence: 0.90 },
|
|
31
|
-
{ regex: /\b(?:no\s+(?:more\s+)?errors?|error\s+(?:is\s+)?(?:gone|fixed|resolved))\b/i, type: 'implicit_success', confidence: 0.85 },
|
|
32
|
-
{ regex: /\b(?:the\s+)?(?:bug|issue|problem)\s+(?:is\s+)?(?:fixed|resolved|gone)\b/i, type: 'implicit_success', confidence: 0.85 },
|
|
33
|
-
// Task completion (lower confidence — context-dependent)
|
|
34
|
-
{ regex: /\b(?:all\s+(?:good|done|set)|we'?re?\s+(?:good|done|set))\b/i, type: 'task_completion', confidence: 0.75 },
|
|
35
|
-
{ regex: /\b(?:ship\s+it|let'?s?\s+(?:merge|deploy|push))\b/i, type: 'task_completion', confidence: 0.80 },
|
|
36
|
-
{ regex: /\b(?:looks?\s+(?:good|great|perfect)|lgtm)\b/i, type: 'task_completion', confidence: 0.80 },
|
|
37
|
-
];
|
|
38
|
-
/**
|
|
39
|
-
* Detect success signals from user text.
|
|
40
|
-
*/
|
|
41
|
-
function detectSuccess(text) {
|
|
42
|
-
const signals = [];
|
|
43
|
-
const seen = new Set();
|
|
44
|
-
for (const pattern of PRAISE_PATTERNS) {
|
|
45
|
-
const match = text.match(pattern.regex);
|
|
46
|
-
if (match && !seen.has(pattern.type)) {
|
|
47
|
-
signals.push({
|
|
48
|
-
type: pattern.type,
|
|
49
|
-
trigger: match[0],
|
|
50
|
-
confidence: pattern.confidence,
|
|
51
|
-
});
|
|
52
|
-
seen.add(`${pattern.type}:${match[0].toLowerCase()}`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return signals;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Build a success memory from the signal and the AI's recent response context.
|
|
59
|
-
* The context should describe what approach was used.
|
|
60
|
-
*/
|
|
61
|
-
function buildSuccessMemory(signal, aiContext) {
|
|
62
|
-
// Extract the approach from AI context (first meaningful sentence)
|
|
63
|
-
const approach = aiContext
|
|
64
|
-
.split(/[.\n]/)
|
|
65
|
-
.map(s => s.trim())
|
|
66
|
-
.filter(s => s.length > 20 && s.length < 200)
|
|
67
|
-
.slice(0, 2)
|
|
68
|
-
.join('. ') || aiContext.slice(0, 200);
|
|
69
|
-
return {
|
|
70
|
-
intent: `[PROVEN] ${approach}`,
|
|
71
|
-
reason: `User confirmed success: "${signal.trigger}" (${signal.type}, confidence: ${signal.confidence})`,
|
|
72
|
-
tags: ['success', 'proven-pattern', signal.type],
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=success-tracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"success-tracker.js","sourceRoot":"","sources":["../../src/memory/success-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool Recommender — Suggests which Cortex tools to use based on context.
|
|
3
|
-
*
|
|
4
|
-
* THE GAP THIS FILLS:
|
|
5
|
-
* The AI has 20 tools but often doesn't know WHEN to use which.
|
|
6
|
-
* This module analyzes the current situation and recommends the right tools.
|
|
7
|
-
*
|
|
8
|
-
* Like a flight checklist: "Before takeoff: check instruments, fuel, clearance."
|
|
9
|
-
* Here: "Before editing auth.ts: run pre_check, check_impact, verify_code."
|
|
10
|
-
*/
|
|
11
|
-
export interface ToolRecommendation {
|
|
12
|
-
tool: string;
|
|
13
|
-
reason: string;
|
|
14
|
-
priority: 'must' | 'should' | 'could';
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Recommend tools based on what the user is doing.
|
|
18
|
-
*/
|
|
19
|
-
export declare function recommendTools(context: {
|
|
20
|
-
topic?: string;
|
|
21
|
-
currentFile?: string;
|
|
22
|
-
isNewConversation?: boolean;
|
|
23
|
-
recentAction?: string;
|
|
24
|
-
}): ToolRecommendation[];
|
|
25
|
-
/**
|
|
26
|
-
* Format tool recommendations for injection.
|
|
27
|
-
*/
|
|
28
|
-
export declare function formatRecommendations(recs: ToolRecommendation[]): string;
|
|
29
|
-
//# sourceMappingURL=tool-recommender.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-recommender.d.ts","sourceRoot":"","sources":["../../src/memory/tool-recommender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACzC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,kBAAkB,EAAE,CAgGvB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,MAAM,CASxE"}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Tool Recommender — Suggests which Cortex tools to use based on context.
|
|
4
|
-
*
|
|
5
|
-
* THE GAP THIS FILLS:
|
|
6
|
-
* The AI has 20 tools but often doesn't know WHEN to use which.
|
|
7
|
-
* This module analyzes the current situation and recommends the right tools.
|
|
8
|
-
*
|
|
9
|
-
* Like a flight checklist: "Before takeoff: check instruments, fuel, clearance."
|
|
10
|
-
* Here: "Before editing auth.ts: run pre_check, check_impact, verify_code."
|
|
11
|
-
*/
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.recommendTools = recommendTools;
|
|
14
|
-
exports.formatRecommendations = formatRecommendations;
|
|
15
|
-
/**
|
|
16
|
-
* Recommend tools based on what the user is doing.
|
|
17
|
-
*/
|
|
18
|
-
function recommendTools(context) {
|
|
19
|
-
const recommendations = [];
|
|
20
|
-
// ─── New conversation? Always force_recall first ────────────────
|
|
21
|
-
if (context.isNewConversation) {
|
|
22
|
-
recommendations.push({
|
|
23
|
-
tool: 'force_recall',
|
|
24
|
-
reason: 'Start of conversation — load all context (corrections, decisions, conventions)',
|
|
25
|
-
priority: 'must',
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
// ─── About to edit a file? Pre-check it ────────────────────────
|
|
29
|
-
if (context.currentFile) {
|
|
30
|
-
recommendations.push({
|
|
31
|
-
tool: 'pre_check',
|
|
32
|
-
reason: `Check conventions, gotchas, and past bugs for ${context.currentFile}`,
|
|
33
|
-
priority: 'should',
|
|
34
|
-
});
|
|
35
|
-
recommendations.push({
|
|
36
|
-
tool: 'check_impact',
|
|
37
|
-
reason: `See what depends on ${context.currentFile} before changing it`,
|
|
38
|
-
priority: 'should',
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
// ─── Topic suggests specific tools ─────────────────────────────
|
|
42
|
-
if (context.topic) {
|
|
43
|
-
const lower = context.topic.toLowerCase();
|
|
44
|
-
if (lower.includes('debug') || lower.includes('error') || lower.includes('bug') || lower.includes('fix')) {
|
|
45
|
-
recommendations.push({
|
|
46
|
-
tool: 'recall_memory',
|
|
47
|
-
reason: 'Search for similar past bugs and failed attempts',
|
|
48
|
-
priority: 'must',
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
if (lower.includes('review') || lower.includes('check')) {
|
|
52
|
-
recommendations.push({
|
|
53
|
-
tool: 'review_code',
|
|
54
|
-
reason: 'Review against stored conventions and past bug patterns',
|
|
55
|
-
priority: 'should',
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
if (lower.includes('new') || lower.includes('create') || lower.includes('build') || lower.includes('add')) {
|
|
59
|
-
recommendations.push({
|
|
60
|
-
tool: 'scan_project',
|
|
61
|
-
reason: 'Ensure project context is loaded before building new features',
|
|
62
|
-
priority: 'could',
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
if (lower.includes('import') || lower.includes('package') || lower.includes('dependency')) {
|
|
66
|
-
recommendations.push({
|
|
67
|
-
tool: 'verify_code',
|
|
68
|
-
reason: 'Check if imports are valid and packages exist',
|
|
69
|
-
priority: 'must',
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
if (lower.includes('where') || lower.includes('left off') || lower.includes('continue') || lower.includes('resume')) {
|
|
73
|
-
recommendations.push({
|
|
74
|
-
tool: 'resume_work',
|
|
75
|
-
reason: 'Recover context from previous session',
|
|
76
|
-
priority: 'must',
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
// ─── After making changes ──────────────────────────────────────
|
|
81
|
-
if (context.recentAction === 'code_written') {
|
|
82
|
-
recommendations.push({
|
|
83
|
-
tool: 'auto_learn',
|
|
84
|
-
reason: 'Store decisions and patterns from this response',
|
|
85
|
-
priority: 'must',
|
|
86
|
-
});
|
|
87
|
-
recommendations.push({
|
|
88
|
-
tool: 'verify_code',
|
|
89
|
-
reason: 'Verify imports and exports in the code you just wrote',
|
|
90
|
-
priority: 'should',
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
// Deduplicate by tool name, keeping highest priority
|
|
94
|
-
const seen = new Map();
|
|
95
|
-
const priorityOrder = { must: 0, should: 1, could: 2 };
|
|
96
|
-
for (const rec of recommendations) {
|
|
97
|
-
const existing = seen.get(rec.tool);
|
|
98
|
-
if (!existing || priorityOrder[rec.priority] < priorityOrder[existing.priority]) {
|
|
99
|
-
seen.set(rec.tool, rec);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return [...seen.values()].sort((a, b) => priorityOrder[a.priority] - priorityOrder[b.priority]);
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Format tool recommendations for injection.
|
|
106
|
-
*/
|
|
107
|
-
function formatRecommendations(recs) {
|
|
108
|
-
if (recs.length === 0)
|
|
109
|
-
return '';
|
|
110
|
-
const lines = ['## 🛠️ Recommended Tools'];
|
|
111
|
-
for (const rec of recs) {
|
|
112
|
-
const badge = rec.priority === 'must' ? '🔴' : rec.priority === 'should' ? '🟡' : '🟢';
|
|
113
|
-
lines.push(`- ${badge} **${rec.tool}** — ${rec.reason}`);
|
|
114
|
-
}
|
|
115
|
-
return lines.join('\n');
|
|
116
|
-
}
|
|
117
|
-
//# sourceMappingURL=tool-recommender.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-recommender.js","sourceRoot":"","sources":["../../src/memory/tool-recommender.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAWH,wCAqGC;AAKD,sDASC;AAtHD;;GAEG;AACH,SAAgB,cAAc,CAAC,OAK9B;IACG,MAAM,eAAe,GAAyB,EAAE,CAAC;IAEjD,mEAAmE;IACnE,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5B,eAAe,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,gFAAgF;YACxF,QAAQ,EAAE,MAAM;SACnB,CAAC,CAAC;IACP,CAAC;IAED,kEAAkE;IAClE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACtB,eAAe,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,iDAAiD,OAAO,CAAC,WAAW,EAAE;YAC9E,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAC;QACH,eAAe,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,uBAAuB,OAAO,CAAC,WAAW,qBAAqB;YACvE,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAC;IACP,CAAC;IAED,kEAAkE;IAClE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAE1C,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvG,eAAe,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,kDAAkD;gBAC1D,QAAQ,EAAE,MAAM;aACnB,CAAC,CAAC;QACP,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,eAAe,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,yDAAyD;gBACjE,QAAQ,EAAE,QAAQ;aACrB,CAAC,CAAC;QACP,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxG,eAAe,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,+DAA+D;gBACvE,QAAQ,EAAE,OAAO;aACpB,CAAC,CAAC;QACP,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACxF,eAAe,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,+CAA+C;gBACvD,QAAQ,EAAE,MAAM;aACnB,CAAC,CAAC;QACP,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClH,eAAe,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,uCAAuC;gBAC/C,QAAQ,EAAE,MAAM;aACnB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,kEAAkE;IAClE,IAAI,OAAO,CAAC,YAAY,KAAK,cAAc,EAAE,CAAC;QAC1C,eAAe,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,iDAAiD;YACzD,QAAQ,EAAE,MAAM;SACnB,CAAC,CAAC;QACH,eAAe,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,uDAAuD;YAC/D,QAAQ,EAAE,QAAQ;SACrB,CAAC,CAAC;IACP,CAAC;IAED,qDAAqD;IACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8B,CAAC;IACnD,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACvD,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpG,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,IAA0B;IAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Usage Stats — Tracks Cortex usage metrics for impact visibility.
|
|
3
|
-
*
|
|
4
|
-
* THE KEY TO ADDICTION: Users must SEE the value Cortex provides.
|
|
5
|
-
* Every force_recall response now ends with a stats footer showing:
|
|
6
|
-
* - "Cortex Saved You X times"
|
|
7
|
-
* - "Brain Health: 87/100"
|
|
8
|
-
* - Time saved estimate
|
|
9
|
-
* - Memory milestones
|
|
10
|
-
*
|
|
11
|
-
* Stats are PERSISTED in the database so they survive restarts.
|
|
12
|
-
*/
|
|
13
|
-
import { MemoryStore } from '../db/memory-store';
|
|
14
|
-
declare const lifetimeStats: {
|
|
15
|
-
totalRecalls: number;
|
|
16
|
-
totalMemoriesServed: number;
|
|
17
|
-
totalHallucationsCaught: number;
|
|
18
|
-
totalMemoriesStored: number;
|
|
19
|
-
totalSessions: number;
|
|
20
|
-
savedYouCount: number;
|
|
21
|
-
totalAutoLearns: number;
|
|
22
|
-
totalMilestonesHit: number;
|
|
23
|
-
firstUsed: number;
|
|
24
|
-
currentStreak: number;
|
|
25
|
-
longestStreak: number;
|
|
26
|
-
lastActiveDate: string;
|
|
27
|
-
totalSuccessPatterns: number;
|
|
28
|
-
totalErrorsLearned: number;
|
|
29
|
-
};
|
|
30
|
-
/** Record a recall event */
|
|
31
|
-
export declare function trackRecall(memoriesReturned: number): void;
|
|
32
|
-
/** Record a memory store event — checks for milestones */
|
|
33
|
-
export declare function trackStore(): string;
|
|
34
|
-
/** Record a hallucination catch — this is a "saved you" moment */
|
|
35
|
-
export declare function trackCatch(): void;
|
|
36
|
-
/** Record a "saved you" moment (correction recalled → mistake prevented) */
|
|
37
|
-
export declare function trackSaved(): void;
|
|
38
|
-
/** Record a scan */
|
|
39
|
-
export declare function trackScan(): void;
|
|
40
|
-
/** Record a code review */
|
|
41
|
-
export declare function trackReview(): void;
|
|
42
|
-
/** Record an auto_learn */
|
|
43
|
-
export declare function trackAutoLearn(): void;
|
|
44
|
-
/** Record a success pattern learned */
|
|
45
|
-
export declare function trackSuccess(): void;
|
|
46
|
-
/** Record an error pattern learned */
|
|
47
|
-
export declare function trackErrorLearned(): void;
|
|
48
|
-
/** Get streak display string */
|
|
49
|
-
export declare function getStreakDisplay(): string;
|
|
50
|
-
export declare function getTipOfTheDay(memoryStore: MemoryStore): string;
|
|
51
|
-
export declare function calculateBrainHealth(memoryStore: MemoryStore): {
|
|
52
|
-
score: number;
|
|
53
|
-
grade: string;
|
|
54
|
-
tips: string[];
|
|
55
|
-
};
|
|
56
|
-
export declare function estimateTimeSaved(): {
|
|
57
|
-
seconds: number;
|
|
58
|
-
formatted: string;
|
|
59
|
-
};
|
|
60
|
-
export declare function formatStatsFooter(memoryStore?: MemoryStore): string;
|
|
61
|
-
export declare function getUsageStats(): {
|
|
62
|
-
session: {
|
|
63
|
-
recallCount: number;
|
|
64
|
-
memoriesServed: number;
|
|
65
|
-
hallucationsCaught: number;
|
|
66
|
-
memoriesStored: number;
|
|
67
|
-
projectsScanned: number;
|
|
68
|
-
codeReviews: number;
|
|
69
|
-
sessionStart: number;
|
|
70
|
-
};
|
|
71
|
-
lifetime: {
|
|
72
|
-
totalRecalls: number;
|
|
73
|
-
totalMemoriesServed: number;
|
|
74
|
-
totalHallucationsCaught: number;
|
|
75
|
-
totalMemoriesStored: number;
|
|
76
|
-
totalSessions: number;
|
|
77
|
-
savedYouCount: number;
|
|
78
|
-
totalAutoLearns: number;
|
|
79
|
-
totalMilestonesHit: number;
|
|
80
|
-
firstUsed: number;
|
|
81
|
-
currentStreak: number;
|
|
82
|
-
longestStreak: number;
|
|
83
|
-
lastActiveDate: string;
|
|
84
|
-
totalSuccessPatterns: number;
|
|
85
|
-
totalErrorsLearned: number;
|
|
86
|
-
};
|
|
87
|
-
timeSaved: {
|
|
88
|
-
seconds: number;
|
|
89
|
-
formatted: string;
|
|
90
|
-
};
|
|
91
|
-
};
|
|
92
|
-
export declare function resetSessionStats(): void;
|
|
93
|
-
/** Initialize lifetime stats from stored data */
|
|
94
|
-
export declare function initLifetimeStats(stored: Partial<typeof lifetimeStats>): void;
|
|
95
|
-
/** Get raw lifetime stats for persistence */
|
|
96
|
-
export declare function getLifetimeStats(): typeof lifetimeStats;
|
|
97
|
-
export {};
|
|
98
|
-
//# sourceMappingURL=usage-stats.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usage-stats.d.ts","sourceRoot":"","sources":["../../src/memory/usage-stats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgBjD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;CAgBlB,CAAC;AAIF,4BAA4B;AAC5B,wBAAgB,WAAW,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAK1D;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,IAAI,MAAM,CAInC;AAED,kEAAkE;AAClE,wBAAgB,UAAU,IAAI,IAAI,CAIjC;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED,oBAAoB;AACpB,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED,2BAA2B;AAC3B,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,2BAA2B;AAC3B,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED,uCAAuC;AACvC,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,sCAAsC;AACtC,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AA4BD,gCAAgC;AAChC,wBAAgB,gBAAgB,IAAI,MAAM,CAQzC;AAKD,wBAAgB,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAe/D;AAMD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB,CAkDA;AA2BD,wBAAgB,iBAAiB,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAU1E;AAID,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,MAAM,CA4CnE;AAID,wBAAgB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA9DmB,MAAM;mBAAa,MAAM;;EAoExE;AAID,wBAAgB,iBAAiB,IAAI,IAAI,CAWxC;AAED,iDAAiD;AACjD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,aAAa,CAAC,GAAG,IAAI,CAU7E;AAED,6CAA6C;AAC7C,wBAAgB,gBAAgB,IAAI,OAAO,aAAa,CAEvD"}
|