claude-cognitive 0.1.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/LICENSE +21 -0
- package/README.md +256 -0
- package/bin/claude-cognitive.js +9 -0
- package/dist/agents/context.d.ts +40 -0
- package/dist/agents/context.d.ts.map +1 -0
- package/dist/agents/context.js +144 -0
- package/dist/agents/context.js.map +1 -0
- package/dist/agents/index.d.ts +9 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +11 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/loader.d.ts +48 -0
- package/dist/agents/loader.d.ts.map +1 -0
- package/dist/agents/loader.js +157 -0
- package/dist/agents/loader.js.map +1 -0
- package/dist/agents/templates.d.ts +51 -0
- package/dist/agents/templates.d.ts.map +1 -0
- package/dist/agents/templates.js +186 -0
- package/dist/agents/templates.js.map +1 -0
- package/dist/agents/types.d.ts +52 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +6 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/cli/commands/config.d.ts +10 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +22 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/index.d.ts +17 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +17 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +10 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +109 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/install.d.ts +10 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +440 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/learn.d.ts +10 -0
- package/dist/cli/commands/learn.d.ts.map +1 -0
- package/dist/cli/commands/learn.js +33 -0
- package/dist/cli/commands/learn.js.map +1 -0
- package/dist/cli/commands/recall.d.ts +10 -0
- package/dist/cli/commands/recall.d.ts.map +1 -0
- package/dist/cli/commands/recall.js +52 -0
- package/dist/cli/commands/recall.js.map +1 -0
- package/dist/cli/commands/reflect.d.ts +10 -0
- package/dist/cli/commands/reflect.d.ts.map +1 -0
- package/dist/cli/commands/reflect.js +48 -0
- package/dist/cli/commands/reflect.js.map +1 -0
- package/dist/cli/commands/semantic.d.ts +10 -0
- package/dist/cli/commands/semantic.d.ts.map +1 -0
- package/dist/cli/commands/semantic.js +67 -0
- package/dist/cli/commands/semantic.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +10 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +61 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/status.d.ts +10 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +44 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +10 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +260 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/commands/uninstall.d.ts +10 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.js +205 -0
- package/dist/cli/commands/uninstall.js.map +1 -0
- package/dist/cli/commands/update-bank.d.ts +10 -0
- package/dist/cli/commands/update-bank.d.ts.map +1 -0
- package/dist/cli/commands/update-bank.js +129 -0
- package/dist/cli/commands/update-bank.js.map +1 -0
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +56 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/utils/errors.d.ts +42 -0
- package/dist/cli/utils/errors.d.ts.map +1 -0
- package/dist/cli/utils/errors.js +78 -0
- package/dist/cli/utils/errors.js.map +1 -0
- package/dist/cli/utils/index.d.ts +9 -0
- package/dist/cli/utils/index.d.ts.map +1 -0
- package/dist/cli/utils/index.js +7 -0
- package/dist/cli/utils/index.js.map +1 -0
- package/dist/cli/utils/output.d.ts +90 -0
- package/dist/cli/utils/output.d.ts.map +1 -0
- package/dist/cli/utils/output.js +164 -0
- package/dist/cli/utils/output.js.map +1 -0
- package/dist/client.d.ts +200 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +447 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +44 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +264 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +72 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +188 -0
- package/dist/errors.js.map +1 -0
- package/dist/events.d.ts +148 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +115 -0
- package/dist/events.js.map +1 -0
- package/dist/hooks/index.d.ts +7 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +7 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/inject-context.d.ts +18 -0
- package/dist/hooks/inject-context.d.ts.map +1 -0
- package/dist/hooks/inject-context.js +57 -0
- package/dist/hooks/inject-context.js.map +1 -0
- package/dist/hooks/process-session.d.ts +18 -0
- package/dist/hooks/process-session.d.ts.map +1 -0
- package/dist/hooks/process-session.js +119 -0
- package/dist/hooks/process-session.js.map +1 -0
- package/dist/index.d.ts +63 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/learn/analyzers/git.d.ts +62 -0
- package/dist/learn/analyzers/git.d.ts.map +1 -0
- package/dist/learn/analyzers/git.js +183 -0
- package/dist/learn/analyzers/git.js.map +1 -0
- package/dist/learn/analyzers/index.d.ts +15 -0
- package/dist/learn/analyzers/index.d.ts.map +1 -0
- package/dist/learn/analyzers/index.js +10 -0
- package/dist/learn/analyzers/index.js.map +1 -0
- package/dist/learn/analyzers/package.d.ts +57 -0
- package/dist/learn/analyzers/package.d.ts.map +1 -0
- package/dist/learn/analyzers/package.js +245 -0
- package/dist/learn/analyzers/package.js.map +1 -0
- package/dist/learn/analyzers/readme.d.ts +27 -0
- package/dist/learn/analyzers/readme.d.ts.map +1 -0
- package/dist/learn/analyzers/readme.js +163 -0
- package/dist/learn/analyzers/readme.js.map +1 -0
- package/dist/learn/analyzers/source.d.ts +70 -0
- package/dist/learn/analyzers/source.d.ts.map +1 -0
- package/dist/learn/analyzers/source.js +231 -0
- package/dist/learn/analyzers/source.js.map +1 -0
- package/dist/learn/analyzers/structure.d.ts +39 -0
- package/dist/learn/analyzers/structure.d.ts.map +1 -0
- package/dist/learn/analyzers/structure.js +172 -0
- package/dist/learn/analyzers/structure.js.map +1 -0
- package/dist/learn/extractor.d.ts +76 -0
- package/dist/learn/extractor.d.ts.map +1 -0
- package/dist/learn/extractor.js +302 -0
- package/dist/learn/extractor.js.map +1 -0
- package/dist/learn/index.d.ts +31 -0
- package/dist/learn/index.d.ts.map +1 -0
- package/dist/learn/index.js +165 -0
- package/dist/learn/index.js.map +1 -0
- package/dist/mcp/handlers.d.ts +23 -0
- package/dist/mcp/handlers.d.ts.map +1 -0
- package/dist/mcp/handlers.js +124 -0
- package/dist/mcp/handlers.js.map +1 -0
- package/dist/mcp/index.d.ts +32 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +40 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +79 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +277 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +59 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +43 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/types.d.ts +65 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +6 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/mind.d.ts +250 -0
- package/dist/mind.d.ts.map +1 -0
- package/dist/mind.js +637 -0
- package/dist/mind.js.map +1 -0
- package/dist/promotion.d.ts +112 -0
- package/dist/promotion.d.ts.map +1 -0
- package/dist/promotion.js +196 -0
- package/dist/promotion.js.map +1 -0
- package/dist/retry.d.ts +70 -0
- package/dist/retry.d.ts.map +1 -0
- package/dist/retry.js +122 -0
- package/dist/retry.js.map +1 -0
- package/dist/semantic.d.ts +202 -0
- package/dist/semantic.d.ts.map +1 -0
- package/dist/semantic.js +424 -0
- package/dist/semantic.js.map +1 -0
- package/dist/types.d.ts +363 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +30 -0
- package/dist/types.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directory structure analyzer.
|
|
3
|
+
* @module learn/analyzers/structure
|
|
4
|
+
*/
|
|
5
|
+
import { readdir, stat } from "node:fs/promises";
|
|
6
|
+
import { join, extname } from "node:path";
|
|
7
|
+
/** Directories to skip during analysis */
|
|
8
|
+
const SKIP_DIRS = new Set([
|
|
9
|
+
"node_modules",
|
|
10
|
+
".git",
|
|
11
|
+
".next",
|
|
12
|
+
".nuxt",
|
|
13
|
+
"dist",
|
|
14
|
+
"build",
|
|
15
|
+
"out",
|
|
16
|
+
"coverage",
|
|
17
|
+
".cache",
|
|
18
|
+
"__pycache__",
|
|
19
|
+
".venv",
|
|
20
|
+
"venv",
|
|
21
|
+
]);
|
|
22
|
+
/** Known source directory names */
|
|
23
|
+
const SOURCE_DIRS = new Set([
|
|
24
|
+
"src",
|
|
25
|
+
"lib",
|
|
26
|
+
"app",
|
|
27
|
+
"source",
|
|
28
|
+
"packages",
|
|
29
|
+
"modules",
|
|
30
|
+
]);
|
|
31
|
+
/** Known test directory names */
|
|
32
|
+
const TEST_DIRS = new Set([
|
|
33
|
+
"test",
|
|
34
|
+
"tests",
|
|
35
|
+
"__tests__",
|
|
36
|
+
"spec",
|
|
37
|
+
"specs",
|
|
38
|
+
"e2e",
|
|
39
|
+
"integration",
|
|
40
|
+
]);
|
|
41
|
+
/** Known config file patterns */
|
|
42
|
+
const CONFIG_PATTERNS = [
|
|
43
|
+
/^tsconfig.*\.json$/,
|
|
44
|
+
/^\.eslintrc/,
|
|
45
|
+
/^\.prettierrc/,
|
|
46
|
+
/^vite\.config\./,
|
|
47
|
+
/^webpack\.config\./,
|
|
48
|
+
/^next\.config\./,
|
|
49
|
+
/^tailwind\.config\./,
|
|
50
|
+
/^jest\.config\./,
|
|
51
|
+
/^vitest\.config\./,
|
|
52
|
+
/^\.env/,
|
|
53
|
+
/^docker-compose/,
|
|
54
|
+
/^Dockerfile/,
|
|
55
|
+
];
|
|
56
|
+
/** Known entry point patterns */
|
|
57
|
+
const ENTRY_PATTERNS = [
|
|
58
|
+
/^index\.[jt]sx?$/,
|
|
59
|
+
/^main\.[jt]sx?$/,
|
|
60
|
+
/^app\.[jt]sx?$/,
|
|
61
|
+
/^server\.[jt]sx?$/,
|
|
62
|
+
/^cli\.[jt]sx?$/,
|
|
63
|
+
];
|
|
64
|
+
/**
|
|
65
|
+
* Analyze directory structure of a project.
|
|
66
|
+
*
|
|
67
|
+
* @param projectPath - Project root directory
|
|
68
|
+
* @param maxDepth - Maximum depth to scan (default: 4)
|
|
69
|
+
* @returns Structure analysis
|
|
70
|
+
*/
|
|
71
|
+
export async function analyzeStructure(projectPath, maxDepth = 4) {
|
|
72
|
+
const result = {
|
|
73
|
+
sourceDirectories: [],
|
|
74
|
+
testDirectories: [],
|
|
75
|
+
configFiles: [],
|
|
76
|
+
entryPoints: [],
|
|
77
|
+
totalFiles: 0,
|
|
78
|
+
fileTypes: {},
|
|
79
|
+
topLevelDirs: [],
|
|
80
|
+
};
|
|
81
|
+
await scanDirectory(projectPath, result, 0, maxDepth, "");
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Recursively scan a directory.
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
88
|
+
async function scanDirectory(dir, result, depth, maxDepth, relativePath) {
|
|
89
|
+
if (depth > maxDepth)
|
|
90
|
+
return;
|
|
91
|
+
let entries;
|
|
92
|
+
try {
|
|
93
|
+
entries = await readdir(dir);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return; // Can't read directory
|
|
97
|
+
}
|
|
98
|
+
for (const entry of entries) {
|
|
99
|
+
if (SKIP_DIRS.has(entry))
|
|
100
|
+
continue;
|
|
101
|
+
const fullPath = join(dir, entry);
|
|
102
|
+
const relPath = relativePath ? `${relativePath}/${entry}` : entry;
|
|
103
|
+
let entryStat;
|
|
104
|
+
try {
|
|
105
|
+
entryStat = await stat(fullPath);
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
continue; // Can't stat entry
|
|
109
|
+
}
|
|
110
|
+
if (entryStat.isDirectory()) {
|
|
111
|
+
// Track top-level directories
|
|
112
|
+
if (depth === 0) {
|
|
113
|
+
result.topLevelDirs.push(entry);
|
|
114
|
+
}
|
|
115
|
+
// Identify source/test directories
|
|
116
|
+
if (SOURCE_DIRS.has(entry.toLowerCase())) {
|
|
117
|
+
result.sourceDirectories.push(relPath);
|
|
118
|
+
}
|
|
119
|
+
if (TEST_DIRS.has(entry.toLowerCase())) {
|
|
120
|
+
result.testDirectories.push(relPath);
|
|
121
|
+
}
|
|
122
|
+
// Recurse
|
|
123
|
+
await scanDirectory(fullPath, result, depth + 1, maxDepth, relPath);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// Track file
|
|
127
|
+
result.totalFiles++;
|
|
128
|
+
// Track file types
|
|
129
|
+
const ext = extname(entry).toLowerCase() || "(no ext)";
|
|
130
|
+
result.fileTypes[ext] = (result.fileTypes[ext] || 0) + 1;
|
|
131
|
+
// Check for config files (only at root or config dirs)
|
|
132
|
+
if (depth <= 1 && CONFIG_PATTERNS.some((p) => p.test(entry))) {
|
|
133
|
+
result.configFiles.push(relPath);
|
|
134
|
+
}
|
|
135
|
+
// Check for entry points
|
|
136
|
+
if (ENTRY_PATTERNS.some((p) => p.test(entry))) {
|
|
137
|
+
// Prioritize entry points in source directories
|
|
138
|
+
const inSource = result.sourceDirectories.some((sd) => relPath.startsWith(sd + "/") || relativePath === sd);
|
|
139
|
+
if (inSource || depth <= 1) {
|
|
140
|
+
result.entryPoints.push(relPath);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Get a summary of the project structure.
|
|
148
|
+
*
|
|
149
|
+
* @param analysis - Structure analysis result
|
|
150
|
+
* @returns Human-readable structure summary
|
|
151
|
+
*/
|
|
152
|
+
export function getStructureSummary(analysis) {
|
|
153
|
+
const parts = [];
|
|
154
|
+
if (analysis.sourceDirectories.length > 0) {
|
|
155
|
+
parts.push(`Source: ${analysis.sourceDirectories.join(", ")}`);
|
|
156
|
+
}
|
|
157
|
+
if (analysis.testDirectories.length > 0) {
|
|
158
|
+
parts.push(`Tests: ${analysis.testDirectories.join(", ")}`);
|
|
159
|
+
}
|
|
160
|
+
// Top file types
|
|
161
|
+
const topTypes = Object.entries(analysis.fileTypes)
|
|
162
|
+
.sort((a, b) => b[1] - a[1])
|
|
163
|
+
.slice(0, 5)
|
|
164
|
+
.map(([ext, count]) => `${ext}(${count})`)
|
|
165
|
+
.join(", ");
|
|
166
|
+
if (topTypes) {
|
|
167
|
+
parts.push(`Files: ${topTypes}`);
|
|
168
|
+
}
|
|
169
|
+
parts.push(`Total: ${analysis.totalFiles} files`);
|
|
170
|
+
return parts.join("; ");
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=structure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../../../src/learn/analyzers/structure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fact extraction from analysis results.
|
|
3
|
+
* @module learn/extractor
|
|
4
|
+
*/
|
|
5
|
+
import type { ExtractedFact } from "../types.js";
|
|
6
|
+
import type { ReadmeAnalysis } from "./analyzers/readme.js";
|
|
7
|
+
import type { PackageAnalysis } from "./analyzers/package.js";
|
|
8
|
+
import type { StructureAnalysis } from "./analyzers/structure.js";
|
|
9
|
+
import type { GitAnalysis } from "./analyzers/git.js";
|
|
10
|
+
import type { SourceAnalysis } from "./analyzers/source.js";
|
|
11
|
+
/**
|
|
12
|
+
* Combined analysis results for fact extraction.
|
|
13
|
+
*/
|
|
14
|
+
export interface AnalysisResults {
|
|
15
|
+
readme?: ReadmeAnalysis | null;
|
|
16
|
+
package?: PackageAnalysis | null;
|
|
17
|
+
structure?: StructureAnalysis | null;
|
|
18
|
+
git?: GitAnalysis | null;
|
|
19
|
+
source?: SourceAnalysis | null;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Fact extractor interface.
|
|
23
|
+
*/
|
|
24
|
+
export interface FactExtractor {
|
|
25
|
+
/**
|
|
26
|
+
* Extract facts from analysis results.
|
|
27
|
+
*
|
|
28
|
+
* @param analysis - Combined analysis results
|
|
29
|
+
* @returns Array of extracted facts
|
|
30
|
+
*/
|
|
31
|
+
extractFacts(analysis: AnalysisResults): ExtractedFact[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Default fact extractor implementation.
|
|
35
|
+
*
|
|
36
|
+
* Converts analysis results into structured facts for storage in Hindsight.
|
|
37
|
+
*/
|
|
38
|
+
export declare class DefaultFactExtractor implements FactExtractor {
|
|
39
|
+
/**
|
|
40
|
+
* Extract facts from analysis results.
|
|
41
|
+
*
|
|
42
|
+
* @param analysis - Combined analysis results
|
|
43
|
+
* @returns Array of extracted facts
|
|
44
|
+
*/
|
|
45
|
+
extractFacts(analysis: AnalysisResults): ExtractedFact[];
|
|
46
|
+
/**
|
|
47
|
+
* Extract facts from README analysis.
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
private extractFromReadme;
|
|
51
|
+
/**
|
|
52
|
+
* Extract facts from package.json analysis.
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
private extractFromPackage;
|
|
56
|
+
/**
|
|
57
|
+
* Extract facts from structure analysis.
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
private extractFromStructure;
|
|
61
|
+
/**
|
|
62
|
+
* Extract facts from git history analysis.
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
private extractFromGit;
|
|
66
|
+
/**
|
|
67
|
+
* Extract facts from source code analysis.
|
|
68
|
+
* @internal
|
|
69
|
+
*/
|
|
70
|
+
private extractFromSource;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Create a default fact extractor.
|
|
74
|
+
*/
|
|
75
|
+
export declare function createFactExtractor(): FactExtractor;
|
|
76
|
+
//# sourceMappingURL=extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../src/learn/extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACrC,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,aAAa,EAAE,CAAC;CAC1D;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IACxD;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,aAAa,EAAE;IA+BxD;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAoG1B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAoD5B;;;OAGG;IACH,OAAO,CAAC,cAAc;IA2CtB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CAyC1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAEnD"}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fact extraction from analysis results.
|
|
3
|
+
* @module learn/extractor
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Default fact extractor implementation.
|
|
7
|
+
*
|
|
8
|
+
* Converts analysis results into structured facts for storage in Hindsight.
|
|
9
|
+
*/
|
|
10
|
+
export class DefaultFactExtractor {
|
|
11
|
+
/**
|
|
12
|
+
* Extract facts from analysis results.
|
|
13
|
+
*
|
|
14
|
+
* @param analysis - Combined analysis results
|
|
15
|
+
* @returns Array of extracted facts
|
|
16
|
+
*/
|
|
17
|
+
extractFacts(analysis) {
|
|
18
|
+
const facts = [];
|
|
19
|
+
// Extract from README
|
|
20
|
+
if (analysis.readme) {
|
|
21
|
+
facts.push(...this.extractFromReadme(analysis.readme));
|
|
22
|
+
}
|
|
23
|
+
// Extract from package.json
|
|
24
|
+
if (analysis.package) {
|
|
25
|
+
facts.push(...this.extractFromPackage(analysis.package));
|
|
26
|
+
}
|
|
27
|
+
// Extract from structure
|
|
28
|
+
if (analysis.structure) {
|
|
29
|
+
facts.push(...this.extractFromStructure(analysis.structure));
|
|
30
|
+
}
|
|
31
|
+
// Extract from git history
|
|
32
|
+
if (analysis.git) {
|
|
33
|
+
facts.push(...this.extractFromGit(analysis.git));
|
|
34
|
+
}
|
|
35
|
+
// Extract from source analysis
|
|
36
|
+
if (analysis.source) {
|
|
37
|
+
facts.push(...this.extractFromSource(analysis.source));
|
|
38
|
+
}
|
|
39
|
+
return facts;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Extract facts from README analysis.
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
extractFromReadme(readme) {
|
|
46
|
+
const facts = [];
|
|
47
|
+
// Project description
|
|
48
|
+
if (readme.projectDescription) {
|
|
49
|
+
facts.push({
|
|
50
|
+
content: `Project description: ${readme.projectDescription}`,
|
|
51
|
+
context: "Extracted from README.md",
|
|
52
|
+
category: "decisions",
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
// Features
|
|
56
|
+
if (readme.features.length > 0) {
|
|
57
|
+
facts.push({
|
|
58
|
+
content: `Key features: ${readme.features.slice(0, 5).join("; ")}`,
|
|
59
|
+
context: "Extracted from README.md features section",
|
|
60
|
+
category: "decisions",
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// Setup instructions
|
|
64
|
+
if (readme.setupInstructions.length > 0) {
|
|
65
|
+
facts.push({
|
|
66
|
+
content: `Setup commands: ${readme.setupInstructions.slice(0, 3).join(", ")}`,
|
|
67
|
+
context: "Extracted from README.md installation section",
|
|
68
|
+
category: "decisions",
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return facts;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Extract facts from package.json analysis.
|
|
75
|
+
* @internal
|
|
76
|
+
*/
|
|
77
|
+
extractFromPackage(pkg) {
|
|
78
|
+
const facts = [];
|
|
79
|
+
// Project identity
|
|
80
|
+
if (pkg.description) {
|
|
81
|
+
facts.push({
|
|
82
|
+
content: `Package ${pkg.name}: ${pkg.description}`,
|
|
83
|
+
context: "From package.json",
|
|
84
|
+
category: "decisions",
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
// Tech stack - frameworks
|
|
88
|
+
const frameworks = pkg.dependencies.filter((d) => d.category === "framework");
|
|
89
|
+
if (frameworks.length > 0) {
|
|
90
|
+
facts.push({
|
|
91
|
+
content: `Framework stack: ${frameworks.map((f) => f.name).join(", ")}`,
|
|
92
|
+
context: "From package.json dependencies",
|
|
93
|
+
category: "stack",
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
// Tech stack - UI
|
|
97
|
+
const ui = pkg.dependencies.filter((d) => d.category === "ui");
|
|
98
|
+
if (ui.length > 0) {
|
|
99
|
+
facts.push({
|
|
100
|
+
content: `UI libraries: ${ui.map((u) => u.name).join(", ")}`,
|
|
101
|
+
context: "From package.json dependencies",
|
|
102
|
+
category: "stack",
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
// Tech stack - state management
|
|
106
|
+
const state = pkg.dependencies.filter((d) => d.category === "state");
|
|
107
|
+
if (state.length > 0) {
|
|
108
|
+
facts.push({
|
|
109
|
+
content: `State management: ${state.map((s) => s.name).join(", ")}`,
|
|
110
|
+
context: "From package.json dependencies",
|
|
111
|
+
category: "stack",
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
// Tech stack - database
|
|
115
|
+
const db = pkg.dependencies.filter((d) => d.category === "database");
|
|
116
|
+
if (db.length > 0) {
|
|
117
|
+
facts.push({
|
|
118
|
+
content: `Database/ORM: ${db.map((d) => d.name).join(", ")}`,
|
|
119
|
+
context: "From package.json dependencies",
|
|
120
|
+
category: "stack",
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
// Development tools
|
|
124
|
+
const build = pkg.devDependencies.filter((d) => d.category === "build");
|
|
125
|
+
if (build.length > 0) {
|
|
126
|
+
facts.push({
|
|
127
|
+
content: `Build tools: ${build.map((b) => b.name).join(", ")}`,
|
|
128
|
+
context: "From package.json devDependencies",
|
|
129
|
+
category: "stack",
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
// Testing tools
|
|
133
|
+
const testing = pkg.devDependencies.filter((d) => d.category === "testing");
|
|
134
|
+
if (testing.length > 0) {
|
|
135
|
+
facts.push({
|
|
136
|
+
content: `Testing tools: ${testing.map((t) => t.name).join(", ")}`,
|
|
137
|
+
context: "From package.json devDependencies",
|
|
138
|
+
category: "stack",
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
// Key scripts
|
|
142
|
+
const importantScripts = ["test", "build", "dev", "start", "lint"];
|
|
143
|
+
const scripts = Object.entries(pkg.scripts)
|
|
144
|
+
.filter(([name]) => importantScripts.includes(name))
|
|
145
|
+
.map(([name, cmd]) => `${name}: ${cmd}`);
|
|
146
|
+
if (scripts.length > 0) {
|
|
147
|
+
facts.push({
|
|
148
|
+
content: `NPM scripts: ${scripts.join("; ")}`,
|
|
149
|
+
context: "From package.json scripts",
|
|
150
|
+
category: "decisions",
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
// TypeScript detection
|
|
154
|
+
const hasTS = pkg.devDependencies.some((d) => d.name === "typescript") ||
|
|
155
|
+
pkg.dependencies.some((d) => d.name === "typescript");
|
|
156
|
+
if (hasTS) {
|
|
157
|
+
facts.push({
|
|
158
|
+
content: "Language: TypeScript",
|
|
159
|
+
context: "TypeScript found in dependencies",
|
|
160
|
+
category: "stack",
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
return facts;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Extract facts from structure analysis.
|
|
167
|
+
* @internal
|
|
168
|
+
*/
|
|
169
|
+
extractFromStructure(structure) {
|
|
170
|
+
const facts = [];
|
|
171
|
+
// Project structure
|
|
172
|
+
if (structure.sourceDirectories.length > 0 || structure.testDirectories.length > 0) {
|
|
173
|
+
const parts = [];
|
|
174
|
+
if (structure.sourceDirectories.length > 0) {
|
|
175
|
+
parts.push(`source in ${structure.sourceDirectories.join(", ")}`);
|
|
176
|
+
}
|
|
177
|
+
if (structure.testDirectories.length > 0) {
|
|
178
|
+
parts.push(`tests in ${structure.testDirectories.join(", ")}`);
|
|
179
|
+
}
|
|
180
|
+
facts.push({
|
|
181
|
+
content: `Project structure: ${parts.join("; ")}`,
|
|
182
|
+
context: "Analyzed directory structure",
|
|
183
|
+
category: "structure",
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
// Entry points
|
|
187
|
+
if (structure.entryPoints.length > 0) {
|
|
188
|
+
facts.push({
|
|
189
|
+
content: `Entry points: ${structure.entryPoints.slice(0, 5).join(", ")}`,
|
|
190
|
+
context: "Identified from file naming patterns",
|
|
191
|
+
category: "structure",
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
// Config files
|
|
195
|
+
if (structure.configFiles.length > 0) {
|
|
196
|
+
facts.push({
|
|
197
|
+
content: `Configuration files: ${structure.configFiles.slice(0, 10).join(", ")}`,
|
|
198
|
+
context: "Found in project root",
|
|
199
|
+
category: "structure",
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
// File type distribution
|
|
203
|
+
const topTypes = Object.entries(structure.fileTypes)
|
|
204
|
+
.sort((a, b) => b[1] - a[1])
|
|
205
|
+
.slice(0, 5);
|
|
206
|
+
if (topTypes.length > 0) {
|
|
207
|
+
facts.push({
|
|
208
|
+
content: `File types: ${topTypes.map(([ext, count]) => `${ext}(${count})`).join(", ")}`,
|
|
209
|
+
context: "From file extension analysis",
|
|
210
|
+
category: "structure",
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
return facts;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Extract facts from git history analysis.
|
|
217
|
+
* @internal
|
|
218
|
+
*/
|
|
219
|
+
extractFromGit(git) {
|
|
220
|
+
const facts = [];
|
|
221
|
+
// Team size
|
|
222
|
+
if (git.contributors.length > 0) {
|
|
223
|
+
facts.push({
|
|
224
|
+
content: `Team: ${git.contributors.length} contributors (${git.contributors.slice(0, 5).join(", ")})`,
|
|
225
|
+
context: "From git history",
|
|
226
|
+
category: "history",
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
// Commit convention
|
|
230
|
+
if (git.commitPatterns.messageConvention) {
|
|
231
|
+
facts.push({
|
|
232
|
+
content: `Commit convention: ${git.commitPatterns.messageConvention}`,
|
|
233
|
+
context: "Detected from commit messages",
|
|
234
|
+
category: "patterns",
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
// Significant commits (decisions)
|
|
238
|
+
for (const commit of git.significantCommits.slice(0, 5)) {
|
|
239
|
+
facts.push({
|
|
240
|
+
content: `Historical decision: ${commit.message}`,
|
|
241
|
+
context: `From git commit ${commit.hash} on ${commit.date}`,
|
|
242
|
+
category: "history",
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
// File hotspots
|
|
246
|
+
if (git.hotspots.length > 0) {
|
|
247
|
+
const topHotspots = git.hotspots.slice(0, 5);
|
|
248
|
+
facts.push({
|
|
249
|
+
content: `Most active files: ${topHotspots.map((h) => h.file).join(", ")}`,
|
|
250
|
+
context: "Based on git commit frequency",
|
|
251
|
+
category: "patterns",
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
return facts;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Extract facts from source code analysis.
|
|
258
|
+
* @internal
|
|
259
|
+
*/
|
|
260
|
+
extractFromSource(source) {
|
|
261
|
+
const facts = [];
|
|
262
|
+
// Coding conventions
|
|
263
|
+
facts.push({
|
|
264
|
+
content: `Naming convention: ${source.conventions.namingStyle}`,
|
|
265
|
+
context: "Detected from source code analysis",
|
|
266
|
+
category: "patterns",
|
|
267
|
+
});
|
|
268
|
+
facts.push({
|
|
269
|
+
content: `Import style: ${source.conventions.importStyle} imports preferred`,
|
|
270
|
+
context: "Detected from source code analysis",
|
|
271
|
+
category: "patterns",
|
|
272
|
+
});
|
|
273
|
+
facts.push({
|
|
274
|
+
content: `Error handling: ${source.conventions.errorHandling}`,
|
|
275
|
+
context: "Detected from source code analysis",
|
|
276
|
+
category: "patterns",
|
|
277
|
+
});
|
|
278
|
+
if (source.conventions.prefersAsync) {
|
|
279
|
+
facts.push({
|
|
280
|
+
content: "Async/await is preferred over raw Promises",
|
|
281
|
+
context: "Detected from source code analysis",
|
|
282
|
+
category: "patterns",
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
// Code patterns
|
|
286
|
+
for (const pattern of source.patterns) {
|
|
287
|
+
facts.push({
|
|
288
|
+
content: `Code pattern: ${pattern.description}`,
|
|
289
|
+
context: `Found in: ${pattern.examples.slice(0, 3).join(", ")}`,
|
|
290
|
+
category: "patterns",
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
return facts;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Create a default fact extractor.
|
|
298
|
+
*/
|
|
299
|
+
export function createFactExtractor() {
|
|
300
|
+
return new DefaultFactExtractor();
|
|
301
|
+
}
|
|
302
|
+
//# sourceMappingURL=extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../src/learn/extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiCH;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;IAC/B;;;;;OAKG;IACH,YAAY,CAAC,QAAyB;QACpC,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,sBAAsB;QACtB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;QAED,4BAA4B;QAC5B,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,yBAAyB;QACzB,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,2BAA2B;QAC3B,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,+BAA+B;QAC/B,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,MAAsB;QAC9C,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,sBAAsB;QACtB,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,wBAAwB,MAAM,CAAC,kBAAkB,EAAE;gBAC5D,OAAO,EAAE,0BAA0B;gBACnC,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;QACL,CAAC;QAED,WAAW;QACX,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,iBAAiB,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAClE,OAAO,EAAE,2CAA2C;gBACpD,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;QACL,CAAC;QAED,qBAAqB;QACrB,IAAI,MAAM,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,mBAAmB,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC7E,OAAO,EAAE,+CAA+C;gBACxD,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACK,kBAAkB,CAAC,GAAoB;QAC7C,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,mBAAmB;QACnB,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,WAAW,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,WAAW,EAAE;gBAClD,OAAO,EAAE,mBAAmB;gBAC5B,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;QACL,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC;QAC9E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,oBAAoB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACvE,OAAO,EAAE,gCAAgC;gBACzC,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;QACL,CAAC;QAED,kBAAkB;QAClB,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;QAC/D,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC5D,OAAO,EAAE,gCAAgC;gBACzC,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;QACL,CAAC;QAED,gCAAgC;QAChC,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QACrE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,qBAAqB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACnE,OAAO,EAAE,gCAAgC;gBACzC,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;QACL,CAAC;QAED,wBAAwB;QACxB,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;QACrE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC5D,OAAO,EAAE,gCAAgC;gBACzC,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QACxE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,gBAAgB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC9D,OAAO,EAAE,mCAAmC;gBAC5C,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QAC5E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,kBAAkB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAClE,OAAO,EAAE,mCAAmC;gBAC5C,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;QACL,CAAC;QAED,cAAc;QACd,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACnD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,gBAAgB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC7C,OAAO,EAAE,2BAA2B;gBACpC,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;QACL,CAAC;QAED,uBAAuB;QACvB,MAAM,KAAK,GACT,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;YACxD,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QACxD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,sBAAsB;gBAC/B,OAAO,EAAE,kCAAkC;gBAC3C,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACK,oBAAoB,CAAC,SAA4B;QACvD,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,oBAAoB;QACpB,IAAI,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnF,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,SAAS,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3C,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,SAAS,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,KAAK,CAAC,IAAI,CAAC,YAAY,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,sBAAsB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACjD,OAAO,EAAE,8BAA8B;gBACvC,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;QACL,CAAC;QAED,eAAe;QACf,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,iBAAiB,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACxE,OAAO,EAAE,sCAAsC;gBAC/C,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;QACL,CAAC;QAED,eAAe;QACf,IAAI,SAAS,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,wBAAwB,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChF,OAAO,EAAE,uBAAuB;gBAChC,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;QACL,CAAC;QAED,yBAAyB;QACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;aACjD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,eAAe,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACvF,OAAO,EAAE,8BAA8B;gBACvC,QAAQ,EAAE,WAAW;aACtB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,GAAgB;QACrC,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,YAAY;QACZ,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,SAAS,GAAG,CAAC,YAAY,CAAC,MAAM,kBAAkB,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACrG,OAAO,EAAE,kBAAkB;gBAC3B,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,IAAI,GAAG,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,sBAAsB,GAAG,CAAC,cAAc,CAAC,iBAAiB,EAAE;gBACrE,OAAO,EAAE,+BAA+B;gBACxC,QAAQ,EAAE,UAAU;aACrB,CAAC,CAAC;QACL,CAAC;QAED,kCAAkC;QAClC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,wBAAwB,MAAM,CAAC,OAAO,EAAE;gBACjD,OAAO,EAAE,mBAAmB,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,EAAE;gBAC3D,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,sBAAsB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC1E,OAAO,EAAE,+BAA+B;gBACxC,QAAQ,EAAE,UAAU;aACrB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,MAAsB;QAC9C,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,qBAAqB;QACrB,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,sBAAsB,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE;YAC/D,OAAO,EAAE,oCAAoC;YAC7C,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,iBAAiB,MAAM,CAAC,WAAW,CAAC,WAAW,oBAAoB;YAC5E,OAAO,EAAE,oCAAoC;YAC7C,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,mBAAmB,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE;YAC9D,OAAO,EAAE,oCAAoC;YAC7C,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,4CAA4C;gBACrD,OAAO,EAAE,oCAAoC;gBAC7C,QAAQ,EAAE,UAAU;aACrB,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,iBAAiB,OAAO,CAAC,WAAW,EAAE;gBAC/C,OAAO,EAAE,aAAa,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC/D,QAAQ,EAAE,UAAU;aACrB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,oBAAoB,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Learn operation - bootstrap memory from existing codebase.
|
|
3
|
+
* @module learn
|
|
4
|
+
*/
|
|
5
|
+
import type { HindsightClient } from "../client.js";
|
|
6
|
+
import type { LearnOptions, LearnResult } from "../types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Bootstrap memory from an existing codebase.
|
|
9
|
+
*
|
|
10
|
+
* This operation analyzes the project and stores facts in Hindsight,
|
|
11
|
+
* solving the cold start problem when adopting claude-cognitive.
|
|
12
|
+
*
|
|
13
|
+
* @param client - HindsightClient instance
|
|
14
|
+
* @param bankId - Memory bank ID
|
|
15
|
+
* @param projectPath - Project root directory
|
|
16
|
+
* @param options - Learn options
|
|
17
|
+
* @returns Learn result with summary and stats
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const result = await learn(client, 'my-project', '/path/to/project', {
|
|
22
|
+
* depth: 'full',
|
|
23
|
+
* includeGitHistory: true
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* console.log(result.summary);
|
|
27
|
+
* // "Learned 47 world facts from 123 files, formed 5 opinions"
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function learn(client: HindsightClient, bankId: string, projectPath: string, options?: LearnOptions): Promise<LearnResult>;
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/learn/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAU,YAAY,EAAE,WAAW,EAAW,MAAM,aAAa,CAAC;AAoB9E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,KAAK,CACzB,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAmEtB"}
|