cliper-memory 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/README.md +268 -0
- package/dist/auth/config.d.ts +13 -0
- package/dist/auth/config.d.ts.map +1 -0
- package/dist/auth/config.js +33 -0
- package/dist/auth/config.js.map +1 -0
- package/dist/auth/github.d.ts +5 -0
- package/dist/auth/github.d.ts.map +1 -0
- package/dist/auth/github.js +38 -0
- package/dist/auth/github.js.map +1 -0
- package/dist/cognee/legacyClient.d.ts +20 -0
- package/dist/cognee/legacyClient.d.ts.map +1 -0
- package/dist/cognee/legacyClient.js +409 -0
- package/dist/cognee/legacyClient.js.map +1 -0
- package/dist/commands/analyze.d.ts +6 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +216 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +85 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/export.d.ts +6 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +64 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/init.d.ts +7 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +220 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/push.d.ts +2 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +94 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/scope.d.ts +2 -0
- package/dist/commands/scope.d.ts.map +1 -0
- package/dist/commands/scope.js +124 -0
- package/dist/commands/scope.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +100 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync.d.ts +6 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +83 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/view.d.ts +2 -0
- package/dist/commands/view.d.ts.map +1 -0
- package/dist/commands/view.js +60 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/context/builder.d.ts +19 -0
- package/dist/context/builder.d.ts.map +1 -0
- package/dist/context/builder.js +143 -0
- package/dist/context/builder.js.map +1 -0
- package/dist/gaps/detector.d.ts +10 -0
- package/dist/gaps/detector.d.ts.map +1 -0
- package/dist/gaps/detector.js +139 -0
- package/dist/gaps/detector.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +101 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/cognee/client.d.ts +32 -0
- package/dist/providers/cognee/client.d.ts.map +1 -0
- package/dist/providers/cognee/client.js +189 -0
- package/dist/providers/cognee/client.js.map +1 -0
- package/dist/providers/cognee/provider.d.ts +7 -0
- package/dist/providers/cognee/provider.d.ts.map +1 -0
- package/dist/providers/cognee/provider.js +17 -0
- package/dist/providers/cognee/provider.js.map +1 -0
- package/dist/providers/memoryProvider.d.ts +4 -0
- package/dist/providers/memoryProvider.d.ts.map +1 -0
- package/dist/providers/memoryProvider.js +3 -0
- package/dist/providers/memoryProvider.js.map +1 -0
- package/dist/resolver/urlFetcher.d.ts +9 -0
- package/dist/resolver/urlFetcher.d.ts.map +1 -0
- package/dist/resolver/urlFetcher.js +134 -0
- package/dist/resolver/urlFetcher.js.map +1 -0
- package/dist/scanner/dependencies.d.ts +14 -0
- package/dist/scanner/dependencies.d.ts.map +1 -0
- package/dist/scanner/dependencies.js +203 -0
- package/dist/scanner/dependencies.js.map +1 -0
- package/dist/scanner/fileContent.d.ts +8 -0
- package/dist/scanner/fileContent.d.ts.map +1 -0
- package/dist/scanner/fileContent.js +133 -0
- package/dist/scanner/fileContent.js.map +1 -0
- package/dist/scanner/fileTree.d.ts +2 -0
- package/dist/scanner/fileTree.d.ts.map +1 -0
- package/dist/scanner/fileTree.js +152 -0
- package/dist/scanner/fileTree.js.map +1 -0
- package/dist/scanner/gitContext.d.ts +25 -0
- package/dist/scanner/gitContext.d.ts.map +1 -0
- package/dist/scanner/gitContext.js +76 -0
- package/dist/scanner/gitContext.js.map +1 -0
- package/dist/scanner/github.d.ts +5 -0
- package/dist/scanner/github.d.ts.map +1 -0
- package/dist/scanner/github.js +30 -0
- package/dist/scanner/github.js.map +1 -0
- package/dist/scanner/githubIssues.d.ts +12 -0
- package/dist/scanner/githubIssues.d.ts.map +1 -0
- package/dist/scanner/githubIssues.js +31 -0
- package/dist/scanner/githubIssues.js.map +1 -0
- package/dist/scanner/githubPullRequests.d.ts +17 -0
- package/dist/scanner/githubPullRequests.d.ts.map +1 -0
- package/dist/scanner/githubPullRequests.js +57 -0
- package/dist/scanner/githubPullRequests.js.map +1 -0
- package/dist/scanner/semanticLabels.d.ts +12 -0
- package/dist/scanner/semanticLabels.d.ts.map +1 -0
- package/dist/scanner/semanticLabels.js +185 -0
- package/dist/scanner/semanticLabels.js.map +1 -0
- package/dist/scope/autoScope.d.ts +2 -0
- package/dist/scope/autoScope.d.ts.map +1 -0
- package/dist/scope/autoScope.js +233 -0
- package/dist/scope/autoScope.js.map +1 -0
- package/dist/scope/config.d.ts +10 -0
- package/dist/scope/config.d.ts.map +1 -0
- package/dist/scope/config.js +71 -0
- package/dist/scope/config.js.map +1 -0
- package/dist/sdk/cliper.d.ts +8 -0
- package/dist/sdk/cliper.d.ts.map +1 -0
- package/dist/sdk/cliper.js +11 -0
- package/dist/sdk/cliper.js.map +1 -0
- package/dist/sdk/memory/memory.d.ts +11 -0
- package/dist/sdk/memory/memory.d.ts.map +1 -0
- package/dist/sdk/memory/memory.js +3 -0
- package/dist/sdk/memory/memory.js.map +1 -0
- package/dist/sdk/memoryBuilder.d.ts +56 -0
- package/dist/sdk/memoryBuilder.d.ts.map +1 -0
- package/dist/sdk/memoryBuilder.js +821 -0
- package/dist/sdk/memoryBuilder.js.map +1 -0
- package/dist/sdk/memoryDeduplicator.d.ts +5 -0
- package/dist/sdk/memoryDeduplicator.d.ts.map +1 -0
- package/dist/sdk/memoryDeduplicator.js +14 -0
- package/dist/sdk/memoryDeduplicator.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,139 @@
|
|
|
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.detectGaps = detectGaps;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
// Detect functions/classes with no JSDoc or comments above them
|
|
40
|
+
function detectUndocumentedCode(file) {
|
|
41
|
+
const gaps = [];
|
|
42
|
+
const lines = file.content.split("\n");
|
|
43
|
+
for (let i = 0; i < lines.length; i++) {
|
|
44
|
+
const line = lines[i].trim();
|
|
45
|
+
const prevLine = i > 0 ? lines[i - 1].trim() : "";
|
|
46
|
+
const isFunctionOrClass = /^(export\s+)?(async\s+)?function\s+\w+/.test(line) ||
|
|
47
|
+
/^(export\s+)?(default\s+)?class\s+\w+/.test(line) ||
|
|
48
|
+
/^(export\s+)?const\s+\w+\s*=\s*(async\s+)?\(/.test(line);
|
|
49
|
+
if (isFunctionOrClass) {
|
|
50
|
+
const hasComment = prevLine.startsWith("//") ||
|
|
51
|
+
prevLine.startsWith("*") ||
|
|
52
|
+
prevLine.startsWith("/*") ||
|
|
53
|
+
prevLine.startsWith("/**") ||
|
|
54
|
+
prevLine === "*/";
|
|
55
|
+
if (!hasComment) {
|
|
56
|
+
gaps.push({
|
|
57
|
+
type: "undocumented_function",
|
|
58
|
+
file: file.relativePath,
|
|
59
|
+
line: i + 1,
|
|
60
|
+
description: `Undocumented: "${line.slice(0, 60)}..."`,
|
|
61
|
+
severity: "low",
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return gaps.slice(0, 5); // Cap at 5 per file to avoid noise
|
|
67
|
+
}
|
|
68
|
+
// Detect TODO/FIXME/HACK comments
|
|
69
|
+
function detectTodos(file) {
|
|
70
|
+
const gaps = [];
|
|
71
|
+
const lines = file.content.split("\n");
|
|
72
|
+
for (let i = 0; i < lines.length; i++) {
|
|
73
|
+
const line = lines[i];
|
|
74
|
+
if (/TODO|FIXME|HACK|XXX|TEMP/i.test(line)) {
|
|
75
|
+
gaps.push({
|
|
76
|
+
type: "todo_fixme",
|
|
77
|
+
file: file.relativePath,
|
|
78
|
+
line: i + 1,
|
|
79
|
+
description: line.trim().slice(0, 100),
|
|
80
|
+
severity: /FIXME|HACK/i.test(line) ? "high" : "medium",
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return gaps;
|
|
85
|
+
}
|
|
86
|
+
// Detect env vars referenced in code but not in .env.example
|
|
87
|
+
function detectMissingEnvVars(files, projectRoot) {
|
|
88
|
+
const gaps = [];
|
|
89
|
+
const envExamplePath = path.join(projectRoot, ".env.example");
|
|
90
|
+
let knownEnvVars = new Set();
|
|
91
|
+
if (fs.existsSync(envExamplePath)) {
|
|
92
|
+
const content = fs.readFileSync(envExamplePath, "utf-8");
|
|
93
|
+
for (const line of content.split("\n")) {
|
|
94
|
+
const match = line.match(/^([A-Z_][A-Z0-9_]*)\s*=/);
|
|
95
|
+
if (match)
|
|
96
|
+
knownEnvVars.add(match[1]);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const ENV_REGEX = /process\.env\.([A-Z_][A-Z0-9_]*)/g;
|
|
100
|
+
for (const file of files) {
|
|
101
|
+
let match;
|
|
102
|
+
while ((match = ENV_REGEX.exec(file.content)) !== null) {
|
|
103
|
+
const varName = match[1];
|
|
104
|
+
if (!knownEnvVars.has(varName)) {
|
|
105
|
+
gaps.push({
|
|
106
|
+
type: "missing_env_var",
|
|
107
|
+
file: file.relativePath,
|
|
108
|
+
description: `process.env.${varName} used but not in .env.example`,
|
|
109
|
+
severity: "high",
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Deduplicate by description
|
|
115
|
+
const seen = new Set();
|
|
116
|
+
return gaps.filter((g) => {
|
|
117
|
+
if (seen.has(g.description))
|
|
118
|
+
return false;
|
|
119
|
+
seen.add(g.description);
|
|
120
|
+
return true;
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
function detectGaps(files, projectRoot) {
|
|
124
|
+
const gaps = [];
|
|
125
|
+
for (const file of files) {
|
|
126
|
+
if (file.truncated)
|
|
127
|
+
continue;
|
|
128
|
+
const ext = path.extname(file.relativePath);
|
|
129
|
+
if ([".ts", ".tsx", ".js", ".jsx"].includes(ext)) {
|
|
130
|
+
gaps.push(...detectUndocumentedCode(file));
|
|
131
|
+
gaps.push(...detectTodos(file));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
gaps.push(...detectMissingEnvVars(files, projectRoot));
|
|
135
|
+
// Sort by severity
|
|
136
|
+
const order = { high: 0, medium: 1, low: 2 };
|
|
137
|
+
return gaps.sort((a, b) => order[a.severity] - order[b.severity]);
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/gaps/detector.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
const dotenv = __importStar(require("dotenv"));
|
|
38
|
+
dotenv.config();
|
|
39
|
+
const commander_1 = require("commander");
|
|
40
|
+
const cliper_1 = require("./sdk/cliper");
|
|
41
|
+
const sync_1 = require("./commands/sync");
|
|
42
|
+
const scope_1 = require("./commands/scope");
|
|
43
|
+
const status_1 = require("./commands/status");
|
|
44
|
+
const export_1 = require("./commands/export");
|
|
45
|
+
const analyze_1 = require("./commands/analyze");
|
|
46
|
+
const auth_1 = require("./commands/auth");
|
|
47
|
+
const push_1 = require("./commands/push");
|
|
48
|
+
const view_1 = require("./commands/view");
|
|
49
|
+
const { version } = require("../package.json");
|
|
50
|
+
const sdk = new cliper_1.Cliper();
|
|
51
|
+
commander_1.program
|
|
52
|
+
.name("cliper")
|
|
53
|
+
.description("AI context doc generator for developers")
|
|
54
|
+
.version(version);
|
|
55
|
+
commander_1.program
|
|
56
|
+
.command("init")
|
|
57
|
+
.description("Scan project and generate context document")
|
|
58
|
+
.option("-p, --path <path>", "Project root path", process.cwd())
|
|
59
|
+
.option("--max-file-size <kb>", "Max file size to include in KB", (v) => parseInt(v), 50)
|
|
60
|
+
.action((options) => sdk.init(options));
|
|
61
|
+
commander_1.program
|
|
62
|
+
.command("sync")
|
|
63
|
+
.description("Refresh stale sections of the context document")
|
|
64
|
+
.option("--watch", "Auto-refresh on git events")
|
|
65
|
+
.action(sync_1.syncCommand);
|
|
66
|
+
commander_1.program
|
|
67
|
+
.command("scope")
|
|
68
|
+
.description("Manage active scope")
|
|
69
|
+
.argument("<action>", "add | remove | watch | list")
|
|
70
|
+
.argument("[path]", "File or directory path")
|
|
71
|
+
.action(scope_1.scopeCommand);
|
|
72
|
+
commander_1.program
|
|
73
|
+
.command("status")
|
|
74
|
+
.description("Show what is fresh, stale, and in scope")
|
|
75
|
+
.action(status_1.statusCommand);
|
|
76
|
+
commander_1.program
|
|
77
|
+
.command("export")
|
|
78
|
+
.description("Print context doc to stdout")
|
|
79
|
+
.option("--format <format>", "Output format: md or txt", "md")
|
|
80
|
+
.action(export_1.exportCommand);
|
|
81
|
+
commander_1.program
|
|
82
|
+
.command("analyze")
|
|
83
|
+
.description("Analyze context doc and generate optimized AI prompt")
|
|
84
|
+
.requiredOption("--model <model>", "Target model: claude or chatgpt")
|
|
85
|
+
.action(analyze_1.analyzeCommand);
|
|
86
|
+
commander_1.program
|
|
87
|
+
.command("auth [provider]")
|
|
88
|
+
.description("Authenticate with Cliper or external providers (e.g. github)")
|
|
89
|
+
.action((provider) => {
|
|
90
|
+
(0, auth_1.authCommand)(provider);
|
|
91
|
+
});
|
|
92
|
+
commander_1.program
|
|
93
|
+
.command("push")
|
|
94
|
+
.description("Push context doc to Cliper dashboard")
|
|
95
|
+
.action(push_1.pushCommand);
|
|
96
|
+
commander_1.program
|
|
97
|
+
.command("view")
|
|
98
|
+
.description("Open project dashboard in browser")
|
|
99
|
+
.action(view_1.viewCommand);
|
|
100
|
+
commander_1.program.parse(process.argv);
|
|
101
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,+CAAiC;AACjC,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,yCAAoC;AACpC,yCAAsC;AACtC,0CAA8C;AAC9C,4CAAgD;AAChD,8CAAkD;AAClD,8CAAkD;AAClD,gDAAoD;AACpD,0CAA8C;AAC9C,0CAA8C;AAC9C,0CAA8C;AAE9C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,IAAI,eAAM,EAAE,CAAC;AAEzB,mBAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,yCAAyC,CAAC;KACtD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,mBAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC/D,MAAM,CAAC,sBAAsB,EAAE,gCAAgC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;KACxF,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAE1C,mBAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,SAAS,EAAE,4BAA4B,CAAC;KAC/C,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,mBAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,qBAAqB,CAAC;KAClC,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC;KACnD,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC5C,MAAM,CAAC,oBAAY,CAAC,CAAC;AAExB,mBAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,mBAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,IAAI,CAAC;KAC7D,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,mBAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,sDAAsD,CAAC;KACnE,cAAc,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;KACpE,MAAM,CAAC,wBAAc,CAAC,CAAC;AAE1B,mBAAO;KACJ,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC,CAAC,QAAiB,EAAE,EAAE;IAC5B,IAAA,kBAAW,EAAC,QAAQ,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,mBAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,mBAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,mBAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { MemoryObject } from "../../sdk/memory/memory";
|
|
2
|
+
interface CogneeConfig {
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
apiKey: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function isCogneeConfigured(): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Uploads structured project data into a Cognee dataset as self-describing,
|
|
9
|
+
* sentence-phrased chunks (see buildCogneeChunks), then triggers cognify
|
|
10
|
+
* once on the whole dataset. Sending one large document caused Cognee's own
|
|
11
|
+
* extraction step to fail with IncompleteOutputException (max_tokens) on a
|
|
12
|
+
* real repo — chunking keeps each /add small enough for that step to
|
|
13
|
+
* complete reliably.
|
|
14
|
+
*/
|
|
15
|
+
export declare function rememberContext(projectName: string, memories: MemoryObject[], onProgress?: (done: number, total: number, label: string) => void, debugDir?: string): Promise<void>;
|
|
16
|
+
export interface CogneeSearchResult {
|
|
17
|
+
dataset_id: string;
|
|
18
|
+
dataset_name: string;
|
|
19
|
+
search_result: string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Queries Cognee memory for a project's dataset.
|
|
23
|
+
* search_type defaults to GRAPH_COMPLETION (verified working).
|
|
24
|
+
*/
|
|
25
|
+
export declare function recallContext(projectName: string, query: string): Promise<CogneeSearchResult[]>;
|
|
26
|
+
export declare class CogneeClient {
|
|
27
|
+
private readonly config;
|
|
28
|
+
constructor(config: CogneeConfig);
|
|
29
|
+
private uploadChunk;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/providers/cognee/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAQvD,UAAU,YAAY;IAElB,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,EAAE,MAAM,CAAC;CAElB;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AA6CD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACjC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,YAAY,EAAE,EACxB,UAAU,CAAC,EAAE,CACT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,KACZ,IAAI,EACT,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAmGf;AAED,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAC/B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyB/B;AAED,qBAAa,YAAY;IAGjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAGzC,OAAO,CAAC,WAAW;CAEtB"}
|
|
@@ -0,0 +1,189 @@
|
|
|
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.CogneeClient = void 0;
|
|
37
|
+
exports.isCogneeConfigured = isCogneeConfigured;
|
|
38
|
+
exports.rememberContext = rememberContext;
|
|
39
|
+
exports.recallContext = recallContext;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const os = __importStar(require("os"));
|
|
43
|
+
const COGNEE_BASE_URL = process.env.COGNEE_BASE_URL ?? "";
|
|
44
|
+
const COGNEE_API_KEY = process.env.COGNEE_API_KEY ?? "";
|
|
45
|
+
function isCogneeConfigured() {
|
|
46
|
+
return Boolean(COGNEE_BASE_URL && COGNEE_API_KEY);
|
|
47
|
+
}
|
|
48
|
+
function assertConfigured() {
|
|
49
|
+
if (!isCogneeConfigured()) {
|
|
50
|
+
throw new Error("Cognee not configured. Set COGNEE_BASE_URL and COGNEE_API_KEY environment variables.");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async function uploadChunk(datasetName, label, content) {
|
|
54
|
+
const tmpPath = path.join(os.tmpdir(), `cliper-${label.replace(/[\/:]/g, "_")}-${Date.now()}.md`);
|
|
55
|
+
fs.writeFileSync(tmpPath, content, "utf-8");
|
|
56
|
+
try {
|
|
57
|
+
const fileBuffer = fs.readFileSync(tmpPath);
|
|
58
|
+
const form = new FormData();
|
|
59
|
+
const safeLabel = label.replace(/[\/:]/g, "_");
|
|
60
|
+
form.append("data", new Blob([fileBuffer], { type: "text/markdown" }), `${safeLabel}.md`);
|
|
61
|
+
form.append("datasetName", datasetName);
|
|
62
|
+
const res = await fetch(`${COGNEE_BASE_URL}/api/v1/add`, {
|
|
63
|
+
method: "POST",
|
|
64
|
+
headers: { "X-Api-Key": COGNEE_API_KEY },
|
|
65
|
+
body: form,
|
|
66
|
+
});
|
|
67
|
+
const body = await res.text();
|
|
68
|
+
if (!res.ok) {
|
|
69
|
+
throw new Error(`/add failed (${label}): ${body}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
fs.unlinkSync(tmpPath);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Uploads structured project data into a Cognee dataset as self-describing,
|
|
78
|
+
* sentence-phrased chunks (see buildCogneeChunks), then triggers cognify
|
|
79
|
+
* once on the whole dataset. Sending one large document caused Cognee's own
|
|
80
|
+
* extraction step to fail with IncompleteOutputException (max_tokens) on a
|
|
81
|
+
* real repo — chunking keeps each /add small enough for that step to
|
|
82
|
+
* complete reliably.
|
|
83
|
+
*/
|
|
84
|
+
async function rememberContext(projectName, memories, onProgress, debugDir) {
|
|
85
|
+
assertConfigured();
|
|
86
|
+
const datasetName = `cliper-${projectName}`;
|
|
87
|
+
const chunks = memories.map(memory => ({
|
|
88
|
+
label: `${memory.type}:${memory.id}`,
|
|
89
|
+
content: `
|
|
90
|
+
Memory Type:
|
|
91
|
+
${memory.type}
|
|
92
|
+
|
|
93
|
+
Title:
|
|
94
|
+
${memory.title}
|
|
95
|
+
|
|
96
|
+
Content:
|
|
97
|
+
${memory.content}
|
|
98
|
+
|
|
99
|
+
Metadata:
|
|
100
|
+
${JSON.stringify(memory.metadata, null, 2)}
|
|
101
|
+
|
|
102
|
+
Relationships:
|
|
103
|
+
${memory.relationships?.join(", ") ?? "None"}
|
|
104
|
+
|
|
105
|
+
Tags:
|
|
106
|
+
${memory.tags?.join(", ") ?? "None"}
|
|
107
|
+
`.trim()
|
|
108
|
+
}));
|
|
109
|
+
if (process.env.COGNEE_DEBUG) {
|
|
110
|
+
console.log("\nCognee Chunks:");
|
|
111
|
+
chunks.forEach((c) => {
|
|
112
|
+
console.log(`${c.label.padEnd(35)} ${c.content.length
|
|
113
|
+
.toString()
|
|
114
|
+
.padStart(6)} chars`);
|
|
115
|
+
});
|
|
116
|
+
console.log("");
|
|
117
|
+
}
|
|
118
|
+
// Optional: write the exact chunks Cognee receives to disk for inspection.
|
|
119
|
+
// Useful because the uploaded content never otherwise touches disk —
|
|
120
|
+
// it's built in memory and sent straight to /add.
|
|
121
|
+
if (debugDir) {
|
|
122
|
+
if (!fs.existsSync(debugDir))
|
|
123
|
+
fs.mkdirSync(debugDir, { recursive: true });
|
|
124
|
+
for (const c of chunks) {
|
|
125
|
+
const safeLabel = c.label.replace(/[\/:]/g, "_");
|
|
126
|
+
fs.writeFileSync(path.join(debugDir, `${safeLabel}.md`), c.content, "utf-8");
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// for (let i = 0; i < chunks.length; i++) {
|
|
130
|
+
// onProgress?.(i, chunks.length, chunks[i].label);
|
|
131
|
+
// await uploadChunk(datasetName, chunks[i].label, chunks[i].content);
|
|
132
|
+
// }
|
|
133
|
+
console.log("Dataset being used:", datasetName);
|
|
134
|
+
const BATCH_SIZE = 5;
|
|
135
|
+
for (let i = 0; i < chunks.length; i += BATCH_SIZE) {
|
|
136
|
+
const batch = chunks.slice(i, i + BATCH_SIZE);
|
|
137
|
+
await Promise.all(batch.map((chunk, index) => {
|
|
138
|
+
onProgress?.(i + index, chunks.length, chunk.label);
|
|
139
|
+
return uploadChunk(datasetName, chunk.label, chunk.content);
|
|
140
|
+
}));
|
|
141
|
+
}
|
|
142
|
+
const cognifyRes = await fetch(`${COGNEE_BASE_URL}/api/v1/cognify`, {
|
|
143
|
+
method: "POST",
|
|
144
|
+
headers: {
|
|
145
|
+
"X-Api-Key": COGNEE_API_KEY,
|
|
146
|
+
"Content-Type": "application/json",
|
|
147
|
+
},
|
|
148
|
+
body: JSON.stringify({ datasets: [datasetName] }),
|
|
149
|
+
});
|
|
150
|
+
const cognifyBody = await cognifyRes.text();
|
|
151
|
+
console.log("Cognify status:", cognifyRes.status);
|
|
152
|
+
console.log(cognifyBody);
|
|
153
|
+
if (!cognifyRes.ok) {
|
|
154
|
+
throw new Error(`Cognee /cognify failed: ${cognifyRes.status} ${cognifyBody}`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Queries Cognee memory for a project's dataset.
|
|
159
|
+
* search_type defaults to GRAPH_COMPLETION (verified working).
|
|
160
|
+
*/
|
|
161
|
+
async function recallContext(projectName, query) {
|
|
162
|
+
assertConfigured();
|
|
163
|
+
const datasetName = `cliper-${projectName}`;
|
|
164
|
+
const res = await fetch(`${COGNEE_BASE_URL}/api/v1/search`, {
|
|
165
|
+
method: "POST",
|
|
166
|
+
headers: {
|
|
167
|
+
"X-Api-Key": COGNEE_API_KEY,
|
|
168
|
+
"Content-Type": "application/json",
|
|
169
|
+
},
|
|
170
|
+
body: JSON.stringify({
|
|
171
|
+
query,
|
|
172
|
+
search_type: "GRAPH_COMPLETION",
|
|
173
|
+
datasets: [datasetName],
|
|
174
|
+
}),
|
|
175
|
+
});
|
|
176
|
+
if (!res.ok) {
|
|
177
|
+
const errText = await res.text();
|
|
178
|
+
throw new Error(`Cognee /search failed: ${res.status} ${errText}`);
|
|
179
|
+
}
|
|
180
|
+
return res.json();
|
|
181
|
+
}
|
|
182
|
+
class CogneeClient {
|
|
183
|
+
constructor(config) {
|
|
184
|
+
this.config = config;
|
|
185
|
+
}
|
|
186
|
+
uploadChunk() { }
|
|
187
|
+
}
|
|
188
|
+
exports.CogneeClient = CogneeClient;
|
|
189
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/providers/cognee/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MemoryObject } from "../../sdk/memory/memory";
|
|
2
|
+
export declare class CogneeProvider {
|
|
3
|
+
isConfigured(): boolean;
|
|
4
|
+
upload(projectName: string, memories: MemoryObject[], onProgress?: (done: number, total: number, label: string) => void, debugDir?: string): Promise<void>;
|
|
5
|
+
search(projectName: string, query: string): Promise<import("./client").CogneeSearchResult[]>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/providers/cognee/provider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,qBAAa,cAAc;IAEvB,YAAY,IAAI,OAAO;IAIjB,MAAM,CACR,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,YAAY,EAAE,EACxB,UAAU,CAAC,EAAE,CACT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,KACZ,IAAI,EACT,QAAQ,CAAC,EAAE,MAAM;IAUf,MAAM,CACR,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM;CAOpB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CogneeProvider = void 0;
|
|
4
|
+
const client_1 = require("./client");
|
|
5
|
+
class CogneeProvider {
|
|
6
|
+
isConfigured() {
|
|
7
|
+
return (0, client_1.isCogneeConfigured)();
|
|
8
|
+
}
|
|
9
|
+
async upload(projectName, memories, onProgress, debugDir) {
|
|
10
|
+
return (0, client_1.rememberContext)(projectName, memories, onProgress, debugDir);
|
|
11
|
+
}
|
|
12
|
+
async search(projectName, query) {
|
|
13
|
+
return (0, client_1.recallContext)(projectName, query);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.CogneeProvider = CogneeProvider;
|
|
17
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/providers/cognee/provider.ts"],"names":[],"mappings":";;;AAAA,qCAIkB;AAIlB,MAAa,cAAc;IAEvB,YAAY;QACR,OAAO,IAAA,2BAAkB,GAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CACR,WAAmB,EACnB,QAAwB,EACxB,UAIS,EACT,QAAiB;QAEjB,OAAO,IAAA,wBAAe,EAClB,WAAW,EACX,QAAQ,EACR,UAAU,EACV,QAAQ,CACX,CAAC;IACN,CAAC;IAED,KAAK,CAAC,MAAM,CACR,WAAmB,EACnB,KAAa;QAEb,OAAO,IAAA,sBAAa,EAChB,WAAW,EACX,KAAK,CACR,CAAC;IACN,CAAC;CACJ;AAjCD,wCAiCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoryProvider.d.ts","sourceRoot":"","sources":["../../src/providers/memoryProvider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoryProvider.js","sourceRoot":"","sources":["../../src/providers/memoryProvider.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface ResolvedReference {
|
|
2
|
+
url: string;
|
|
3
|
+
source: string;
|
|
4
|
+
status: "fetched" | "blocked" | "failed" | "skipped";
|
|
5
|
+
content?: string;
|
|
6
|
+
reason?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function resolveBlockedReferences(projectRoot: string): Promise<ResolvedReference[]>;
|
|
9
|
+
//# sourceMappingURL=urlFetcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urlFetcher.d.ts","sourceRoot":"","sources":["../../src/resolver/urlFetcher.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA+DD,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA2C9B"}
|