projscan 1.3.0 → 1.5.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 +98 -9
- package/dist/cli/commands/doctor.js +18 -2
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/explain.js +1 -0
- package/dist/cli/commands/explain.js.map +1 -1
- package/dist/cli/commands/memory.d.ts +11 -0
- package/dist/cli/commands/memory.js +175 -0
- package/dist/cli/commands/memory.js.map +1 -0
- package/dist/cli/commands/session.d.ts +12 -0
- package/dist/cli/commands/session.js +200 -0
- package/dist/cli/commands/session.js.map +1 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/codeGraph.js +190 -241
- package/dist/core/codeGraph.js.map +1 -1
- package/dist/core/fileInspector.js +40 -44
- package/dist/core/fileInspector.js.map +1 -1
- package/dist/core/hotspotAnalyzer.js +65 -19
- package/dist/core/hotspotAnalyzer.js.map +1 -1
- package/dist/core/issueEngine.js +24 -0
- package/dist/core/issueEngine.js.map +1 -1
- package/dist/core/languages/csharpImports.js +6 -4
- package/dist/core/languages/csharpImports.js.map +1 -1
- package/dist/core/memory.d.ts +154 -0
- package/dist/core/memory.js +277 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/review.d.ts +25 -1
- package/dist/core/review.js +84 -0
- package/dist/core/review.js.map +1 -1
- package/dist/core/session.d.ts +94 -0
- package/dist/core/session.js +187 -0
- package/dist/core/session.js.map +1 -0
- package/dist/mcp/prompts.js +272 -0
- package/dist/mcp/prompts.js.map +1 -1
- package/dist/mcp/server.js +198 -128
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/sessionTouchScanner.d.ts +16 -0
- package/dist/mcp/sessionTouchScanner.js +112 -0
- package/dist/mcp/sessionTouchScanner.js.map +1 -0
- package/dist/mcp/tokenBudget.d.ts +22 -0
- package/dist/mcp/tokenBudget.js +26 -0
- package/dist/mcp/tokenBudget.js.map +1 -1
- package/dist/mcp/tools/doctor.js +65 -2
- package/dist/mcp/tools/doctor.js.map +1 -1
- package/dist/mcp/tools/explain.js +4 -3
- package/dist/mcp/tools/explain.js.map +1 -1
- package/dist/mcp/tools/explainIssue.js +3 -2
- package/dist/mcp/tools/explainIssue.js.map +1 -1
- package/dist/mcp/tools/file.js +3 -2
- package/dist/mcp/tools/file.js.map +1 -1
- package/dist/mcp/tools/graph.js +16 -11
- package/dist/mcp/tools/graph.js.map +1 -1
- package/dist/mcp/tools/impact.js +2 -2
- package/dist/mcp/tools/impact.js.map +1 -1
- package/dist/mcp/tools/memory.d.ts +19 -0
- package/dist/mcp/tools/memory.js +134 -0
- package/dist/mcp/tools/memory.js.map +1 -0
- package/dist/mcp/tools/review.js +25 -4
- package/dist/mcp/tools/review.js.map +1 -1
- package/dist/mcp/tools/session.d.ts +22 -0
- package/dist/mcp/tools/session.js +140 -0
- package/dist/mcp/tools/session.js.map +1 -0
- package/dist/mcp/tools/upgrade.js +3 -2
- package/dist/mcp/tools/upgrade.js.map +1 -1
- package/dist/mcp/tools.js +4 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/reporters/consoleReporter.d.ts +12 -1
- package/dist/reporters/consoleReporter.js +289 -179
- package/dist/reporters/consoleReporter.js.map +1 -1
- package/dist/reporters/markdownReporter.js +185 -128
- package/dist/reporters/markdownReporter.js.map +1 -1
- package/dist/tool-manifest.json +79 -6
- package/dist/types.d.ts +21 -0
- package/dist/utils/config.js +76 -51
- package/dist/utils/config.js.map +1 -1
- package/package.json +8 -1
package/dist/mcp/server.js
CHANGED
|
@@ -5,10 +5,12 @@ import { fileURLToPath } from 'node:url';
|
|
|
5
5
|
import { getToolDefinitions, getToolHandler } from './tools.js';
|
|
6
6
|
import { getPromptDefinitions, getPrompt } from './prompts.js';
|
|
7
7
|
import { getResourceDefinitions, readResource } from './resources.js';
|
|
8
|
-
import { applyBudget } from './tokenBudget.js';
|
|
8
|
+
import { applyBudget, attachCostSidecar, estimateTokens } from './tokenBudget.js';
|
|
9
9
|
import { withProgress } from './progress.js';
|
|
10
10
|
import { toContentBlocks } from './chunker.js';
|
|
11
11
|
import { startWatcher } from '../core/watcher.js';
|
|
12
|
+
import { loadSession, recordTouch, recordEvent, saveSession, } from '../core/session.js';
|
|
13
|
+
import { extractTouchedPaths } from './sessionTouchScanner.js';
|
|
12
14
|
const SUPPORTED_PROTOCOL_VERSIONS = ['2025-03-26', '2024-11-05'];
|
|
13
15
|
const PROTOCOL_VERSION = SUPPORTED_PROTOCOL_VERSIONS[0];
|
|
14
16
|
const JSONRPC_ERROR = {
|
|
@@ -34,41 +36,32 @@ export function createMcpServer(rootPath, options = {}) {
|
|
|
34
36
|
let watchHandle = null;
|
|
35
37
|
let watchStartPromise = null;
|
|
36
38
|
const watchEnabled = options.watch === true && options.notify !== undefined;
|
|
39
|
+
// 1.4 — durable cross-invocation session. Lazily loaded on first
|
|
40
|
+
// tool call, persisted after every touch. Skipping pre-load on init
|
|
41
|
+
// because the server might never receive a tool call (e.g., the
|
|
42
|
+
// client only does tools/list and disconnects).
|
|
43
|
+
let session = null;
|
|
44
|
+
let sessionDirty = false;
|
|
45
|
+
async function ensureSession() {
|
|
46
|
+
if (session)
|
|
47
|
+
return session;
|
|
48
|
+
const { session: loaded } = await loadSession(rootPath);
|
|
49
|
+
session = loaded;
|
|
50
|
+
return session;
|
|
51
|
+
}
|
|
52
|
+
async function persistSessionIfDirty() {
|
|
53
|
+
if (!session || !sessionDirty)
|
|
54
|
+
return;
|
|
55
|
+
await saveSession(rootPath, session);
|
|
56
|
+
sessionDirty = false;
|
|
57
|
+
}
|
|
37
58
|
async function dispatch(request) {
|
|
38
59
|
const id = request.id ?? null;
|
|
39
|
-
// Notifications (no id) - no response expected.
|
|
40
60
|
const isNotification = request.id === undefined || request.id === null;
|
|
41
61
|
try {
|
|
42
62
|
switch (request.method) {
|
|
43
|
-
case 'initialize':
|
|
44
|
-
|
|
45
|
-
initialized = true;
|
|
46
|
-
// Negotiate: echo the client's version if we support it; otherwise
|
|
47
|
-
// respond with our newest version.
|
|
48
|
-
const requested = params.protocolVersion;
|
|
49
|
-
const negotiated = requested && SUPPORTED_PROTOCOL_VERSIONS.includes(requested)
|
|
50
|
-
? requested
|
|
51
|
-
: PROTOCOL_VERSION;
|
|
52
|
-
if (watchEnabled && !watchStartPromise) {
|
|
53
|
-
watchStartPromise = startFileWatcher();
|
|
54
|
-
}
|
|
55
|
-
return ok(id, {
|
|
56
|
-
protocolVersion: negotiated,
|
|
57
|
-
serverInfo: {
|
|
58
|
-
name: 'projscan',
|
|
59
|
-
version: serverVersion,
|
|
60
|
-
},
|
|
61
|
-
capabilities: {
|
|
62
|
-
tools: { listChanged: false },
|
|
63
|
-
prompts: { listChanged: false },
|
|
64
|
-
resources: { listChanged: false, subscribe: false },
|
|
65
|
-
logging: {},
|
|
66
|
-
...(watchEnabled
|
|
67
|
-
? { experimental: { fileChanged: { method: 'notifications/file_changed' } } }
|
|
68
|
-
: {}),
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
}
|
|
63
|
+
case 'initialize':
|
|
64
|
+
return handleInitialize(id, request.params);
|
|
72
65
|
case 'notifications/initialized':
|
|
73
66
|
case 'initialized':
|
|
74
67
|
return null;
|
|
@@ -76,105 +69,18 @@ export function createMcpServer(rootPath, options = {}) {
|
|
|
76
69
|
return ok(id, {});
|
|
77
70
|
case 'shutdown':
|
|
78
71
|
return ok(id, null);
|
|
79
|
-
case 'tools/list':
|
|
72
|
+
case 'tools/list':
|
|
80
73
|
return ok(id, { tools: getToolDefinitions() });
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const name = params.name;
|
|
85
|
-
if (!name) {
|
|
86
|
-
return fail(id, JSONRPC_ERROR.InvalidParams, 'Missing tool name');
|
|
87
|
-
}
|
|
88
|
-
const handler = getToolHandler(name);
|
|
89
|
-
if (!handler) {
|
|
90
|
-
return fail(id, JSONRPC_ERROR.MethodNotFound, `Unknown tool: ${name}`);
|
|
91
|
-
}
|
|
92
|
-
try {
|
|
93
|
-
const args = params.arguments ?? {};
|
|
94
|
-
// Progress emitter: if the client supplied a progressToken AND
|
|
95
|
-
// the transport gave us a notify channel, forward progress events.
|
|
96
|
-
const progressToken = params._meta?.progressToken;
|
|
97
|
-
const emit = progressToken !== undefined && options.notify
|
|
98
|
-
? (progress, total, message) => {
|
|
99
|
-
const payload = JSON.stringify({
|
|
100
|
-
jsonrpc: '2.0',
|
|
101
|
-
method: 'notifications/progress',
|
|
102
|
-
params: {
|
|
103
|
-
progressToken,
|
|
104
|
-
progress,
|
|
105
|
-
...(total !== undefined ? { total } : {}),
|
|
106
|
-
...(message !== undefined ? { message } : {}),
|
|
107
|
-
},
|
|
108
|
-
});
|
|
109
|
-
options.notify(payload);
|
|
110
|
-
}
|
|
111
|
-
: undefined;
|
|
112
|
-
const result = await withProgress(emit, () => handler(args, rootPath));
|
|
113
|
-
const rawMaxTokens = args.max_tokens;
|
|
114
|
-
const maxTokens = typeof rawMaxTokens === 'number' && Number.isFinite(rawMaxTokens) && rawMaxTokens > 0
|
|
115
|
-
? rawMaxTokens
|
|
116
|
-
: undefined;
|
|
117
|
-
const budgeted = applyBudget(result, maxTokens !== undefined ? { maxTokens } : {});
|
|
118
|
-
const payload = budgeted.truncated
|
|
119
|
-
? attachBudgetSidecar(budgeted.value, {
|
|
120
|
-
truncated: true,
|
|
121
|
-
estimatedTokens: budgeted.estimatedTokens,
|
|
122
|
-
maxTokens,
|
|
123
|
-
})
|
|
124
|
-
: budgeted.value;
|
|
125
|
-
// Opt-in response chunking: agents that want streaming set
|
|
126
|
-
// `stream: true`. Default stays single-block for backcompat.
|
|
127
|
-
const wantsStreaming = args.stream === true;
|
|
128
|
-
const content = wantsStreaming
|
|
129
|
-
? toContentBlocks(payload)
|
|
130
|
-
: [{ type: 'text', text: safeStringify(payload) }];
|
|
131
|
-
return ok(id, {
|
|
132
|
-
content,
|
|
133
|
-
isError: false,
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
catch (err) {
|
|
137
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
138
|
-
return ok(id, {
|
|
139
|
-
content: [{ type: 'text', text: `Error: ${message}` }],
|
|
140
|
-
isError: true,
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
case 'prompts/list': {
|
|
74
|
+
case 'tools/call':
|
|
75
|
+
return await handleToolsCall(id, request.params);
|
|
76
|
+
case 'prompts/list':
|
|
145
77
|
return ok(id, { prompts: getPromptDefinitions() });
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
if (!params.name) {
|
|
150
|
-
return fail(id, JSONRPC_ERROR.InvalidParams, 'Missing prompt name');
|
|
151
|
-
}
|
|
152
|
-
try {
|
|
153
|
-
const result = await getPrompt(params.name, params.arguments ?? {}, rootPath);
|
|
154
|
-
return ok(id, result);
|
|
155
|
-
}
|
|
156
|
-
catch (err) {
|
|
157
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
158
|
-
return fail(id, JSONRPC_ERROR.InvalidParams, message);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
case 'resources/list': {
|
|
78
|
+
case 'prompts/get':
|
|
79
|
+
return await handlePromptsGet(id, request.params);
|
|
80
|
+
case 'resources/list':
|
|
162
81
|
return ok(id, { resources: getResourceDefinitions() });
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
const params = (request.params ?? {});
|
|
166
|
-
if (!params.uri) {
|
|
167
|
-
return fail(id, JSONRPC_ERROR.InvalidParams, 'Missing resource uri');
|
|
168
|
-
}
|
|
169
|
-
try {
|
|
170
|
-
const content = await readResource(params.uri, rootPath);
|
|
171
|
-
return ok(id, { contents: [content] });
|
|
172
|
-
}
|
|
173
|
-
catch (err) {
|
|
174
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
175
|
-
return fail(id, JSONRPC_ERROR.InvalidParams, message);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
82
|
+
case 'resources/read':
|
|
83
|
+
return await handleResourcesRead(id, request.params);
|
|
178
84
|
default:
|
|
179
85
|
if (isNotification)
|
|
180
86
|
return null;
|
|
@@ -191,6 +97,156 @@ export function createMcpServer(rootPath, options = {}) {
|
|
|
191
97
|
void initialized;
|
|
192
98
|
}
|
|
193
99
|
}
|
|
100
|
+
function handleInitialize(id, rawParams) {
|
|
101
|
+
const params = (rawParams ?? {});
|
|
102
|
+
initialized = true;
|
|
103
|
+
const requested = params.protocolVersion;
|
|
104
|
+
const negotiated = requested && SUPPORTED_PROTOCOL_VERSIONS.includes(requested) ? requested : PROTOCOL_VERSION;
|
|
105
|
+
if (watchEnabled && !watchStartPromise) {
|
|
106
|
+
watchStartPromise = startFileWatcher();
|
|
107
|
+
}
|
|
108
|
+
return ok(id, {
|
|
109
|
+
protocolVersion: negotiated,
|
|
110
|
+
serverInfo: { name: 'projscan', version: serverVersion },
|
|
111
|
+
capabilities: {
|
|
112
|
+
tools: { listChanged: false },
|
|
113
|
+
prompts: { listChanged: false },
|
|
114
|
+
resources: { listChanged: false, subscribe: false },
|
|
115
|
+
logging: {},
|
|
116
|
+
...(watchEnabled
|
|
117
|
+
? { experimental: { fileChanged: { method: 'notifications/file_changed' } } }
|
|
118
|
+
: {}),
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
async function handleToolsCall(id, rawParams) {
|
|
123
|
+
const params = (rawParams ?? {});
|
|
124
|
+
const name = params.name;
|
|
125
|
+
if (!name)
|
|
126
|
+
return fail(id, JSONRPC_ERROR.InvalidParams, 'Missing tool name');
|
|
127
|
+
const handler = getToolHandler(name);
|
|
128
|
+
if (!handler)
|
|
129
|
+
return fail(id, JSONRPC_ERROR.MethodNotFound, `Unknown tool: ${name}`);
|
|
130
|
+
try {
|
|
131
|
+
const args = params.arguments ?? {};
|
|
132
|
+
const emit = buildProgressEmitter(params._meta?.progressToken);
|
|
133
|
+
const result = await withProgress(emit, () => handler(args, rootPath));
|
|
134
|
+
await recordSessionTouches(name, result);
|
|
135
|
+
const payload = applyBudgetAndCost(result, args);
|
|
136
|
+
const content = formatToolContent(payload, args.stream === true);
|
|
137
|
+
return ok(id, { content, isError: false });
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
141
|
+
return ok(id, {
|
|
142
|
+
content: [{ type: 'text', text: `Error: ${message}` }],
|
|
143
|
+
isError: true,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
async function handlePromptsGet(id, rawParams) {
|
|
148
|
+
const params = (rawParams ?? {});
|
|
149
|
+
if (!params.name)
|
|
150
|
+
return fail(id, JSONRPC_ERROR.InvalidParams, 'Missing prompt name');
|
|
151
|
+
try {
|
|
152
|
+
const result = await getPrompt(params.name, params.arguments ?? {}, rootPath);
|
|
153
|
+
return ok(id, result);
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
157
|
+
return fail(id, JSONRPC_ERROR.InvalidParams, message);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
async function handleResourcesRead(id, rawParams) {
|
|
161
|
+
const params = (rawParams ?? {});
|
|
162
|
+
if (!params.uri)
|
|
163
|
+
return fail(id, JSONRPC_ERROR.InvalidParams, 'Missing resource uri');
|
|
164
|
+
try {
|
|
165
|
+
const content = await readResource(params.uri, rootPath);
|
|
166
|
+
return ok(id, { contents: [content] });
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
170
|
+
return fail(id, JSONRPC_ERROR.InvalidParams, message);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Build a progress emitter that forwards progress events to the
|
|
175
|
+
* client over the notify channel — IFF the client supplied a
|
|
176
|
+
* progressToken AND the transport gave us a notify channel.
|
|
177
|
+
*/
|
|
178
|
+
function buildProgressEmitter(progressToken) {
|
|
179
|
+
if (progressToken === undefined || !options.notify)
|
|
180
|
+
return undefined;
|
|
181
|
+
const notify = options.notify;
|
|
182
|
+
return (progress, total, message) => {
|
|
183
|
+
const payload = JSON.stringify({
|
|
184
|
+
jsonrpc: '2.0',
|
|
185
|
+
method: 'notifications/progress',
|
|
186
|
+
params: {
|
|
187
|
+
progressToken,
|
|
188
|
+
progress,
|
|
189
|
+
...(total !== undefined ? { total } : {}),
|
|
190
|
+
...(message !== undefined ? { message } : {}),
|
|
191
|
+
},
|
|
192
|
+
});
|
|
193
|
+
notify(payload);
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* 1.4 — record session touches from any file paths the tool surfaced,
|
|
198
|
+
* plus an event for the call itself. Skipped when the call IS for
|
|
199
|
+
* `projscan_session` (don't pollute the read with the read).
|
|
200
|
+
* Best-effort: failures here never break the tool call.
|
|
201
|
+
*/
|
|
202
|
+
async function recordSessionTouches(name, result) {
|
|
203
|
+
if (name === 'projscan_session')
|
|
204
|
+
return;
|
|
205
|
+
try {
|
|
206
|
+
const sess = await ensureSession();
|
|
207
|
+
recordEvent(sess, `tool-call:${name}`);
|
|
208
|
+
sessionDirty = true;
|
|
209
|
+
const paths = extractTouchedPaths(result);
|
|
210
|
+
for (const p of paths)
|
|
211
|
+
recordTouch(sess, p, 'tool-result');
|
|
212
|
+
await persistSessionIfDirty();
|
|
213
|
+
}
|
|
214
|
+
catch {
|
|
215
|
+
// Session is best-effort.
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Apply the agent's `max_tokens` budget (post-hoc truncation) then
|
|
220
|
+
* attach the `_cost` sidecar (1.5+) reflecting the final payload.
|
|
221
|
+
* Budget and cost coexist when both fire; both are non-destructive.
|
|
222
|
+
*/
|
|
223
|
+
function applyBudgetAndCost(result, args) {
|
|
224
|
+
const rawMaxTokens = args.max_tokens;
|
|
225
|
+
const maxTokens = typeof rawMaxTokens === 'number' && Number.isFinite(rawMaxTokens) && rawMaxTokens > 0
|
|
226
|
+
? rawMaxTokens
|
|
227
|
+
: undefined;
|
|
228
|
+
const budgeted = applyBudget(result, maxTokens !== undefined ? { maxTokens } : {});
|
|
229
|
+
const withBudget = budgeted.truncated
|
|
230
|
+
? attachBudgetSidecar(budgeted.value, {
|
|
231
|
+
truncated: true,
|
|
232
|
+
estimatedTokens: budgeted.estimatedTokens,
|
|
233
|
+
maxTokens,
|
|
234
|
+
})
|
|
235
|
+
: budgeted.value;
|
|
236
|
+
const finalEstimatedTokens = estimateTokens(JSON.stringify(withBudget) ?? '');
|
|
237
|
+
return attachCostSidecar(withBudget, finalEstimatedTokens);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Format the post-budget payload into MCP content blocks. With
|
|
241
|
+
* `stream: true` the payload is split into multiple blocks (header
|
|
242
|
+
* + N record blocks); the default is a single text block for
|
|
243
|
+
* backwards compatibility.
|
|
244
|
+
*/
|
|
245
|
+
function formatToolContent(payload, wantsStreaming) {
|
|
246
|
+
return wantsStreaming
|
|
247
|
+
? toContentBlocks(payload)
|
|
248
|
+
: [{ type: 'text', text: safeStringify(payload) }];
|
|
249
|
+
}
|
|
194
250
|
async function handleMessage(line) {
|
|
195
251
|
const trimmed = line.trim();
|
|
196
252
|
if (!trimmed)
|
|
@@ -215,7 +271,7 @@ export function createMcpServer(rootPath, options = {}) {
|
|
|
215
271
|
return;
|
|
216
272
|
const notify = options.notify;
|
|
217
273
|
watchHandle = startWatcher(rootPath, {
|
|
218
|
-
onChange: ({ paths, graph }) => {
|
|
274
|
+
onChange: async ({ paths, graph }) => {
|
|
219
275
|
// The watcher fires once on startup with `paths: []` (the initial
|
|
220
276
|
// graph build). Skip it — clients only care about deltas.
|
|
221
277
|
if (paths.length === 0)
|
|
@@ -230,6 +286,20 @@ export function createMcpServer(rootPath, options = {}) {
|
|
|
230
286
|
},
|
|
231
287
|
});
|
|
232
288
|
notify(payload);
|
|
289
|
+
// 1.4 — also record fs-watch touches in the session so an
|
|
290
|
+
// agent's later `projscan_session touched` query reflects what
|
|
291
|
+
// changed on disk during the session.
|
|
292
|
+
try {
|
|
293
|
+
const sess = await ensureSession();
|
|
294
|
+
for (const p of paths)
|
|
295
|
+
recordTouch(sess, p, 'fs-watch');
|
|
296
|
+
recordEvent(sess, 'fs-watch:batch', { count: paths.length });
|
|
297
|
+
sessionDirty = true;
|
|
298
|
+
await persistSessionIfDirty();
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
// Best-effort.
|
|
302
|
+
}
|
|
233
303
|
},
|
|
234
304
|
});
|
|
235
305
|
try {
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAwB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAC;AAEpE,MAAM,2BAA2B,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AACjE,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;AAoBxD,MAAM,aAAa,GAAG;IACpB,UAAU,EAAE,CAAC,KAAK;IAClB,cAAc,EAAE,CAAC,KAAK;IACtB,cAAc,EAAE,CAAC,KAAK;IACtB,aAAa,EAAE,CAAC,KAAK;IACrB,aAAa,EAAE,CAAC,KAAK;CACb,CAAC;AAEX,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7F,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAwBD,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,UAA4B,EAAE;IAC9E,MAAM,aAAa,GAAG,kBAAkB,EAAE,CAAC;IAC3C,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,WAAW,GAAuB,IAAI,CAAC;IAC3C,IAAI,iBAAiB,GAAyB,IAAI,CAAC;IACnD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;IAE5E,KAAK,UAAU,QAAQ,CAAC,OAAuB;QAC7C,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC;QAE9B,gDAAgD;QAChD,MAAM,cAAc,GAAG,OAAO,CAAC,EAAE,KAAK,SAAS,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC;QAEvE,IAAI,CAAC;YACH,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAiC,CAAC;oBACtE,WAAW,GAAG,IAAI,CAAC;oBACnB,mEAAmE;oBACnE,mCAAmC;oBACnC,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC;oBACzC,MAAM,UAAU,GACd,SAAS,IAAI,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC;wBAC1D,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,gBAAgB,CAAC;oBACvB,IAAI,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACvC,iBAAiB,GAAG,gBAAgB,EAAE,CAAC;oBACzC,CAAC;oBACD,OAAO,EAAE,CAAC,EAAE,EAAE;wBACZ,eAAe,EAAE,UAAU;wBAC3B,UAAU,EAAE;4BACV,IAAI,EAAE,UAAU;4BAChB,OAAO,EAAE,aAAa;yBACvB;wBACD,YAAY,EAAE;4BACZ,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;4BAC7B,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;4BAC/B,SAAS,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;4BACnD,OAAO,EAAE,EAAE;4BACX,GAAG,CAAC,YAAY;gCACd,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,4BAA4B,EAAE,EAAE,EAAE;gCAC7E,CAAC,CAAC,EAAE,CAAC;yBACR;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,KAAK,2BAA2B,CAAC;gBACjC,KAAK,aAAa;oBAChB,OAAO,IAAI,CAAC;gBAEd,KAAK,MAAM;oBACT,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAEpB,KAAK,UAAU;oBACb,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAEtB,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;gBACjD,CAAC;gBAED,KAAK,YAAY,CAAC,CAAC,CAAC;oBAClB,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAInC,CAAC;oBACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;oBACzB,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;oBACpE,CAAC;oBACD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;oBACrC,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,cAAc,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;oBACzE,CAAC;oBACD,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;wBAEpC,+DAA+D;wBAC/D,mEAAmE;wBACnE,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC;wBAClD,MAAM,IAAI,GACR,aAAa,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM;4BAC3C,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gCAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;oCAC7B,OAAO,EAAE,KAAK;oCACd,MAAM,EAAE,wBAAwB;oCAChC,MAAM,EAAE;wCACN,aAAa;wCACb,QAAQ;wCACR,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wCACzC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qCAC9C;iCACF,CAAC,CAAC;gCACH,OAAO,CAAC,MAAO,CAAC,OAAO,CAAC,CAAC;4BAC3B,CAAC;4BACH,CAAC,CAAC,SAAS,CAAC;wBAEhB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;wBACvE,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;wBACrC,MAAM,SAAS,GACb,OAAO,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC;4BACnF,CAAC,CAAC,YAAY;4BACd,CAAC,CAAC,SAAS,CAAC;wBAChB,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACnF,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS;4BAChC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE;gCAClC,SAAS,EAAE,IAAI;gCACf,eAAe,EAAE,QAAQ,CAAC,eAAe;gCACzC,SAAS;6BACV,CAAC;4BACJ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;wBAEnB,2DAA2D;wBAC3D,6DAA6D;wBAC7D,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;wBAC5C,MAAM,OAAO,GAAG,cAAc;4BAC5B,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC;4BAC1B,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;wBAErD,OAAO,EAAE,CAAC,EAAE,EAAE;4BACZ,OAAO;4BACP,OAAO,EAAE,KAAK;yBACf,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACjE,OAAO,EAAE,CAAC,EAAE,EAAE;4BACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;4BACtD,OAAO,EAAE,IAAI;yBACd,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,KAAK,cAAc,CAAC,CAAC,CAAC;oBACpB,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;gBACrD,CAAC;gBAED,KAAK,aAAa,CAAC,CAAC,CAAC;oBACnB,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAGnC,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;wBACjB,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;oBACtE,CAAC;oBACD,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;wBAC9E,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;oBACxB,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACjE,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;oBACxD,CAAC;gBACH,CAAC;gBAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBACtB,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC;gBACzD,CAAC;gBAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBACtB,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAqB,CAAC;oBAC1D,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;wBAChB,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;oBACvE,CAAC;oBACD,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;wBACzD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACzC,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACjE,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;oBACxD,CAAC;gBACH,CAAC;gBAED;oBACE,IAAI,cAAc;wBAAE,OAAO,IAAI,CAAC;oBAChC,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,cAAc,EAAE,qBAAqB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,cAAc;gBAAE,OAAO,IAAI,CAAC;YAChC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACT,KAAK,WAAW,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,IAAY;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,IAAI,OAAuB,CAAC;QAC5B,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/G,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,aAAa,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC,CAAC;QAC7G,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,UAAU,gBAAgB;QAC7B,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE;YACnC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC7B,kEAAkE;gBAClE,0DAA0D;gBAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC7B,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,4BAA4B;oBACpC,MAAM,EAAE;wBACN,KAAK;wBACL,YAAY,EAAE,KAAK,CAAC,YAAY;wBAChC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;qBACxB;iBACF,CAAC,CAAC;gBACH,MAAM,CAAC,OAAO,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,KAAK,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,4DAA4D;QAC9D,CAAC;IACH,CAAC;IAED,SAAS,KAAK;QACZ,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,EAAE,CAAC,EAA0B,EAAE,MAAe;IACrD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,IAAI,CAAC,EAA0B,EAAE,IAAY,EAAE,OAAe,EAAE,IAAc;IACrF,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE;QACF,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAQD;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,KAAc,EAAE,IAAgB;IAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,GAAI,KAAiC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClE,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAgB,EAChB,aAAkC,EAAE;IAEpC,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE;QACvC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;YAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,KAAK,EAAE,UAAU,CAAC,KAAK;KACxB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,QAAQ,IAAI,WAAW,IAAI,CAAC,CAAC;IAE7F,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACrB,MAAM;aACH,aAAa,CAAC,IAAI,CAAC;aACnB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;YACxC,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,OAAO,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Walk an arbitrary tool-result value and pull out repo-relative file
|
|
3
|
+
* paths. Used by the MCP server dispatcher to auto-record session
|
|
4
|
+
* touches after every tools/call response.
|
|
5
|
+
*
|
|
6
|
+
* Heuristic: collect string values found under any of TOUCH_KEYS, in
|
|
7
|
+
* arrays whose keys are TOUCH_KEYS, or as top-level entries in objects
|
|
8
|
+
* keyed by TOUCH_KEYS. Filter out paths that look absolute, contain
|
|
9
|
+
* `..`, are URLs, or are clearly not source files (no `/` and no
|
|
10
|
+
* recognized extension).
|
|
11
|
+
*
|
|
12
|
+
* The goal isn't to find *every* mention — it's to recognize the file
|
|
13
|
+
* paths that projscan tools structurally surface (relativePath fields,
|
|
14
|
+
* `paths` arrays from notifications, importer lists, etc.).
|
|
15
|
+
*/
|
|
16
|
+
export declare function extractTouchedPaths(value: unknown): string[];
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Walk an arbitrary tool-result value and pull out repo-relative file
|
|
3
|
+
* paths. Used by the MCP server dispatcher to auto-record session
|
|
4
|
+
* touches after every tools/call response.
|
|
5
|
+
*
|
|
6
|
+
* Heuristic: collect string values found under any of TOUCH_KEYS, in
|
|
7
|
+
* arrays whose keys are TOUCH_KEYS, or as top-level entries in objects
|
|
8
|
+
* keyed by TOUCH_KEYS. Filter out paths that look absolute, contain
|
|
9
|
+
* `..`, are URLs, or are clearly not source files (no `/` and no
|
|
10
|
+
* recognized extension).
|
|
11
|
+
*
|
|
12
|
+
* The goal isn't to find *every* mention — it's to recognize the file
|
|
13
|
+
* paths that projscan tools structurally surface (relativePath fields,
|
|
14
|
+
* `paths` arrays from notifications, importer lists, etc.).
|
|
15
|
+
*/
|
|
16
|
+
const TOUCH_KEYS = new Set([
|
|
17
|
+
'file',
|
|
18
|
+
'files',
|
|
19
|
+
'filePath',
|
|
20
|
+
'path',
|
|
21
|
+
'paths',
|
|
22
|
+
'relativePath',
|
|
23
|
+
'relativePaths',
|
|
24
|
+
'from',
|
|
25
|
+
'to',
|
|
26
|
+
'definitions',
|
|
27
|
+
'importers',
|
|
28
|
+
'reachable',
|
|
29
|
+
'changed',
|
|
30
|
+
'added',
|
|
31
|
+
'removed',
|
|
32
|
+
'modified',
|
|
33
|
+
]);
|
|
34
|
+
const KNOWN_EXTENSIONS = new Set([
|
|
35
|
+
'.ts',
|
|
36
|
+
'.tsx',
|
|
37
|
+
'.js',
|
|
38
|
+
'.jsx',
|
|
39
|
+
'.mjs',
|
|
40
|
+
'.cjs',
|
|
41
|
+
'.mts',
|
|
42
|
+
'.cts',
|
|
43
|
+
'.py',
|
|
44
|
+
'.go',
|
|
45
|
+
'.java',
|
|
46
|
+
'.rb',
|
|
47
|
+
'.rs',
|
|
48
|
+
'.php',
|
|
49
|
+
'.cs',
|
|
50
|
+
'.json',
|
|
51
|
+
'.yaml',
|
|
52
|
+
'.yml',
|
|
53
|
+
'.toml',
|
|
54
|
+
'.md',
|
|
55
|
+
]);
|
|
56
|
+
const MAX_DEPTH = 8;
|
|
57
|
+
const MAX_PATHS = 200;
|
|
58
|
+
export function extractTouchedPaths(value) {
|
|
59
|
+
const out = new Set();
|
|
60
|
+
walk(value, /* keyHint */ null, /* depth */ 0, out);
|
|
61
|
+
return [...out].slice(0, MAX_PATHS);
|
|
62
|
+
}
|
|
63
|
+
function walk(value, keyHint, depth, out) {
|
|
64
|
+
if (out.size >= MAX_PATHS)
|
|
65
|
+
return;
|
|
66
|
+
if (depth > MAX_DEPTH)
|
|
67
|
+
return;
|
|
68
|
+
if (value == null)
|
|
69
|
+
return;
|
|
70
|
+
if (typeof value === 'string') {
|
|
71
|
+
if (keyHint && TOUCH_KEYS.has(keyHint) && looksLikePath(value)) {
|
|
72
|
+
out.add(value);
|
|
73
|
+
}
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (Array.isArray(value)) {
|
|
77
|
+
// For an array, propagate the parent's key hint so `paths: [...]`
|
|
78
|
+
// captures every entry.
|
|
79
|
+
for (const item of value)
|
|
80
|
+
walk(item, keyHint, depth + 1, out);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (typeof value === 'object') {
|
|
84
|
+
for (const [k, v] of Object.entries(value)) {
|
|
85
|
+
walk(v, k, depth + 1, out);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function looksLikePath(s) {
|
|
90
|
+
if (s.length === 0 || s.length > 1024)
|
|
91
|
+
return false;
|
|
92
|
+
if (s.includes('..'))
|
|
93
|
+
return false;
|
|
94
|
+
if (s.startsWith('/'))
|
|
95
|
+
return false;
|
|
96
|
+
if (s.startsWith('http://') || s.startsWith('https://'))
|
|
97
|
+
return false;
|
|
98
|
+
if (s.startsWith('file://'))
|
|
99
|
+
return false;
|
|
100
|
+
// Disallow shell control chars and newlines.
|
|
101
|
+
if (/[\n\r\t]/.test(s))
|
|
102
|
+
return false;
|
|
103
|
+
// Accept either: contains `/` (suggests a path) OR has a known extension.
|
|
104
|
+
const dot = s.lastIndexOf('.');
|
|
105
|
+
const hasKnownExt = dot >= 0 && KNOWN_EXTENSIONS.has(s.slice(dot).toLowerCase());
|
|
106
|
+
if (hasKnownExt)
|
|
107
|
+
return true;
|
|
108
|
+
if (s.includes('/') && /^[A-Za-z0-9._/@-]+$/.test(s))
|
|
109
|
+
return true;
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=sessionTouchScanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionTouchScanner.js","sourceRoot":"","sources":["../../src/mcp/sessionTouchScanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,3 +23,25 @@ export interface BudgetResult<T> {
|
|
|
23
23
|
* fields and trim them until we fit (or give up and mark truncated).
|
|
24
24
|
*/
|
|
25
25
|
export declare function applyBudget<T>(value: T, options?: BudgetOptions): BudgetResult<T>;
|
|
26
|
+
/**
|
|
27
|
+
* 1.5+ — `_cost` sidecar shape attached to every MCP tool result.
|
|
28
|
+
* `estimatedTokens` is the chars-divided-by-4 approximation of the
|
|
29
|
+
* serialized output's token count. `tier` is set by tools that
|
|
30
|
+
* implement adaptive shaping (e.g., projscan_review) to tell the
|
|
31
|
+
* caller which shape they got.
|
|
32
|
+
*/
|
|
33
|
+
export interface CostSidecar {
|
|
34
|
+
estimatedTokens: number;
|
|
35
|
+
tier?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Attach a `_cost` sidecar to the result. Mirrors the shape of
|
|
39
|
+
* `attachBudgetSidecar` in server.ts so arrays and primitives are
|
|
40
|
+
* wrapped rather than spread (object spread over an array yields a
|
|
41
|
+
* garbled `{ "0": ..., "1": ..., _cost }` object).
|
|
42
|
+
*
|
|
43
|
+
* If the result already has a `tier` field at top level (set by
|
|
44
|
+
* adaptive tools like projscan_review), it's lifted into the sidecar
|
|
45
|
+
* so the agent sees the chosen shape in one place.
|
|
46
|
+
*/
|
|
47
|
+
export declare function attachCostSidecar(value: unknown, estimatedTokens: number): unknown;
|
package/dist/mcp/tokenBudget.js
CHANGED
|
@@ -54,6 +54,32 @@ function safeStringify(value) {
|
|
|
54
54
|
return String(value);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Attach a `_cost` sidecar to the result. Mirrors the shape of
|
|
59
|
+
* `attachBudgetSidecar` in server.ts so arrays and primitives are
|
|
60
|
+
* wrapped rather than spread (object spread over an array yields a
|
|
61
|
+
* garbled `{ "0": ..., "1": ..., _cost }` object).
|
|
62
|
+
*
|
|
63
|
+
* If the result already has a `tier` field at top level (set by
|
|
64
|
+
* adaptive tools like projscan_review), it's lifted into the sidecar
|
|
65
|
+
* so the agent sees the chosen shape in one place.
|
|
66
|
+
*/
|
|
67
|
+
export function attachCostSidecar(value, estimatedTokens) {
|
|
68
|
+
const cost = { estimatedTokens };
|
|
69
|
+
if (value !== null &&
|
|
70
|
+
typeof value === 'object' &&
|
|
71
|
+
!Array.isArray(value) &&
|
|
72
|
+
typeof value.tier === 'string') {
|
|
73
|
+
cost.tier = value.tier;
|
|
74
|
+
}
|
|
75
|
+
if (Array.isArray(value)) {
|
|
76
|
+
return { value, _cost: cost };
|
|
77
|
+
}
|
|
78
|
+
if (value === null || typeof value !== 'object') {
|
|
79
|
+
return { value, _cost: cost };
|
|
80
|
+
}
|
|
81
|
+
return { ...value, _cost: cost };
|
|
82
|
+
}
|
|
57
83
|
/**
|
|
58
84
|
* Find top-level array field names - our convention is that MCP results
|
|
59
85
|
* expose a primary array (hotspots, entries, findings, files) worth
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenBudget.js","sourceRoot":"","sources":["../../src/mcp/tokenBudget.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tokenBudget.js","sourceRoot":"","sources":["../../src/mcp/tokenBudget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;AACnD,CAAC;AAeD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,KAAQ,EACR,UAAyB,EAAE;IAE3B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,KAAK;YACL,SAAS,EAAE,KAAK;YAChB,eAAe,EAAE,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACtD,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAExC,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;IACvE,CAAC;IAED,kEAAkE;IAClE,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;IACtE,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,MAAM,GAAG,SAAS,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;QAC1C,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1C,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,MAAM,GAAG,SAAS,IAAI,OAAO,GAAG,CAAC;QAC5C,eAAe,EAAE,MAAM;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAcD;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,eAAuB;IACvE,MAAM,IAAI,GAAgB,EAAE,eAAe,EAAE,CAAC;IAC9C,IACE,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,OAAQ,KAAiC,CAAC,IAAI,KAAK,QAAQ,EAC3D,CAAC;QACD,IAAI,CAAC,IAAI,GAAI,KAAiC,CAAC,IAAc,CAAC;IAChE,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,EAAE,GAAI,KAAiC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QACxE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAI,KAAQ,EAAE,KAAe,EAAE,MAAc;IAC9D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,KAAK,GAAG,EAAE,GAAI,KAAiC,EAAE,CAAC;IACxD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;YAC1D,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,KAAU,CAAC;AACpB,CAAC"}
|