kratos-memory 1.0.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/AGENTS.md +25 -0
- package/LICENSE +21 -0
- package/bin/kratos-cli +7 -0
- package/dist/cli/capture-handler.d.ts +13 -0
- package/dist/cli/capture-handler.d.ts.map +1 -0
- package/dist/cli/capture-handler.js +112 -0
- package/dist/cli/capture-handler.js.map +1 -0
- package/dist/cli/commands/ask.d.ts +5 -0
- package/dist/cli/commands/ask.d.ts.map +1 -0
- package/dist/cli/commands/ask.js +64 -0
- package/dist/cli/commands/ask.js.map +1 -0
- package/dist/cli/commands/capture.d.ts +5 -0
- package/dist/cli/commands/capture.d.ts.map +1 -0
- package/dist/cli/commands/capture.js +31 -0
- package/dist/cli/commands/capture.js.map +1 -0
- package/dist/cli/commands/forget.d.ts +3 -0
- package/dist/cli/commands/forget.d.ts.map +1 -0
- package/dist/cli/commands/forget.js +12 -0
- package/dist/cli/commands/forget.js.map +1 -0
- package/dist/cli/commands/get.d.ts +3 -0
- package/dist/cli/commands/get.d.ts.map +1 -0
- package/dist/cli/commands/get.js +28 -0
- package/dist/cli/commands/get.js.map +1 -0
- package/dist/cli/commands/hooks.d.ts +2 -0
- package/dist/cli/commands/hooks.d.ts.map +1 -0
- package/dist/cli/commands/hooks.js +136 -0
- package/dist/cli/commands/hooks.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +5 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +56 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/recent.d.ts +6 -0
- package/dist/cli/commands/recent.d.ts.map +1 -0
- package/dist/cli/commands/recent.js +21 -0
- package/dist/cli/commands/recent.js.map +1 -0
- package/dist/cli/commands/save.d.ts +8 -0
- package/dist/cli/commands/save.d.ts.map +1 -0
- package/dist/cli/commands/save.js +31 -0
- package/dist/cli/commands/save.js.map +1 -0
- package/dist/cli/commands/scan.d.ts +5 -0
- package/dist/cli/commands/scan.d.ts.map +1 -0
- package/dist/cli/commands/scan.js +28 -0
- package/dist/cli/commands/scan.js.map +1 -0
- package/dist/cli/commands/search.d.ts +8 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +45 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/status.d.ts +3 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +89 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/switch.d.ts +3 -0
- package/dist/cli/commands/switch.d.ts.map +1 -0
- package/dist/cli/commands/switch.js +18 -0
- package/dist/cli/commands/switch.js.map +1 -0
- package/dist/cli/core.d.ts +15 -0
- package/dist/cli/core.d.ts.map +1 -0
- package/dist/cli/core.js +18 -0
- package/dist/cli/core.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +157 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/output.d.ts +22 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +74 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/compression/factory.d.ts +6 -0
- package/dist/compression/factory.d.ts.map +1 -0
- package/dist/compression/factory.js +8 -0
- package/dist/compression/factory.js.map +1 -0
- package/dist/compression/index.d.ts +10 -0
- package/dist/compression/index.d.ts.map +1 -0
- package/dist/compression/index.js +2 -0
- package/dist/compression/index.js.map +1 -0
- package/dist/compression/rule-compressor.d.ts +9 -0
- package/dist/compression/rule-compressor.d.ts.map +1 -0
- package/dist/compression/rule-compressor.js +43 -0
- package/dist/compression/rule-compressor.js.map +1 -0
- package/dist/memory-server/concept-store-enhanced.d.ts +88 -0
- package/dist/memory-server/concept-store-enhanced.d.ts.map +1 -0
- package/dist/memory-server/concept-store-enhanced.js +392 -0
- package/dist/memory-server/concept-store-enhanced.js.map +1 -0
- package/dist/memory-server/concept-store.d.ts +58 -0
- package/dist/memory-server/concept-store.d.ts.map +1 -0
- package/dist/memory-server/concept-store.js +329 -0
- package/dist/memory-server/concept-store.js.map +1 -0
- package/dist/memory-server/context-broker.d.ts +63 -0
- package/dist/memory-server/context-broker.d.ts.map +1 -0
- package/dist/memory-server/context-broker.js +340 -0
- package/dist/memory-server/context-broker.js.map +1 -0
- package/dist/memory-server/database.d.ts +108 -0
- package/dist/memory-server/database.d.ts.map +1 -0
- package/dist/memory-server/database.js +690 -0
- package/dist/memory-server/database.js.map +1 -0
- package/dist/project-manager.d.ts +77 -0
- package/dist/project-manager.d.ts.map +1 -0
- package/dist/project-manager.js +226 -0
- package/dist/project-manager.js.map +1 -0
- package/dist/security/data-retention.d.ts +104 -0
- package/dist/security/data-retention.d.ts.map +1 -0
- package/dist/security/data-retention.js +444 -0
- package/dist/security/data-retention.js.map +1 -0
- package/dist/security/encryption.d.ts +48 -0
- package/dist/security/encryption.d.ts.map +1 -0
- package/dist/security/encryption.js +131 -0
- package/dist/security/encryption.js.map +1 -0
- package/dist/security/pii-detector.d.ts +61 -0
- package/dist/security/pii-detector.d.ts.map +1 -0
- package/dist/security/pii-detector.js +220 -0
- package/dist/security/pii-detector.js.map +1 -0
- package/dist/types/index.d.ts +151 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +10 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export class Output {
|
|
3
|
+
static success(msg) {
|
|
4
|
+
console.log(chalk.green('✓') + ' ' + msg);
|
|
5
|
+
}
|
|
6
|
+
static error(msg) {
|
|
7
|
+
console.error(chalk.red('✗') + ' ' + msg);
|
|
8
|
+
}
|
|
9
|
+
static warn(msg) {
|
|
10
|
+
console.log(chalk.yellow('⚠') + ' ' + msg);
|
|
11
|
+
}
|
|
12
|
+
static info(msg) {
|
|
13
|
+
console.log(chalk.blue('ℹ') + ' ' + msg);
|
|
14
|
+
}
|
|
15
|
+
static dim(msg) {
|
|
16
|
+
console.log(chalk.dim(msg));
|
|
17
|
+
}
|
|
18
|
+
static header(msg) {
|
|
19
|
+
console.log('\n' + chalk.bold.cyan(msg));
|
|
20
|
+
console.log(chalk.dim('─'.repeat(Math.min(msg.length + 4, 60))));
|
|
21
|
+
}
|
|
22
|
+
static json(data) {
|
|
23
|
+
console.log(JSON.stringify(data, null, 2));
|
|
24
|
+
}
|
|
25
|
+
static table(rows) {
|
|
26
|
+
if (rows.length === 0) {
|
|
27
|
+
Output.dim(' (no results)');
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const keys = Object.keys(rows[0]);
|
|
31
|
+
const widths = new Map();
|
|
32
|
+
// Calculate column widths
|
|
33
|
+
for (const key of keys) {
|
|
34
|
+
let maxWidth = key.length;
|
|
35
|
+
for (const row of rows) {
|
|
36
|
+
const val = String(row[key] ?? '');
|
|
37
|
+
maxWidth = Math.max(maxWidth, val.length);
|
|
38
|
+
}
|
|
39
|
+
widths.set(key, Math.min(maxWidth, 50));
|
|
40
|
+
}
|
|
41
|
+
// Print header
|
|
42
|
+
const headerLine = keys.map(k => chalk.bold(k.padEnd(widths.get(k)))).join(' ');
|
|
43
|
+
console.log(' ' + headerLine);
|
|
44
|
+
const divider = keys.map(k => '─'.repeat(widths.get(k))).join('──');
|
|
45
|
+
console.log(' ' + chalk.dim(divider));
|
|
46
|
+
// Print rows
|
|
47
|
+
for (const row of rows) {
|
|
48
|
+
const line = keys.map(k => {
|
|
49
|
+
const val = String(row[k] ?? '');
|
|
50
|
+
return val.substring(0, widths.get(k)).padEnd(widths.get(k));
|
|
51
|
+
}).join(' ');
|
|
52
|
+
console.log(' ' + line);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
static memoryCard(memory) {
|
|
56
|
+
const date = memory.created_at
|
|
57
|
+
? new Date(memory.created_at).toLocaleString()
|
|
58
|
+
: 'unknown';
|
|
59
|
+
console.log('');
|
|
60
|
+
console.log(chalk.bold.white(` ${memory.summary}`) +
|
|
61
|
+
(memory.score !== undefined ? chalk.dim(` (score: ${memory.score.toFixed(2)})`) : ''));
|
|
62
|
+
console.log(chalk.dim(` ID: ${memory.id} | ${date} | importance: ${memory.importance ?? '?'}`));
|
|
63
|
+
if (memory.tags && memory.tags.length > 0) {
|
|
64
|
+
console.log(' ' + memory.tags.map(t => chalk.cyan(`#${t}`)).join(' '));
|
|
65
|
+
}
|
|
66
|
+
if (memory.paths && memory.paths.length > 0) {
|
|
67
|
+
console.log(' ' + chalk.dim('paths: ' + memory.paths.join(', ')));
|
|
68
|
+
}
|
|
69
|
+
if (memory.snippet) {
|
|
70
|
+
console.log(' ' + chalk.dim(memory.snippet.substring(0, 120)));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/compression/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAE7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/compression/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,cAAc,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface Compressor {
|
|
2
|
+
compress(text: string, context?: string): Promise<CompressedResult>;
|
|
3
|
+
}
|
|
4
|
+
export interface CompressedResult {
|
|
5
|
+
summary: string;
|
|
6
|
+
original_length: number;
|
|
7
|
+
compressed_length: number;
|
|
8
|
+
compression_ratio: number;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compression/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compression/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Compressor, CompressedResult } from './index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Rule-based compressor — always available, no external dependencies.
|
|
4
|
+
* Extracts key information and truncates intelligently.
|
|
5
|
+
*/
|
|
6
|
+
export declare class RuleCompressor implements Compressor {
|
|
7
|
+
compress(text: string): Promise<CompressedResult>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=rule-compressor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-compressor.d.ts","sourceRoot":"","sources":["../../src/compression/rule-compressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE/D;;;GAGG;AACH,qBAAa,cAAe,YAAW,UAAU;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA8CxD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rule-based compressor — always available, no external dependencies.
|
|
3
|
+
* Extracts key information and truncates intelligently.
|
|
4
|
+
*/
|
|
5
|
+
export class RuleCompressor {
|
|
6
|
+
async compress(text) {
|
|
7
|
+
const original_length = text.length;
|
|
8
|
+
// Strategy:
|
|
9
|
+
// 1. Extract first meaningful sentence
|
|
10
|
+
// 2. Extract key technical terms (file paths, function names, etc.)
|
|
11
|
+
// 3. Truncate to ~200 chars
|
|
12
|
+
const lines = text.split('\n').filter(l => l.trim().length > 0);
|
|
13
|
+
// Get first meaningful line
|
|
14
|
+
let firstLine = lines[0] || text.substring(0, 100);
|
|
15
|
+
firstLine = firstLine.trim();
|
|
16
|
+
// Extract file paths
|
|
17
|
+
const pathMatches = text.match(/(?:\/[\w.-]+)+/g) || [];
|
|
18
|
+
const uniquePaths = [...new Set(pathMatches)].slice(0, 3);
|
|
19
|
+
// Extract technical terms (CamelCase, snake_case, function calls)
|
|
20
|
+
const techTerms = text.match(/\b[A-Z][a-z]+[A-Z]\w+\b|\b\w+_\w+\b|\b\w+\(\)/g) || [];
|
|
21
|
+
const uniqueTerms = [...new Set(techTerms)].slice(0, 5);
|
|
22
|
+
// Build summary
|
|
23
|
+
let summary = firstLine;
|
|
24
|
+
// Add technical context if the first line is short
|
|
25
|
+
if (summary.length < 100 && uniqueTerms.length > 0) {
|
|
26
|
+
summary += ' [' + uniqueTerms.join(', ') + ']';
|
|
27
|
+
}
|
|
28
|
+
if (summary.length < 150 && uniquePaths.length > 0) {
|
|
29
|
+
summary += ' (' + uniquePaths.join(', ') + ')';
|
|
30
|
+
}
|
|
31
|
+
// Truncate to 200 chars
|
|
32
|
+
if (summary.length > 200) {
|
|
33
|
+
summary = summary.substring(0, 197) + '...';
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
summary,
|
|
37
|
+
original_length,
|
|
38
|
+
compressed_length: summary.length,
|
|
39
|
+
compression_ratio: 1 - summary.length / original_length,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=rule-compressor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-compressor.js","sourceRoot":"","sources":["../../src/compression/rule-compressor.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,cAAc;IACzB,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;QAEpC,YAAY;QACZ,uCAAuC;QACvC,oEAAoE;QACpE,4BAA4B;QAE5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEhE,4BAA4B;QAC5B,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnD,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QAE7B,qBAAqB;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1D,kEAAkE;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,IAAI,EAAE,CAAC;QACrF,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAExD,gBAAgB;QAChB,IAAI,OAAO,GAAG,SAAS,CAAC;QAExB,mDAAmD;QACnD,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACjD,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACjD,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACzB,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QAC9C,CAAC;QAED,OAAO;YACL,OAAO;YACP,eAAe;YACf,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,iBAAiB,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,eAAe;SACxD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
export interface Concept {
|
|
2
|
+
id: string;
|
|
3
|
+
title: string;
|
|
4
|
+
body: string;
|
|
5
|
+
tags: string[];
|
|
6
|
+
importance: number;
|
|
7
|
+
created_at: number;
|
|
8
|
+
updated_at: number;
|
|
9
|
+
usage_count?: number;
|
|
10
|
+
last_used?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface ConceptSearchResult {
|
|
13
|
+
concept: Concept;
|
|
14
|
+
score: number;
|
|
15
|
+
snippet?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* ENHANCED Concept Store - 10/10 Features
|
|
19
|
+
*
|
|
20
|
+
* NEW FEATURES:
|
|
21
|
+
* - Auto-discovery: Automatically finds and suggests relevant concepts
|
|
22
|
+
* - Usage tracking: Tracks which concepts are most useful
|
|
23
|
+
* - Smart ranking: Combines relevance, importance, and usage
|
|
24
|
+
* - Cross-project learning: Optionally share valuable concepts
|
|
25
|
+
* - Concept relationships: Link related concepts
|
|
26
|
+
*/
|
|
27
|
+
export declare class ConceptStoreEnhanced {
|
|
28
|
+
private db;
|
|
29
|
+
private static instances;
|
|
30
|
+
private projectId;
|
|
31
|
+
private discoveryCache;
|
|
32
|
+
private constructor();
|
|
33
|
+
static getInstance(projectId?: string): ConceptStoreEnhanced;
|
|
34
|
+
private initializeEnhancedSchema;
|
|
35
|
+
/**
|
|
36
|
+
* Enhanced save with auto-discovery and relationship detection
|
|
37
|
+
*/
|
|
38
|
+
save(params: {
|
|
39
|
+
title: string;
|
|
40
|
+
body: string;
|
|
41
|
+
tags?: string[];
|
|
42
|
+
importance?: number;
|
|
43
|
+
source?: 'manual' | 'discovered' | 'imported';
|
|
44
|
+
relatedTo?: string[];
|
|
45
|
+
}): Concept;
|
|
46
|
+
/**
|
|
47
|
+
* ENHANCED search with smart ranking
|
|
48
|
+
*/
|
|
49
|
+
search(params: {
|
|
50
|
+
q: string;
|
|
51
|
+
k?: number;
|
|
52
|
+
allowlist?: string[];
|
|
53
|
+
projectId?: string;
|
|
54
|
+
includeRelated?: boolean;
|
|
55
|
+
boostRecent?: boolean;
|
|
56
|
+
}): ConceptSearchResult[];
|
|
57
|
+
/**
|
|
58
|
+
* Auto-discover concepts from text
|
|
59
|
+
*/
|
|
60
|
+
autoDiscover(text: string, context?: string): Promise<Concept[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Track concept usage for smart ranking
|
|
63
|
+
*/
|
|
64
|
+
private trackUsage;
|
|
65
|
+
/**
|
|
66
|
+
* Add relationships between concepts
|
|
67
|
+
*/
|
|
68
|
+
private addRelationships;
|
|
69
|
+
/**
|
|
70
|
+
* Auto-discover related concepts
|
|
71
|
+
*/
|
|
72
|
+
private autoDiscoverRelated;
|
|
73
|
+
/**
|
|
74
|
+
* Enrich results with related concepts
|
|
75
|
+
*/
|
|
76
|
+
private enrichWithRelated;
|
|
77
|
+
/**
|
|
78
|
+
* Auto-suggest concepts for a project based on context
|
|
79
|
+
*/
|
|
80
|
+
suggestForProject(projectId: string, context: string): Promise<Concept[]>;
|
|
81
|
+
private generateConceptId;
|
|
82
|
+
private generateTitle;
|
|
83
|
+
private extractTags;
|
|
84
|
+
private rowToConcept;
|
|
85
|
+
get(id: string): Concept | null;
|
|
86
|
+
close(): void;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=concept-store-enhanced.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concept-store-enhanced.d.ts","sourceRoot":"","sources":["../../src/memory-server/concept-store-enhanced.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAgD;IACxE,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,cAAc,CAAqC;IAE3D,OAAO;IAeP,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,oBAAoB;IAS5D,OAAO,CAAC,wBAAwB;IAqFhC;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;QAC9C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,GAAG,OAAO;IA6CX;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE;QACb,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,GAAG,mBAAmB,EAAE;IAyEzB;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA+BtE;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAyB/E,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IAcpB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAM/B,KAAK,IAAI,IAAI;CAGd"}
|