@neurcode-ai/cli 0.9.10 → 0.9.12
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 +201 -0
- package/dist/commands/ask.d.ts +10 -0
- package/dist/commands/ask.d.ts.map +1 -0
- package/dist/commands/ask.js +778 -0
- package/dist/commands/ask.js.map +1 -0
- package/dist/commands/brain.d.ts.map +1 -1
- package/dist/commands/brain.js +33 -0
- package/dist/commands/brain.js.map +1 -1
- package/dist/commands/plan.d.ts +2 -0
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +4 -0
- package/dist/commands/plan.js.map +1 -1
- package/dist/index.js +33 -2
- package/dist/index.js.map +1 -1
- package/dist/utils/ask-cache.d.ts +87 -0
- package/dist/utils/ask-cache.d.ts.map +1 -0
- package/dist/utils/ask-cache.js +424 -0
- package/dist/utils/ask-cache.js.map +1 -0
- package/dist/utils/brain-context.d.ts +20 -1
- package/dist/utils/brain-context.d.ts.map +1 -1
- package/dist/utils/brain-context.js +56 -1
- package/dist/utils/brain-context.js.map +1 -1
- package/dist/utils/plan-cache.d.ts.map +1 -1
- package/dist/utils/plan-cache.js +35 -6
- package/dist/utils/plan-cache.js.map +1 -1
- package/package.json +7 -8
package/dist/index.js
CHANGED
|
@@ -18,6 +18,7 @@ const check_1 = require("./commands/check");
|
|
|
18
18
|
const revert_1 = require("./commands/revert");
|
|
19
19
|
const refactor_1 = require("./commands/refactor");
|
|
20
20
|
const security_1 = require("./commands/security");
|
|
21
|
+
const ask_1 = require("./commands/ask");
|
|
21
22
|
const plan_1 = require("./commands/plan");
|
|
22
23
|
const apply_1 = require("./commands/apply");
|
|
23
24
|
const verify_1 = require("./commands/verify");
|
|
@@ -140,6 +141,26 @@ program
|
|
|
140
141
|
.action(() => {
|
|
141
142
|
(0, map_1.mapCommand)();
|
|
142
143
|
});
|
|
144
|
+
program
|
|
145
|
+
.command('ask')
|
|
146
|
+
.description('Ask a repo question with grounded, citation-backed answers')
|
|
147
|
+
.argument('<question...>', 'Question about the codebase')
|
|
148
|
+
.option('--project-id <id>', 'Project ID')
|
|
149
|
+
.option('--json', 'Output machine-readable JSON')
|
|
150
|
+
.option('--max-citations <n>', 'Maximum citations to show (default: 12)', (val) => parseInt(val, 10))
|
|
151
|
+
.option('--no-cache', 'Disable local ask cache and force fresh retrieval')
|
|
152
|
+
.action(async (question, options) => {
|
|
153
|
+
const questionString = Array.isArray(question) ? question.join(' ') : question;
|
|
154
|
+
if (Array.isArray(question) && question.length > 1) {
|
|
155
|
+
console.log(chalk.yellow('Tip: Wrap your question in quotes for best shell compatibility.'));
|
|
156
|
+
}
|
|
157
|
+
await (0, ask_1.askCommand)(questionString, {
|
|
158
|
+
projectId: options['project-id'] || options.projectId,
|
|
159
|
+
json: options.json === true,
|
|
160
|
+
maxCitations: Number.isFinite(options.maxCitations) ? options.maxCitations : undefined,
|
|
161
|
+
cache: options.cache !== false,
|
|
162
|
+
});
|
|
163
|
+
});
|
|
143
164
|
program
|
|
144
165
|
.command('plan')
|
|
145
166
|
.description('Generate an execution plan for a user intent')
|
|
@@ -151,13 +172,23 @@ program
|
|
|
151
172
|
.option('--mask', 'Mask detected secrets automatically (default: true)', true)
|
|
152
173
|
.option('--no-mask', 'Abort if secrets detected instead of masking')
|
|
153
174
|
.option('--no-cache', 'Disable local plan cache and force regeneration')
|
|
154
|
-
.
|
|
175
|
+
.option('--force-plan', 'Force plan generation even for read-only analysis intents')
|
|
176
|
+
.action(async (intent, options) => {
|
|
155
177
|
// Handle multiple arguments (when user doesn't quote)
|
|
156
178
|
const intentString = Array.isArray(intent) ? intent.join(' ') : intent;
|
|
157
179
|
if (Array.isArray(intent) && intent.length > 1) {
|
|
158
180
|
console.log(chalk.yellow('Tip: Wrap your intent in quotes for better shell compatibility.'));
|
|
159
181
|
}
|
|
160
|
-
(0, plan_1.
|
|
182
|
+
if (!options.forcePlan && (0, plan_1.detectIntentMode)(intentString) === 'analysis') {
|
|
183
|
+
console.log(chalk.dim('🔎 Read-only intent detected. Routing to `neurcode ask` for grounded answer mode.\n'));
|
|
184
|
+
await (0, ask_1.askCommand)(intentString, {
|
|
185
|
+
projectId: options['project-id'] || options.projectId,
|
|
186
|
+
cache: options.cache !== false,
|
|
187
|
+
fromPlan: true,
|
|
188
|
+
});
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
await (0, plan_1.planCommand)(intentString, {
|
|
161
192
|
projectId: options['project-id'] || options.projectId,
|
|
162
193
|
ticket: options.ticket,
|
|
163
194
|
issue: options.issue,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { RepoFingerprint } from './plan-cache';
|
|
2
|
+
export interface AskCitation {
|
|
3
|
+
path: string;
|
|
4
|
+
line: number;
|
|
5
|
+
snippet: string;
|
|
6
|
+
term?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface AskAnswerPayload {
|
|
9
|
+
question: string;
|
|
10
|
+
questionNormalized: string;
|
|
11
|
+
mode: 'comparison' | 'search';
|
|
12
|
+
answer: string;
|
|
13
|
+
findings: string[];
|
|
14
|
+
confidence: 'high' | 'medium' | 'low';
|
|
15
|
+
truth: {
|
|
16
|
+
status: 'grounded' | 'insufficient';
|
|
17
|
+
score: number;
|
|
18
|
+
reasons: string[];
|
|
19
|
+
sourceCitations: number;
|
|
20
|
+
sourceFiles: number;
|
|
21
|
+
minCitationsRequired: number;
|
|
22
|
+
minFilesRequired: number;
|
|
23
|
+
};
|
|
24
|
+
citations: AskCitation[];
|
|
25
|
+
generatedAt: string;
|
|
26
|
+
stats: {
|
|
27
|
+
scannedFiles: number;
|
|
28
|
+
matchedFiles: number;
|
|
29
|
+
matchedLines: number;
|
|
30
|
+
brainCandidates: number;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface AskCacheKeyInputV1 {
|
|
34
|
+
schemaVersion: 3;
|
|
35
|
+
orgId: string;
|
|
36
|
+
projectId: string;
|
|
37
|
+
repo: RepoFingerprint;
|
|
38
|
+
questionHash: string;
|
|
39
|
+
policyVersionHash: string;
|
|
40
|
+
neurcodeVersion: string;
|
|
41
|
+
}
|
|
42
|
+
export interface CachedAskInputV1 extends AskCacheKeyInputV1 {
|
|
43
|
+
question: string;
|
|
44
|
+
contextHash?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface CachedAskEntryV1 {
|
|
47
|
+
key: string;
|
|
48
|
+
createdAt: string;
|
|
49
|
+
lastUsedAt: string;
|
|
50
|
+
useCount: number;
|
|
51
|
+
input: CachedAskInputV1;
|
|
52
|
+
output: AskAnswerPayload;
|
|
53
|
+
evidencePaths: string[];
|
|
54
|
+
}
|
|
55
|
+
export interface NearCachedAskLookupInput {
|
|
56
|
+
orgId: string;
|
|
57
|
+
projectId: string;
|
|
58
|
+
repo: RepoFingerprint;
|
|
59
|
+
question: string;
|
|
60
|
+
policyVersionHash: string;
|
|
61
|
+
neurcodeVersion: string;
|
|
62
|
+
contextHash?: string;
|
|
63
|
+
changedPaths?: string[];
|
|
64
|
+
minSimilarity?: number;
|
|
65
|
+
}
|
|
66
|
+
export interface NearCachedAskResult {
|
|
67
|
+
entry: CachedAskEntryV1;
|
|
68
|
+
similarity: number;
|
|
69
|
+
reason: 'same_snapshot_similar_question' | 'safe_repo_drift_similar_question';
|
|
70
|
+
}
|
|
71
|
+
export interface AskCacheDeleteResult {
|
|
72
|
+
deleted: number;
|
|
73
|
+
remaining: number;
|
|
74
|
+
}
|
|
75
|
+
export declare function getAskCachePath(cwd: string): string;
|
|
76
|
+
export declare function computeAskQuestionHash(input: {
|
|
77
|
+
question: string;
|
|
78
|
+
contextHash?: string;
|
|
79
|
+
}): string;
|
|
80
|
+
export declare function computeAskCacheKey(input: AskCacheKeyInputV1): string;
|
|
81
|
+
export declare function readCachedAsk(cwd: string, key: string): CachedAskEntryV1 | null;
|
|
82
|
+
export declare function writeCachedAsk(cwd: string, entry: Omit<CachedAskEntryV1, 'createdAt' | 'lastUsedAt' | 'useCount'>): void;
|
|
83
|
+
export declare function findNearCachedAsk(cwd: string, input: NearCachedAskLookupInput): NearCachedAskResult | null;
|
|
84
|
+
export declare function getChangedWorkingTreePaths(cwd: string, limit?: number): string[];
|
|
85
|
+
export declare function listCachedAsks(cwd: string): CachedAskEntryV1[];
|
|
86
|
+
export declare function deleteCachedAsks(cwd: string, predicate: (entry: CachedAskEntryV1) => boolean): AskCacheDeleteResult;
|
|
87
|
+
//# sourceMappingURL=ask-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask-cache.d.ts","sourceRoot":"","sources":["../../src/utils/ask-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAskCachePath = getAskCachePath;
|
|
4
|
+
exports.computeAskQuestionHash = computeAskQuestionHash;
|
|
5
|
+
exports.computeAskCacheKey = computeAskCacheKey;
|
|
6
|
+
exports.readCachedAsk = readCachedAsk;
|
|
7
|
+
exports.writeCachedAsk = writeCachedAsk;
|
|
8
|
+
exports.findNearCachedAsk = findNearCachedAsk;
|
|
9
|
+
exports.getChangedWorkingTreePaths = getChangedWorkingTreePaths;
|
|
10
|
+
exports.listCachedAsks = listCachedAsks;
|
|
11
|
+
exports.deleteCachedAsks = deleteCachedAsks;
|
|
12
|
+
const child_process_1 = require("child_process");
|
|
13
|
+
const crypto_1 = require("crypto");
|
|
14
|
+
const fs_1 = require("fs");
|
|
15
|
+
const path_1 = require("path");
|
|
16
|
+
const plan_cache_1 = require("./plan-cache");
|
|
17
|
+
const secret_masking_1 = require("./secret-masking");
|
|
18
|
+
const ASK_CACHE_SCHEMA_VERSION = 3;
|
|
19
|
+
const ASK_CACHE_FILE = 'ask-cache.json';
|
|
20
|
+
const MAX_ENTRIES = 700;
|
|
21
|
+
const NON_SEMANTIC_GIT_PATH_MARKERS = [
|
|
22
|
+
'.neurcode/',
|
|
23
|
+
'.gitignore',
|
|
24
|
+
];
|
|
25
|
+
function nowIso() {
|
|
26
|
+
return new Date().toISOString();
|
|
27
|
+
}
|
|
28
|
+
function sha256Hex(input) {
|
|
29
|
+
return (0, crypto_1.createHash)('sha256').update(input).digest('hex');
|
|
30
|
+
}
|
|
31
|
+
function getCachePath(cwd) {
|
|
32
|
+
return (0, path_1.join)(cwd, '.neurcode', ASK_CACHE_FILE);
|
|
33
|
+
}
|
|
34
|
+
function getAskCachePath(cwd) {
|
|
35
|
+
return getCachePath(cwd);
|
|
36
|
+
}
|
|
37
|
+
function ensureNeurcodeDir(cwd) {
|
|
38
|
+
const dir = (0, path_1.join)(cwd, '.neurcode');
|
|
39
|
+
if (!(0, fs_1.existsSync)(dir)) {
|
|
40
|
+
(0, fs_1.mkdirSync)(dir, { recursive: true });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function readStore(cwd) {
|
|
44
|
+
const path = getCachePath(cwd);
|
|
45
|
+
if (!(0, fs_1.existsSync)(path)) {
|
|
46
|
+
return { schemaVersion: ASK_CACHE_SCHEMA_VERSION, entries: {} };
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
const raw = (0, fs_1.readFileSync)(path, 'utf-8');
|
|
50
|
+
const parsed = JSON.parse(raw);
|
|
51
|
+
if (parsed.schemaVersion !== ASK_CACHE_SCHEMA_VERSION || !parsed.entries || typeof parsed.entries !== 'object') {
|
|
52
|
+
throw new Error('invalid ask cache schema');
|
|
53
|
+
}
|
|
54
|
+
return parsed;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
try {
|
|
58
|
+
(0, fs_1.renameSync)(path, path.replace(/\.json$/, `.corrupt-${Date.now()}.json`));
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// ignore
|
|
62
|
+
}
|
|
63
|
+
return { schemaVersion: ASK_CACHE_SCHEMA_VERSION, entries: {} };
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function writeStore(cwd, store) {
|
|
67
|
+
ensureNeurcodeDir(cwd);
|
|
68
|
+
const path = getCachePath(cwd);
|
|
69
|
+
const tmp = `${path}.${process.pid}.${Date.now()}.${Math.random().toString(36).slice(2, 8)}.tmp`;
|
|
70
|
+
(0, fs_1.writeFileSync)(tmp, JSON.stringify(store, null, 2) + '\n', 'utf-8');
|
|
71
|
+
(0, fs_1.renameSync)(tmp, path);
|
|
72
|
+
}
|
|
73
|
+
function pruneStore(store) {
|
|
74
|
+
const entries = Object.values(store.entries);
|
|
75
|
+
if (entries.length <= MAX_ENTRIES)
|
|
76
|
+
return;
|
|
77
|
+
entries.sort((a, b) => {
|
|
78
|
+
const aTime = Date.parse(a.lastUsedAt || a.createdAt) || 0;
|
|
79
|
+
const bTime = Date.parse(b.lastUsedAt || b.createdAt) || 0;
|
|
80
|
+
return aTime - bTime;
|
|
81
|
+
});
|
|
82
|
+
const deleteCount = entries.length - MAX_ENTRIES;
|
|
83
|
+
for (const entry of entries.slice(0, deleteCount)) {
|
|
84
|
+
delete store.entries[entry.key];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function normalizeRepoIdentity(raw) {
|
|
88
|
+
return (raw || '').trim().toLowerCase().replace(/\\/g, '/');
|
|
89
|
+
}
|
|
90
|
+
function normalizePath(raw) {
|
|
91
|
+
return (raw || '').trim().replace(/\\/g, '/').replace(/^\.\//, '');
|
|
92
|
+
}
|
|
93
|
+
function tokenize(text) {
|
|
94
|
+
return text
|
|
95
|
+
.toLowerCase()
|
|
96
|
+
.replace(/[^\w\s]/g, ' ')
|
|
97
|
+
.split(/\s+/)
|
|
98
|
+
.filter((token) => token.length >= 3);
|
|
99
|
+
}
|
|
100
|
+
function jaccard(a, b) {
|
|
101
|
+
if (a.size === 0 || b.size === 0)
|
|
102
|
+
return 0;
|
|
103
|
+
let inter = 0;
|
|
104
|
+
for (const token of a) {
|
|
105
|
+
if (b.has(token))
|
|
106
|
+
inter++;
|
|
107
|
+
}
|
|
108
|
+
const union = a.size + b.size - inter;
|
|
109
|
+
return union === 0 ? 0 : inter / union;
|
|
110
|
+
}
|
|
111
|
+
function tokenOverlap(a, b) {
|
|
112
|
+
if (a.size === 0 || b.size === 0)
|
|
113
|
+
return 0;
|
|
114
|
+
let inter = 0;
|
|
115
|
+
for (const token of a) {
|
|
116
|
+
if (b.has(token))
|
|
117
|
+
inter++;
|
|
118
|
+
}
|
|
119
|
+
return inter / Math.max(1, Math.min(a.size, b.size));
|
|
120
|
+
}
|
|
121
|
+
function buildTrigrams(input) {
|
|
122
|
+
const normalized = input
|
|
123
|
+
.toLowerCase()
|
|
124
|
+
.replace(/[^\w\s]/g, ' ')
|
|
125
|
+
.replace(/\s+/g, ' ')
|
|
126
|
+
.trim();
|
|
127
|
+
if (!normalized)
|
|
128
|
+
return new Set();
|
|
129
|
+
if (normalized.length < 3)
|
|
130
|
+
return new Set([normalized]);
|
|
131
|
+
const grams = new Set();
|
|
132
|
+
for (let i = 0; i <= normalized.length - 3; i++) {
|
|
133
|
+
grams.add(normalized.slice(i, i + 3));
|
|
134
|
+
}
|
|
135
|
+
return grams;
|
|
136
|
+
}
|
|
137
|
+
function diceCoefficient(a, b) {
|
|
138
|
+
if (a.size === 0 || b.size === 0)
|
|
139
|
+
return 0;
|
|
140
|
+
let inter = 0;
|
|
141
|
+
for (const gram of a) {
|
|
142
|
+
if (b.has(gram))
|
|
143
|
+
inter++;
|
|
144
|
+
}
|
|
145
|
+
return (2 * inter) / (a.size + b.size);
|
|
146
|
+
}
|
|
147
|
+
function questionSimilarity(aQuestion, bQuestion) {
|
|
148
|
+
const aNorm = (0, plan_cache_1.normalizeIntent)(aQuestion);
|
|
149
|
+
const bNorm = (0, plan_cache_1.normalizeIntent)(bQuestion);
|
|
150
|
+
if (!aNorm || !bNorm)
|
|
151
|
+
return 0;
|
|
152
|
+
const aTokens = new Set(tokenize(aNorm));
|
|
153
|
+
const bTokens = new Set(tokenize(bNorm));
|
|
154
|
+
const jac = jaccard(aTokens, bTokens);
|
|
155
|
+
const overlap = tokenOverlap(aTokens, bTokens);
|
|
156
|
+
const dice = diceCoefficient(buildTrigrams(aNorm), buildTrigrams(bNorm));
|
|
157
|
+
return jac * 0.45 + overlap * 0.35 + dice * 0.2;
|
|
158
|
+
}
|
|
159
|
+
function sameSnapshot(current, cached) {
|
|
160
|
+
if (current.kind !== cached.kind)
|
|
161
|
+
return false;
|
|
162
|
+
if (normalizeRepoIdentity(current.repoIdentity) !== normalizeRepoIdentity(cached.repoIdentity))
|
|
163
|
+
return false;
|
|
164
|
+
if (current.kind === 'git' && cached.kind === 'git') {
|
|
165
|
+
return current.headTreeSha === cached.headTreeSha;
|
|
166
|
+
}
|
|
167
|
+
if (current.kind === 'filesystem' && cached.kind === 'filesystem') {
|
|
168
|
+
return current.fileTreeHash === cached.fileTreeHash;
|
|
169
|
+
}
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
function pathOverlaps(aRaw, bRaw) {
|
|
173
|
+
const a = normalizePath(aRaw);
|
|
174
|
+
const b = normalizePath(bRaw);
|
|
175
|
+
if (!a || !b)
|
|
176
|
+
return false;
|
|
177
|
+
if (a === b)
|
|
178
|
+
return true;
|
|
179
|
+
return a.startsWith(`${b}/`) || b.startsWith(`${a}/`);
|
|
180
|
+
}
|
|
181
|
+
function canUseWithSafeDrift(input, candidate) {
|
|
182
|
+
const currentRepo = input.repo;
|
|
183
|
+
const cachedRepo = candidate.input.repo;
|
|
184
|
+
if (currentRepo.kind !== 'git' || cachedRepo.kind !== 'git')
|
|
185
|
+
return false;
|
|
186
|
+
if (normalizeRepoIdentity(currentRepo.repoIdentity) !== normalizeRepoIdentity(cachedRepo.repoIdentity))
|
|
187
|
+
return false;
|
|
188
|
+
const changedPaths = (input.changedPaths || []).map(normalizePath).filter(Boolean);
|
|
189
|
+
const evidencePaths = (candidate.evidencePaths || []).map(normalizePath).filter(Boolean);
|
|
190
|
+
if (changedPaths.length === 0 || evidencePaths.length === 0)
|
|
191
|
+
return false;
|
|
192
|
+
for (const changed of changedPaths) {
|
|
193
|
+
for (const evidence of evidencePaths) {
|
|
194
|
+
if (pathOverlaps(changed, evidence)) {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
201
|
+
function computeAskQuestionHash(input) {
|
|
202
|
+
const normalized = (0, plan_cache_1.normalizeIntent)(input.question);
|
|
203
|
+
const safeQuestion = (0, secret_masking_1.maskSecretsInText)(normalized).masked;
|
|
204
|
+
const payload = [
|
|
205
|
+
`question=${safeQuestion}`,
|
|
206
|
+
`contextHash=${input.contextHash || ''}`,
|
|
207
|
+
].join('\n');
|
|
208
|
+
return sha256Hex(payload);
|
|
209
|
+
}
|
|
210
|
+
function computeAskCacheKey(input) {
|
|
211
|
+
const repoPart = input.repo.kind === 'git'
|
|
212
|
+
? `kind=git\nrepoIdentity=${input.repo.repoIdentity}\nheadSha=${input.repo.headSha}\nheadTreeSha=${input.repo.headTreeSha}\nworkingTreeHash=${input.repo.workingTreeHash}`
|
|
213
|
+
: `kind=filesystem\nrepoIdentity=${input.repo.repoIdentity}\nfileTreeHash=${input.repo.fileTreeHash}`;
|
|
214
|
+
const payload = [
|
|
215
|
+
`schema=${input.schemaVersion}`,
|
|
216
|
+
`orgId=${input.orgId}`,
|
|
217
|
+
`projectId=${input.projectId}`,
|
|
218
|
+
repoPart,
|
|
219
|
+
`questionHash=${input.questionHash}`,
|
|
220
|
+
`policyVersionHash=${input.policyVersionHash}`,
|
|
221
|
+
`neurcodeVersion=${input.neurcodeVersion}`,
|
|
222
|
+
].join('\n');
|
|
223
|
+
return sha256Hex(payload);
|
|
224
|
+
}
|
|
225
|
+
function readCachedAsk(cwd, key) {
|
|
226
|
+
try {
|
|
227
|
+
const store = readStore(cwd);
|
|
228
|
+
const existing = store.entries[key];
|
|
229
|
+
if (!existing)
|
|
230
|
+
return null;
|
|
231
|
+
const next = {
|
|
232
|
+
...existing,
|
|
233
|
+
lastUsedAt: nowIso(),
|
|
234
|
+
useCount: Number(existing.useCount || 0) + 1,
|
|
235
|
+
};
|
|
236
|
+
store.entries[key] = next;
|
|
237
|
+
writeStore(cwd, store);
|
|
238
|
+
return next;
|
|
239
|
+
}
|
|
240
|
+
catch {
|
|
241
|
+
return null;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
function writeCachedAsk(cwd, entry) {
|
|
245
|
+
try {
|
|
246
|
+
const store = readStore(cwd);
|
|
247
|
+
const existing = store.entries[entry.key];
|
|
248
|
+
const now = nowIso();
|
|
249
|
+
const questionNorm = (0, plan_cache_1.normalizeIntent)(entry.input.question || '');
|
|
250
|
+
const safeQuestion = (0, secret_masking_1.maskSecretsInText)(questionNorm).masked;
|
|
251
|
+
const questionHash = sha256Hex(safeQuestion);
|
|
252
|
+
const next = {
|
|
253
|
+
key: entry.key,
|
|
254
|
+
createdAt: existing?.createdAt || now,
|
|
255
|
+
lastUsedAt: now,
|
|
256
|
+
useCount: Number(existing?.useCount || 0) + 1,
|
|
257
|
+
input: {
|
|
258
|
+
...entry.input,
|
|
259
|
+
schemaVersion: ASK_CACHE_SCHEMA_VERSION,
|
|
260
|
+
question: safeQuestion,
|
|
261
|
+
questionHash,
|
|
262
|
+
},
|
|
263
|
+
output: {
|
|
264
|
+
...entry.output,
|
|
265
|
+
question: (0, secret_masking_1.maskSecretsInText)(entry.output.question).masked,
|
|
266
|
+
questionNormalized: safeQuestion,
|
|
267
|
+
citations: entry.output.citations.map((citation) => ({
|
|
268
|
+
...citation,
|
|
269
|
+
snippet: (0, secret_masking_1.maskSecretsInText)(citation.snippet).masked,
|
|
270
|
+
})),
|
|
271
|
+
},
|
|
272
|
+
evidencePaths: [...new Set((entry.evidencePaths || []).map(normalizePath).filter(Boolean))].slice(0, 80),
|
|
273
|
+
};
|
|
274
|
+
store.entries[entry.key] = next;
|
|
275
|
+
pruneStore(store);
|
|
276
|
+
writeStore(cwd, store);
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
// ignore cache write failures
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
function listScopeEntries(cwd, scope) {
|
|
283
|
+
const store = readStore(cwd);
|
|
284
|
+
return Object.values(store.entries).filter((entry) => entry.input.orgId === scope.orgId && entry.input.projectId === scope.projectId);
|
|
285
|
+
}
|
|
286
|
+
function findNearCachedAsk(cwd, input) {
|
|
287
|
+
try {
|
|
288
|
+
const normalizedQuestion = (0, plan_cache_1.normalizeIntent)(input.question);
|
|
289
|
+
if (!normalizedQuestion)
|
|
290
|
+
return null;
|
|
291
|
+
const thresholdBase = Math.max(0.6, Math.min(input.minSimilarity ?? 0.72, 0.98));
|
|
292
|
+
const tokenCount = new Set(tokenize(normalizedQuestion)).size;
|
|
293
|
+
const threshold = tokenCount <= 4
|
|
294
|
+
? Math.max(thresholdBase, 0.8)
|
|
295
|
+
: tokenCount <= 8
|
|
296
|
+
? Math.max(thresholdBase, 0.72)
|
|
297
|
+
: thresholdBase;
|
|
298
|
+
const candidates = listScopeEntries(cwd, {
|
|
299
|
+
orgId: input.orgId,
|
|
300
|
+
projectId: input.projectId,
|
|
301
|
+
});
|
|
302
|
+
let best = null;
|
|
303
|
+
for (const candidate of candidates) {
|
|
304
|
+
if (!candidate.input.question)
|
|
305
|
+
continue;
|
|
306
|
+
if (normalizeRepoIdentity(candidate.input.repo.repoIdentity) !== normalizeRepoIdentity(input.repo.repoIdentity))
|
|
307
|
+
continue;
|
|
308
|
+
if (candidate.input.policyVersionHash !== input.policyVersionHash)
|
|
309
|
+
continue;
|
|
310
|
+
if (candidate.input.neurcodeVersion !== input.neurcodeVersion)
|
|
311
|
+
continue;
|
|
312
|
+
if (input.contextHash && candidate.input.contextHash && input.contextHash !== candidate.input.contextHash)
|
|
313
|
+
continue;
|
|
314
|
+
const snapshotMatch = sameSnapshot(input.repo, candidate.input.repo);
|
|
315
|
+
const driftSafe = snapshotMatch ? false : canUseWithSafeDrift(input, candidate);
|
|
316
|
+
if (!snapshotMatch && !driftSafe)
|
|
317
|
+
continue;
|
|
318
|
+
const score = questionSimilarity(normalizedQuestion, candidate.input.question);
|
|
319
|
+
if (score < threshold)
|
|
320
|
+
continue;
|
|
321
|
+
const next = {
|
|
322
|
+
entry: candidate,
|
|
323
|
+
similarity: score,
|
|
324
|
+
reason: snapshotMatch ? 'same_snapshot_similar_question' : 'safe_repo_drift_similar_question',
|
|
325
|
+
};
|
|
326
|
+
if (!best) {
|
|
327
|
+
best = next;
|
|
328
|
+
continue;
|
|
329
|
+
}
|
|
330
|
+
if (next.similarity > best.similarity) {
|
|
331
|
+
best = next;
|
|
332
|
+
continue;
|
|
333
|
+
}
|
|
334
|
+
if (next.similarity === best.similarity) {
|
|
335
|
+
const bestTime = Date.parse(best.entry.lastUsedAt || best.entry.createdAt) || 0;
|
|
336
|
+
const nextTime = Date.parse(next.entry.lastUsedAt || next.entry.createdAt) || 0;
|
|
337
|
+
if (nextTime > bestTime)
|
|
338
|
+
best = next;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
return best;
|
|
342
|
+
}
|
|
343
|
+
catch {
|
|
344
|
+
return null;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
function sanitizeGitStatus(status) {
|
|
348
|
+
const lines = status.split(/\r?\n/).filter((line) => line.trim().length > 0);
|
|
349
|
+
const filtered = [];
|
|
350
|
+
for (const line of lines) {
|
|
351
|
+
if (NON_SEMANTIC_GIT_PATH_MARKERS.some((marker) => line.includes(marker))) {
|
|
352
|
+
continue;
|
|
353
|
+
}
|
|
354
|
+
if (line.length < 4)
|
|
355
|
+
continue;
|
|
356
|
+
const pathPart = line.slice(3).trim();
|
|
357
|
+
if (!pathPart)
|
|
358
|
+
continue;
|
|
359
|
+
const normalizedRaw = pathPart.includes(' -> ')
|
|
360
|
+
? pathPart.split(' -> ').pop() || pathPart
|
|
361
|
+
: pathPart;
|
|
362
|
+
const unquoted = normalizedRaw.startsWith('"') && normalizedRaw.endsWith('"')
|
|
363
|
+
? normalizedRaw.slice(1, -1).replace(/\\"/g, '"')
|
|
364
|
+
: normalizedRaw;
|
|
365
|
+
filtered.push(normalizePath(unquoted));
|
|
366
|
+
}
|
|
367
|
+
return filtered;
|
|
368
|
+
}
|
|
369
|
+
function getChangedWorkingTreePaths(cwd, limit = 140) {
|
|
370
|
+
try {
|
|
371
|
+
const inside = (0, child_process_1.execSync)('git rev-parse --is-inside-work-tree', {
|
|
372
|
+
cwd,
|
|
373
|
+
encoding: 'utf-8',
|
|
374
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
375
|
+
}).trim().toLowerCase();
|
|
376
|
+
if (inside !== 'true')
|
|
377
|
+
return [];
|
|
378
|
+
const status = (0, child_process_1.execSync)('git status --porcelain', {
|
|
379
|
+
cwd,
|
|
380
|
+
encoding: 'utf-8',
|
|
381
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
382
|
+
});
|
|
383
|
+
return sanitizeGitStatus(status).slice(0, Math.max(1, limit));
|
|
384
|
+
}
|
|
385
|
+
catch {
|
|
386
|
+
return [];
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
function listCachedAsks(cwd) {
|
|
390
|
+
try {
|
|
391
|
+
const store = readStore(cwd);
|
|
392
|
+
return Object.values(store.entries).sort((a, b) => {
|
|
393
|
+
const aTime = Date.parse(a.lastUsedAt || a.createdAt) || 0;
|
|
394
|
+
const bTime = Date.parse(b.lastUsedAt || b.createdAt) || 0;
|
|
395
|
+
return bTime - aTime;
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
catch {
|
|
399
|
+
return [];
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
function deleteCachedAsks(cwd, predicate) {
|
|
403
|
+
try {
|
|
404
|
+
const store = readStore(cwd);
|
|
405
|
+
let deleted = 0;
|
|
406
|
+
for (const [key, entry] of Object.entries(store.entries)) {
|
|
407
|
+
if (!predicate(entry))
|
|
408
|
+
continue;
|
|
409
|
+
delete store.entries[key];
|
|
410
|
+
deleted++;
|
|
411
|
+
}
|
|
412
|
+
if (deleted > 0) {
|
|
413
|
+
writeStore(cwd, store);
|
|
414
|
+
}
|
|
415
|
+
return {
|
|
416
|
+
deleted,
|
|
417
|
+
remaining: Object.keys(store.entries).length,
|
|
418
|
+
};
|
|
419
|
+
}
|
|
420
|
+
catch {
|
|
421
|
+
return { deleted: 0, remaining: 0 };
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
//# sourceMappingURL=ask-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask-cache.js","sourceRoot":"","sources":["../../src/utils/ask-cache.ts"],"names":[],"mappings":"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"}
|