vemora 0.1.0-alpha.8
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 +716 -0
- package/dist/cli.d.ts +16 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +589 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/ask.d.ts +14 -0
- package/dist/commands/ask.d.ts.map +1 -0
- package/dist/commands/ask.js +136 -0
- package/dist/commands/ask.js.map +1 -0
- package/dist/commands/audit.d.ts +17 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +408 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/brief.d.ts +14 -0
- package/dist/commands/brief.d.ts.map +1 -0
- package/dist/commands/brief.js +73 -0
- package/dist/commands/brief.js.map +1 -0
- package/dist/commands/chat.d.ts +7 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +161 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/context.d.ts +61 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +778 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/deps.d.ts +20 -0
- package/dist/commands/deps.d.ts.map +1 -0
- package/dist/commands/deps.js +138 -0
- package/dist/commands/deps.js.map +1 -0
- package/dist/commands/focus.d.ts +6 -0
- package/dist/commands/focus.d.ts.map +1 -0
- package/dist/commands/focus.js +302 -0
- package/dist/commands/focus.js.map +1 -0
- package/dist/commands/index.d.ts +10 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +366 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init-agent.d.ts +23 -0
- package/dist/commands/init-agent.d.ts.map +1 -0
- package/dist/commands/init-agent.js +447 -0
- package/dist/commands/init-agent.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +122 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/knowledge.d.ts +8 -0
- package/dist/commands/knowledge.d.ts.map +1 -0
- package/dist/commands/knowledge.js +98 -0
- package/dist/commands/knowledge.js.map +1 -0
- package/dist/commands/plan.d.ts +16 -0
- package/dist/commands/plan.d.ts.map +1 -0
- package/dist/commands/plan.js +535 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/query.d.ts +39 -0
- package/dist/commands/query.d.ts.map +1 -0
- package/dist/commands/query.js +389 -0
- package/dist/commands/query.js.map +1 -0
- package/dist/commands/remember.d.ts +11 -0
- package/dist/commands/remember.d.ts.map +1 -0
- package/dist/commands/remember.js +174 -0
- package/dist/commands/remember.js.map +1 -0
- package/dist/commands/report.d.ts +10 -0
- package/dist/commands/report.d.ts.map +1 -0
- package/dist/commands/report.js +180 -0
- package/dist/commands/report.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 +127 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/summarize.d.ts +14 -0
- package/dist/commands/summarize.d.ts.map +1 -0
- package/dist/commands/summarize.js +205 -0
- package/dist/commands/summarize.js.map +1 -0
- package/dist/commands/triage.d.ts +33 -0
- package/dist/commands/triage.d.ts.map +1 -0
- package/dist/commands/triage.js +419 -0
- package/dist/commands/triage.js.map +1 -0
- package/dist/commands/usages.d.ts +14 -0
- package/dist/commands/usages.d.ts.map +1 -0
- package/dist/commands/usages.js +236 -0
- package/dist/commands/usages.js.map +1 -0
- package/dist/core/config.d.ts +35 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +140 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/types.d.ts +251 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +4 -0
- package/dist/core/types.js.map +1 -0
- package/dist/embeddings/factory.d.ts +9 -0
- package/dist/embeddings/factory.d.ts.map +1 -0
- package/dist/embeddings/factory.js +26 -0
- package/dist/embeddings/factory.js.map +1 -0
- package/dist/embeddings/noop.d.ts +17 -0
- package/dist/embeddings/noop.d.ts.map +1 -0
- package/dist/embeddings/noop.js +22 -0
- package/dist/embeddings/noop.js.map +1 -0
- package/dist/embeddings/ollama.d.ts +16 -0
- package/dist/embeddings/ollama.d.ts.map +1 -0
- package/dist/embeddings/ollama.js +41 -0
- package/dist/embeddings/ollama.js.map +1 -0
- package/dist/embeddings/openai.d.ts +10 -0
- package/dist/embeddings/openai.d.ts.map +1 -0
- package/dist/embeddings/openai.js +67 -0
- package/dist/embeddings/openai.js.map +1 -0
- package/dist/embeddings/provider.d.ts +19 -0
- package/dist/embeddings/provider.d.ts.map +1 -0
- package/dist/embeddings/provider.js +3 -0
- package/dist/embeddings/provider.js.map +1 -0
- package/dist/indexer/callgraph.d.ts +16 -0
- package/dist/indexer/callgraph.d.ts.map +1 -0
- package/dist/indexer/callgraph.js +154 -0
- package/dist/indexer/callgraph.js.map +1 -0
- package/dist/indexer/chunkBySlidingWindow.d.ts +6 -0
- package/dist/indexer/chunkBySlidingWindow.d.ts.map +1 -0
- package/dist/indexer/chunkBySlidingWindow.js +30 -0
- package/dist/indexer/chunkBySlidingWindow.js.map +1 -0
- package/dist/indexer/chunkBySymbols.d.ts +7 -0
- package/dist/indexer/chunkBySymbols.d.ts.map +1 -0
- package/dist/indexer/chunkBySymbols.js +57 -0
- package/dist/indexer/chunkBySymbols.js.map +1 -0
- package/dist/indexer/chunker.d.ts +15 -0
- package/dist/indexer/chunker.d.ts.map +1 -0
- package/dist/indexer/chunker.js +26 -0
- package/dist/indexer/chunker.js.map +1 -0
- package/dist/indexer/classHeader.d.ts +7 -0
- package/dist/indexer/classHeader.d.ts.map +1 -0
- package/dist/indexer/classHeader.js +37 -0
- package/dist/indexer/classHeader.js.map +1 -0
- package/dist/indexer/deps.d.ts +66 -0
- package/dist/indexer/deps.d.ts.map +1 -0
- package/dist/indexer/deps.js +409 -0
- package/dist/indexer/deps.js.map +1 -0
- package/dist/indexer/hasher.d.ts +17 -0
- package/dist/indexer/hasher.d.ts.map +1 -0
- package/dist/indexer/hasher.js +38 -0
- package/dist/indexer/hasher.js.map +1 -0
- package/dist/indexer/parser.d.ts +18 -0
- package/dist/indexer/parser.d.ts.map +1 -0
- package/dist/indexer/parser.js +355 -0
- package/dist/indexer/parser.js.map +1 -0
- package/dist/indexer/scanner.d.ts +18 -0
- package/dist/indexer/scanner.d.ts.map +1 -0
- package/dist/indexer/scanner.js +37 -0
- package/dist/indexer/scanner.js.map +1 -0
- package/dist/indexer/strategy.d.ts +11 -0
- package/dist/indexer/strategy.d.ts.map +1 -0
- package/dist/indexer/strategy.js +15 -0
- package/dist/indexer/strategy.js.map +1 -0
- package/dist/indexer/tests.d.ts +15 -0
- package/dist/indexer/tests.d.ts.map +1 -0
- package/dist/indexer/tests.js +68 -0
- package/dist/indexer/tests.js.map +1 -0
- package/dist/indexer/todos.d.ts +9 -0
- package/dist/indexer/todos.d.ts.map +1 -0
- package/dist/indexer/todos.js +29 -0
- package/dist/indexer/todos.js.map +1 -0
- package/dist/llm/anthropic.d.ts +8 -0
- package/dist/llm/anthropic.d.ts.map +1 -0
- package/dist/llm/anthropic.js +76 -0
- package/dist/llm/anthropic.js.map +1 -0
- package/dist/llm/factory.d.ts +7 -0
- package/dist/llm/factory.d.ts.map +1 -0
- package/dist/llm/factory.js +39 -0
- package/dist/llm/factory.js.map +1 -0
- package/dist/llm/ollama.d.ts +8 -0
- package/dist/llm/ollama.d.ts.map +1 -0
- package/dist/llm/ollama.js +83 -0
- package/dist/llm/ollama.js.map +1 -0
- package/dist/llm/openai.d.ts +8 -0
- package/dist/llm/openai.d.ts.map +1 -0
- package/dist/llm/openai.js +68 -0
- package/dist/llm/openai.js.map +1 -0
- package/dist/llm/provider.d.ts +29 -0
- package/dist/llm/provider.d.ts.map +1 -0
- package/dist/llm/provider.js +3 -0
- package/dist/llm/provider.js.map +1 -0
- package/dist/search/bm25.d.ts +3 -0
- package/dist/search/bm25.d.ts.map +1 -0
- package/dist/search/bm25.js +102 -0
- package/dist/search/bm25.js.map +1 -0
- package/dist/search/formatter.d.ts +43 -0
- package/dist/search/formatter.d.ts.map +1 -0
- package/dist/search/formatter.js +208 -0
- package/dist/search/formatter.js.map +1 -0
- package/dist/search/hybrid.d.ts +10 -0
- package/dist/search/hybrid.d.ts.map +1 -0
- package/dist/search/hybrid.js +53 -0
- package/dist/search/hybrid.js.map +1 -0
- package/dist/search/merge.d.ts +33 -0
- package/dist/search/merge.d.ts.map +1 -0
- package/dist/search/merge.js +158 -0
- package/dist/search/merge.js.map +1 -0
- package/dist/search/mmr.d.ts +23 -0
- package/dist/search/mmr.d.ts.map +1 -0
- package/dist/search/mmr.js +95 -0
- package/dist/search/mmr.js.map +1 -0
- package/dist/search/rerank.d.ts +15 -0
- package/dist/search/rerank.d.ts.map +1 -0
- package/dist/search/rerank.js +76 -0
- package/dist/search/rerank.js.map +1 -0
- package/dist/search/signature.d.ts +42 -0
- package/dist/search/signature.d.ts.map +1 -0
- package/dist/search/signature.js +112 -0
- package/dist/search/signature.js.map +1 -0
- package/dist/search/vector.d.ts +41 -0
- package/dist/search/vector.d.ts.map +1 -0
- package/dist/search/vector.js +185 -0
- package/dist/search/vector.js.map +1 -0
- package/dist/storage/cache.d.ts +30 -0
- package/dist/storage/cache.d.ts.map +1 -0
- package/dist/storage/cache.js +160 -0
- package/dist/storage/cache.js.map +1 -0
- package/dist/storage/knowledge.d.ts +17 -0
- package/dist/storage/knowledge.d.ts.map +1 -0
- package/dist/storage/knowledge.js +58 -0
- package/dist/storage/knowledge.js.map +1 -0
- package/dist/storage/repository.d.ts +27 -0
- package/dist/storage/repository.d.ts.map +1 -0
- package/dist/storage/repository.js +95 -0
- package/dist/storage/repository.js.map +1 -0
- package/dist/storage/session.d.ts +38 -0
- package/dist/storage/session.d.ts.map +1 -0
- package/dist/storage/session.js +100 -0
- package/dist/storage/session.js.map +1 -0
- package/dist/storage/summaries.d.ts +19 -0
- package/dist/storage/summaries.d.ts.map +1 -0
- package/dist/storage/summaries.js +66 -0
- package/dist/storage/summaries.js.map +1 -0
- package/dist/storage/usage.d.ts +35 -0
- package/dist/storage/usage.d.ts.map +1 -0
- package/dist/storage/usage.js +55 -0
- package/dist/storage/usage.js.map +1 -0
- package/dist/utils/git.d.ts +15 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +38 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/tokenizer.d.ts +24 -0
- package/dist/utils/tokenizer.d.ts.map +1 -0
- package/dist/utils/tokenizer.js +52 -0
- package/dist/utils/tokenizer.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runBrief = runBrief;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const config_1 = require("../core/config");
|
|
9
|
+
const knowledge_1 = require("../storage/knowledge");
|
|
10
|
+
const summaries_1 = require("../storage/summaries");
|
|
11
|
+
/**
|
|
12
|
+
* Prints a compact session primer (~L0 + L1 in mempalace terms):
|
|
13
|
+
* - Project overview (from vemora summarize)
|
|
14
|
+
* - High-confidence knowledge entries
|
|
15
|
+
*
|
|
16
|
+
* Designed to be run at the start of an LLM session to re-establish context
|
|
17
|
+
* without loading the full index. Optimised for minimal token use.
|
|
18
|
+
*/
|
|
19
|
+
async function runBrief(rootDir, options = {}) {
|
|
20
|
+
const config = (0, config_1.loadConfig)(rootDir);
|
|
21
|
+
const summaryStorage = new summaries_1.SummaryStorage(rootDir);
|
|
22
|
+
const knowledgeStorage = new knowledge_1.KnowledgeStorage(rootDir);
|
|
23
|
+
const projectSummary = summaryStorage.loadProjectSummary();
|
|
24
|
+
const allEntries = knowledgeStorage.load();
|
|
25
|
+
const entries = options.all
|
|
26
|
+
? allEntries
|
|
27
|
+
: allEntries.filter((e) => e.confidence === "high");
|
|
28
|
+
// ── Header ───────────────────────────────────────────────────────────────────
|
|
29
|
+
console.log(chalk_1.default.bold(`# ${config.projectName} — session brief`));
|
|
30
|
+
console.log();
|
|
31
|
+
// ── L0: Project overview ─────────────────────────────────────────────────────
|
|
32
|
+
if (projectSummary) {
|
|
33
|
+
console.log(chalk_1.default.bold("## Overview"));
|
|
34
|
+
console.log(projectSummary.overview);
|
|
35
|
+
console.log();
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
console.log(chalk_1.default.gray("No project overview available. Run `vemora summarize` to generate one."));
|
|
39
|
+
console.log();
|
|
40
|
+
}
|
|
41
|
+
// ── L1: High-confidence knowledge ────────────────────────────────────────────
|
|
42
|
+
if (entries.length > 0) {
|
|
43
|
+
const label = options.all ? "Knowledge" : "Critical knowledge";
|
|
44
|
+
console.log(chalk_1.default.bold(`## ${label} (${entries.length})`));
|
|
45
|
+
console.log();
|
|
46
|
+
const byCategory = new Map();
|
|
47
|
+
for (const e of entries) {
|
|
48
|
+
const list = byCategory.get(e.category) ?? [];
|
|
49
|
+
list.push(e);
|
|
50
|
+
byCategory.set(e.category, list);
|
|
51
|
+
}
|
|
52
|
+
for (const [cat, catEntries] of byCategory) {
|
|
53
|
+
console.log(chalk_1.default.underline(cat));
|
|
54
|
+
for (const e of catEntries) {
|
|
55
|
+
console.log(`- **${e.title}**`);
|
|
56
|
+
// Print body but cap at 120 chars to keep the primer tight
|
|
57
|
+
const body = e.body.length > 120 ? e.body.slice(0, 117) + "…" : e.body;
|
|
58
|
+
console.log(` ${chalk_1.default.gray(body)}`);
|
|
59
|
+
}
|
|
60
|
+
console.log();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
const hint = options.all
|
|
65
|
+
? "No knowledge entries found. Use `vemora remember` to add some."
|
|
66
|
+
: "No high-confidence entries found. Use `vemora knowledge list` to review all entries.";
|
|
67
|
+
console.log(chalk_1.default.gray(hint));
|
|
68
|
+
console.log();
|
|
69
|
+
}
|
|
70
|
+
// ── Footer hint ──────────────────────────────────────────────────────────────
|
|
71
|
+
console.log(chalk_1.default.gray(`Tip: run \`vemora knowledge list --root .\` for the full knowledge base.`));
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=brief.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brief.js","sourceRoot":"","sources":["../../src/commands/brief.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAwLf"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runChat = runChat;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const ora_1 = __importDefault(require("ora"));
|
|
9
|
+
const readline_1 = __importDefault(require("readline"));
|
|
10
|
+
const config_1 = require("../core/config");
|
|
11
|
+
const factory_1 = require("../embeddings/factory");
|
|
12
|
+
const factory_2 = require("../llm/factory");
|
|
13
|
+
const bm25_1 = require("../search/bm25");
|
|
14
|
+
const formatter_1 = require("../search/formatter");
|
|
15
|
+
const hybrid_1 = require("../search/hybrid");
|
|
16
|
+
const rerank_1 = require("../search/rerank");
|
|
17
|
+
const cache_1 = require("../storage/cache");
|
|
18
|
+
const repository_1 = require("../storage/repository");
|
|
19
|
+
const summaries_1 = require("../storage/summaries");
|
|
20
|
+
async function runChat(rootDir, options = {}) {
|
|
21
|
+
const config = (0, config_1.loadConfig)(rootDir);
|
|
22
|
+
const repo = new repository_1.RepositoryStorage(rootDir);
|
|
23
|
+
const cacheStorage = new cache_1.EmbeddingCacheStorage(config.projectId);
|
|
24
|
+
const summaryStorage = new summaries_1.SummaryStorage(rootDir);
|
|
25
|
+
const chunks = repo.loadChunks();
|
|
26
|
+
const symbols = repo.loadSymbols();
|
|
27
|
+
const depGraph = repo.loadDeps();
|
|
28
|
+
const callGraph = repo.loadCallGraph();
|
|
29
|
+
const fileSummaries = summaryStorage.hasFileSummaries()
|
|
30
|
+
? summaryStorage.loadFileSummaries()
|
|
31
|
+
: {};
|
|
32
|
+
const projectSummary = summaryStorage.loadProjectSummary();
|
|
33
|
+
// Use the provider from CLI options, then from config, then default to openai
|
|
34
|
+
const providerType = (options.provider ||
|
|
35
|
+
config.summarization?.provider ||
|
|
36
|
+
"openai");
|
|
37
|
+
const llmConfig = {
|
|
38
|
+
...(config.summarization || {}),
|
|
39
|
+
provider: providerType,
|
|
40
|
+
model: config.summarization?.model ?? "gpt-4o-mini",
|
|
41
|
+
};
|
|
42
|
+
if (options.model)
|
|
43
|
+
llmConfig.model = options.model;
|
|
44
|
+
const llm = (0, factory_2.createLLMProvider)(llmConfig);
|
|
45
|
+
const history = [];
|
|
46
|
+
const rl = readline_1.default.createInterface({
|
|
47
|
+
input: process.stdin,
|
|
48
|
+
output: process.stdout,
|
|
49
|
+
prompt: chalk_1.default.blue.bold("You > "),
|
|
50
|
+
});
|
|
51
|
+
console.log(chalk_1.default.bold("\nWelcome to vemora chat!"));
|
|
52
|
+
console.log(chalk_1.default.gray(`Project: ${config.projectName}`));
|
|
53
|
+
console.log(chalk_1.default.gray('Type your question about the codebase. Type "exit" or "quit" to stop.\n'));
|
|
54
|
+
rl.prompt();
|
|
55
|
+
rl.on("line", async (line) => {
|
|
56
|
+
const input = line.trim();
|
|
57
|
+
if (!input) {
|
|
58
|
+
rl.prompt();
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (input.toLowerCase() === "exit" || input.toLowerCase() === "quit") {
|
|
62
|
+
rl.close();
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// 1. Search for context based on user input
|
|
66
|
+
const spinner = (0, ora_1.default)("Searching for context...").start();
|
|
67
|
+
let contextStr = "";
|
|
68
|
+
try {
|
|
69
|
+
let results = [];
|
|
70
|
+
const useKeyword = config.embedding.provider === "none";
|
|
71
|
+
if (useKeyword) {
|
|
72
|
+
results = (0, bm25_1.computeBM25Scores)(input, chunks, symbols, options.topK || 5);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
const cache = cacheStorage.load();
|
|
76
|
+
if (cache &&
|
|
77
|
+
(cache.chunkIds?.length || Object.keys(cache.embeddings ?? {}).length)) {
|
|
78
|
+
const provider = (0, factory_1.createEmbeddingProvider)(config.embedding);
|
|
79
|
+
const [queryEmbedding] = await provider.embed([input]);
|
|
80
|
+
// Use hybrid search for better quality
|
|
81
|
+
results = await (0, hybrid_1.hybridSearch)(input, queryEmbedding, chunks, cache, symbols, {
|
|
82
|
+
topK: 25, // Get more for reranking
|
|
83
|
+
});
|
|
84
|
+
// Always rerank for chat to ensure best quality
|
|
85
|
+
results = await (0, rerank_1.rerankResults)(input, results, options.topK || 5);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
results = (0, bm25_1.computeBM25Scores)(input, chunks, symbols, options.topK || 5);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
contextStr = (0, formatter_1.formatMarkdown)(input, results, depGraph, fileSummaries, callGraph, {
|
|
92
|
+
// Pass callGraph here
|
|
93
|
+
format: "markdown",
|
|
94
|
+
topK: options.topK || 5,
|
|
95
|
+
});
|
|
96
|
+
spinner.succeed("Context found");
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
spinner.fail(`Context search failed: ${err.message}`);
|
|
100
|
+
}
|
|
101
|
+
// 2. Build the prompt
|
|
102
|
+
// We inject the project summary and the specific relevant code found
|
|
103
|
+
const systemPrompt = `You are an expert software engineer assistant.
|
|
104
|
+
You have access to the following project context to help you answer:
|
|
105
|
+
|
|
106
|
+
${projectSummary ? `PROJECT OVERVIEW:\n${projectSummary.overview}\n\n` : ""}
|
|
107
|
+
RELEVANT CODE CHUNKS:
|
|
108
|
+
${contextStr}
|
|
109
|
+
|
|
110
|
+
Use this context to provide accurate, specific, and helpful answers about the codebase.
|
|
111
|
+
If the information is not in the context, be honest about it.`;
|
|
112
|
+
// 3. Prepare message history
|
|
113
|
+
// For now, we update the system prompt per message to reflect new context
|
|
114
|
+
// This is a simple implementation; a better one would prune old context
|
|
115
|
+
const currentMessages = [
|
|
116
|
+
{ role: "system", content: systemPrompt },
|
|
117
|
+
...history,
|
|
118
|
+
{ role: "user", content: input },
|
|
119
|
+
];
|
|
120
|
+
// 4. Call LLM
|
|
121
|
+
const llmSpinner = (0, ora_1.default)("LLM is thinking...").start();
|
|
122
|
+
try {
|
|
123
|
+
let fullResponse = "";
|
|
124
|
+
process.stdout.write(`\n${chalk_1.default.green.bold("AI >")} `);
|
|
125
|
+
await llm.chat(currentMessages, {
|
|
126
|
+
model: options.model || config.summarization?.model || "gpt-4o-mini",
|
|
127
|
+
onToken: (token) => {
|
|
128
|
+
if (llmSpinner.isSpinning) {
|
|
129
|
+
llmSpinner.stop();
|
|
130
|
+
}
|
|
131
|
+
process.stdout.write(token);
|
|
132
|
+
fullResponse += token;
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
if (llmSpinner.isSpinning) {
|
|
136
|
+
llmSpinner.stop();
|
|
137
|
+
}
|
|
138
|
+
console.log("\n");
|
|
139
|
+
// Update history
|
|
140
|
+
history.push({ role: "user", content: input });
|
|
141
|
+
history.push({ role: "assistant", content: fullResponse });
|
|
142
|
+
// Limit history to last 10 messages to avoid token bloat
|
|
143
|
+
if (history.length > 10) {
|
|
144
|
+
history.splice(0, 2);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
if (llmSpinner.isSpinning) {
|
|
149
|
+
llmSpinner.fail(`LLM call failed: ${err.message}`);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
console.error(chalk_1.default.red(`\nLLM call failed: ${err.message}`));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
rl.prompt();
|
|
156
|
+
}).on("close", () => {
|
|
157
|
+
console.log(chalk_1.default.bold("\nGoodbye!"));
|
|
158
|
+
process.exit(0);
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { CallGraph, Chunk, DependencyGraph, FileSummaryIndex, KnowledgeEntry, SearchResult } from "../core/types";
|
|
2
|
+
export interface ContextOptions {
|
|
3
|
+
/** A natural-language query describing the task */
|
|
4
|
+
query?: string;
|
|
5
|
+
/** A specific file to include in full context */
|
|
6
|
+
file?: string;
|
|
7
|
+
/** Number of search results to pull in (default: 5) */
|
|
8
|
+
topK?: number;
|
|
9
|
+
/** Force keyword search */
|
|
10
|
+
keyword?: boolean;
|
|
11
|
+
/** Output format: markdown (default), plain, or terse (ultra-compact for small models) */
|
|
12
|
+
format?: "markdown" | "plain" | "terse";
|
|
13
|
+
/** Show full code (no line cap) */
|
|
14
|
+
showCode?: boolean;
|
|
15
|
+
/** Use cross-encoder reranking */
|
|
16
|
+
rerank?: boolean;
|
|
17
|
+
/** Use hybrid search (vector + BM25) */
|
|
18
|
+
hybrid?: boolean;
|
|
19
|
+
/** Hybrid weight for vector search (0-1) */
|
|
20
|
+
alpha?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Maximum tokens to include across all retrieved chunks.
|
|
23
|
+
* Applied after retrieval and reranking. The first result is always kept.
|
|
24
|
+
*/
|
|
25
|
+
budget?: number;
|
|
26
|
+
/** Apply Maximal Marginal Relevance reranking to reduce redundant results */
|
|
27
|
+
mmr?: boolean;
|
|
28
|
+
/** MMR diversity weight: 0=max diversity, 1=pure relevance (default: 0.5) */
|
|
29
|
+
lambda?: number;
|
|
30
|
+
/** Merge adjacent or overlapping chunks from the same file */
|
|
31
|
+
merge?: boolean;
|
|
32
|
+
/** Max line gap between chunks to still merge them (default: 3) */
|
|
33
|
+
mergeGap?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Emit a structured context block organised by semantic role:
|
|
36
|
+
* Entry Point → Direct Dependencies → Called By → Types & Interfaces → Related Patterns.
|
|
37
|
+
* Reduces token usage and improves LLM comprehension compared to a flat ranked list.
|
|
38
|
+
*/
|
|
39
|
+
structured?: boolean;
|
|
40
|
+
/** Filter out chunks already seen in the current session */
|
|
41
|
+
session?: boolean;
|
|
42
|
+
/** Reset the session before this query (implies session tracking) */
|
|
43
|
+
fresh?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export declare function runContext(rootDir: string, options?: ContextOptions): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Procedural function to build the actual context string.
|
|
48
|
+
* This is separated from runContext to allow for benchmarking and testing.
|
|
49
|
+
*
|
|
50
|
+
* When `options.structured` is true and results are available, delegates to
|
|
51
|
+
* `generateStructuredContextString` which organises output by semantic role
|
|
52
|
+
* (Entry Point → Direct Dependencies → Called By → Types & Interfaces → Related Patterns)
|
|
53
|
+
* instead of a flat ranked list.
|
|
54
|
+
*
|
|
55
|
+
* @param allChunks - Full chunk corpus, required for structured mode dep resolution.
|
|
56
|
+
* Optional for backward compatibility with bench.ts.
|
|
57
|
+
*/
|
|
58
|
+
export declare function generateContextString(config: {
|
|
59
|
+
projectName: string;
|
|
60
|
+
}, results: SearchResult[], depGraph: DependencyGraph, callGraph: CallGraph, fileSummaries: FileSummaryIndex, projectOverview: string | null, options: ContextOptions, rootDir: string, allChunks?: Chunk[], knowledgeEntries?: KnowledgeEntry[]): string;
|
|
61
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,SAAS,EACT,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,YAAY,EACb,MAAM,eAAe,CAAC;AAsBvB,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;IACxC,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kCAAkC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAwMf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,EAC/B,OAAO,EAAE,YAAY,EAAE,EACvB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,gBAAgB,EAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,KAAK,EAAO,EACvB,gBAAgB,GAAE,cAAc,EAAO,GACtC,MAAM,CA6VR"}
|