couchloop-eq-mcp 2.0.4 → 2.0.5
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/dist/db/client.d.ts +5 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +22 -0
- package/dist/db/client.js.map +1 -1
- package/dist/server/sse.d.ts.map +1 -1
- package/dist/server/sse.js +55 -27
- package/dist/server/sse.js.map +1 -1
- package/dist/tools/correction-flow.d.ts +74 -0
- package/dist/tools/correction-flow.d.ts.map +1 -0
- package/dist/tools/correction-flow.js +205 -0
- package/dist/tools/correction-flow.js.map +1 -0
- package/dist/tools/primary-tools.d.ts +12 -0
- package/dist/tools/primary-tools.d.ts.map +1 -1
- package/dist/tools/primary-tools.js +128 -12
- package/dist/tools/primary-tools.js.map +1 -1
- package/package.json +1 -1
package/dist/db/client.d.ts
CHANGED
|
@@ -10,6 +10,11 @@ export declare function initDatabase(): Promise<{
|
|
|
10
10
|
supabase: SupabaseClient<any, "public", "public", any, any>;
|
|
11
11
|
}>;
|
|
12
12
|
export declare function getSupabase(): SupabaseClient | null;
|
|
13
|
+
/**
|
|
14
|
+
* Lazy reconnect — if the client is null (failed init or cold start),
|
|
15
|
+
* attempt to reinitialize once. Concurrent callers share the same promise.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getSupabaseOrReconnect(): Promise<SupabaseClient>;
|
|
13
18
|
export declare function closeDatabase(): Promise<void>;
|
|
14
19
|
export { supabase };
|
|
15
20
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/db/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGrE,QAAA,IAAI,QAAQ,EAAE,cAAc,GAAG,IAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGrE,QAAA,IAAI,QAAQ,EAAE,cAAc,GAAG,IAAW,CAAC;AAG3C,wBAAsB,YAAY;;GAmCjC;AAED,wBAAgB,WAAW,IAAI,cAAc,GAAG,IAAI,CAEnD;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,cAAc,CAAC,CAiBtE;AAED,wBAAsB,aAAa,kBAGlC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/db/client.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { createClient } from '@supabase/supabase-js';
|
|
8
8
|
import { logger } from '../utils/logger.js';
|
|
9
9
|
let supabase = null;
|
|
10
|
+
let reconnectPromise = null;
|
|
10
11
|
export async function initDatabase() {
|
|
11
12
|
try {
|
|
12
13
|
const supabaseUrl = process.env.SUPABASE_URL;
|
|
@@ -43,6 +44,27 @@ export async function initDatabase() {
|
|
|
43
44
|
export function getSupabase() {
|
|
44
45
|
return supabase;
|
|
45
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Lazy reconnect — if the client is null (failed init or cold start),
|
|
49
|
+
* attempt to reinitialize once. Concurrent callers share the same promise.
|
|
50
|
+
*/
|
|
51
|
+
export async function getSupabaseOrReconnect() {
|
|
52
|
+
if (supabase)
|
|
53
|
+
return supabase;
|
|
54
|
+
// Deduplicate concurrent reconnect attempts
|
|
55
|
+
if (reconnectPromise)
|
|
56
|
+
return reconnectPromise;
|
|
57
|
+
reconnectPromise = initDatabase()
|
|
58
|
+
.then(({ supabase: client }) => {
|
|
59
|
+
reconnectPromise = null;
|
|
60
|
+
return client;
|
|
61
|
+
})
|
|
62
|
+
.catch((err) => {
|
|
63
|
+
reconnectPromise = null;
|
|
64
|
+
throw err;
|
|
65
|
+
});
|
|
66
|
+
return reconnectPromise;
|
|
67
|
+
}
|
|
46
68
|
export async function closeDatabase() {
|
|
47
69
|
supabase = null;
|
|
48
70
|
logger.info('Database connection closed');
|
package/dist/db/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAkB,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,IAAI,QAAQ,GAA0B,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
|
package/dist/server/sse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/server/sse.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/server/sse.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA8Y5C;;;GAGG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,iBAoD1D;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,iBA6FjE;AA8BD;;GAEG;AACH,wBAAsB,eAAe,kBAapC"}
|
package/dist/server/sse.js
CHANGED
|
@@ -11,11 +11,36 @@ import { setupTools } from "../tools/index.js";
|
|
|
11
11
|
import { logger } from "../utils/logger.js";
|
|
12
12
|
const activeSessions = new Map();
|
|
13
13
|
const SESSION_TTL_MS = parseInt(process.env.SESSION_TTL_MS || "1800000"); // 30 minutes
|
|
14
|
+
// ── Shared tool/resource/prompt definitions (computed once, reused across sessions) ──
|
|
15
|
+
let sharedTools = null;
|
|
16
|
+
let sharedResources = null;
|
|
17
|
+
let sharedInitPromise = null;
|
|
18
|
+
async function ensureSharedInit() {
|
|
19
|
+
if (sharedTools && sharedResources)
|
|
20
|
+
return;
|
|
21
|
+
if (sharedInitPromise)
|
|
22
|
+
return sharedInitPromise;
|
|
23
|
+
sharedInitPromise = (async () => {
|
|
24
|
+
const [tools, resources] = await Promise.all([setupTools(), setupResources()]);
|
|
25
|
+
sharedTools = tools;
|
|
26
|
+
sharedResources = resources;
|
|
27
|
+
logger.info(`Shared MCP init complete: ${tools.length} tools, ${resources.length} resources`);
|
|
28
|
+
})().catch((err) => {
|
|
29
|
+
sharedInitPromise = null;
|
|
30
|
+
throw err;
|
|
31
|
+
});
|
|
32
|
+
return sharedInitPromise;
|
|
33
|
+
}
|
|
14
34
|
/**
|
|
15
|
-
* Create and configure an MCP server instance
|
|
35
|
+
* Create and configure an MCP server instance.
|
|
36
|
+
* Tools, resources, and prompts are initialized once and shared across all sessions.
|
|
16
37
|
*/
|
|
17
38
|
async function createMCPServer() {
|
|
18
|
-
//
|
|
39
|
+
// Ensure shared definitions are ready (no-op after first call)
|
|
40
|
+
await ensureSharedInit();
|
|
41
|
+
const tools = sharedTools;
|
|
42
|
+
const resources = sharedResources;
|
|
43
|
+
// Create MCP server instance (lightweight — just wires handlers to shared data)
|
|
19
44
|
const server = new Server({
|
|
20
45
|
name: "couchloop-mcp",
|
|
21
46
|
version: "2.0.3",
|
|
@@ -27,9 +52,6 @@ async function createMCPServer() {
|
|
|
27
52
|
experimental: {}, // Support experimental features for ChatGPT
|
|
28
53
|
},
|
|
29
54
|
});
|
|
30
|
-
// Set up tools and resources
|
|
31
|
-
const tools = await setupTools();
|
|
32
|
-
const resources = await setupResources();
|
|
33
55
|
// Set up tool handlers
|
|
34
56
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
35
57
|
tools: tools.map((t) => t.definition),
|
|
@@ -316,6 +338,8 @@ async function createMCPServer() {
|
|
|
316
338
|
});
|
|
317
339
|
return server;
|
|
318
340
|
}
|
|
341
|
+
// Timeout for session creation — prevents hangs when DB or tool init is slow
|
|
342
|
+
const SESSION_INIT_TIMEOUT_MS = parseInt(process.env.SESSION_INIT_TIMEOUT_MS || "5000");
|
|
319
343
|
/**
|
|
320
344
|
* Handle SSE/HTTP requests for ChatGPT MCP connection
|
|
321
345
|
* This endpoint handles both GET (SSE) and POST (HTTP) requests
|
|
@@ -327,18 +351,21 @@ export async function handleSSE(req, res) {
|
|
|
327
351
|
// Check if this is an existing session
|
|
328
352
|
let session = sessionId ? activeSessions.get(sessionId) : undefined;
|
|
329
353
|
if (!session) {
|
|
330
|
-
// Create new session
|
|
354
|
+
// Create new session with timeout guard
|
|
331
355
|
const newSessionId = `session_${crypto.randomBytes(16).toString("hex")}`;
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
356
|
+
const initSession = async () => {
|
|
357
|
+
const transport = new StreamableHTTPServerTransport({
|
|
358
|
+
sessionIdGenerator: () => newSessionId,
|
|
359
|
+
});
|
|
360
|
+
const server = await createMCPServer();
|
|
361
|
+
await server.connect(transport);
|
|
362
|
+
return { transport, server, lastActivity: Date.now() };
|
|
363
|
+
};
|
|
364
|
+
// Race session creation against a timeout to prevent indefinite hangs
|
|
365
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
366
|
+
setTimeout(() => reject(new Error(`Session init timed out after ${SESSION_INIT_TIMEOUT_MS}ms`)), SESSION_INIT_TIMEOUT_MS);
|
|
335
367
|
});
|
|
336
|
-
|
|
337
|
-
const server = await createMCPServer();
|
|
338
|
-
// Connect transport to server
|
|
339
|
-
await server.connect(transport);
|
|
340
|
-
// Store session
|
|
341
|
-
session = { transport, server, lastActivity: Date.now() };
|
|
368
|
+
session = await Promise.race([initSession(), timeoutPromise]);
|
|
342
369
|
activeSessions.set(newSessionId, session);
|
|
343
370
|
logger.info(`New MCP session created: ${newSessionId}`);
|
|
344
371
|
}
|
|
@@ -390,20 +417,21 @@ export async function handleMCPLenient(req, res) {
|
|
|
390
417
|
// Check if this is an existing session
|
|
391
418
|
let session = sessionId ? activeSessions.get(sessionId) : undefined;
|
|
392
419
|
if (!session) {
|
|
393
|
-
// Create new session
|
|
420
|
+
// Create new session with timeout guard
|
|
394
421
|
const newSessionId = `session_${crypto.randomBytes(16).toString("hex")}`;
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
422
|
+
const initSession = async () => {
|
|
423
|
+
const transport = new StreamableHTTPServerTransport({
|
|
424
|
+
sessionIdGenerator: () => newSessionId,
|
|
425
|
+
enableJsonResponse: true,
|
|
426
|
+
});
|
|
427
|
+
const server = await createMCPServer();
|
|
428
|
+
await server.connect(transport);
|
|
429
|
+
return { transport, server, lastActivity: Date.now() };
|
|
430
|
+
};
|
|
431
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
432
|
+
setTimeout(() => reject(new Error(`Lenient session init timed out after ${SESSION_INIT_TIMEOUT_MS}ms`)), SESSION_INIT_TIMEOUT_MS);
|
|
400
433
|
});
|
|
401
|
-
|
|
402
|
-
const server = await createMCPServer();
|
|
403
|
-
// Connect transport to server
|
|
404
|
-
await server.connect(transport);
|
|
405
|
-
// Store session
|
|
406
|
-
session = { transport, server, lastActivity: Date.now() };
|
|
434
|
+
session = await Promise.race([initSession(), timeoutPromise]);
|
|
407
435
|
activeSessions.set(newSessionId, session);
|
|
408
436
|
logger.info(`New lenient MCP session created: ${newSessionId}`);
|
|
409
437
|
}
|
package/dist/server/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/server/sse.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/server/sse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Correction Flow — Stateful error correction for AI mistakes.
|
|
3
|
+
*
|
|
4
|
+
* State machine:
|
|
5
|
+
* PENDING_ACKNOWLEDGMENT → user confirms issue → PENDING_FIX_APPROVAL → user approves fix → APPLIED
|
|
6
|
+
* → user says "no" → DISMISSED (ask user to explain)
|
|
7
|
+
*
|
|
8
|
+
* Memory auto-save happens at PENDING_FIX_APPROVAL (after user confirms the issue is correct),
|
|
9
|
+
* not at detection time — because until the user confirms, we don't know if we caught the right problem.
|
|
10
|
+
*
|
|
11
|
+
* SECURITY: Corrections are scoped by session_id. All lookups and mutations
|
|
12
|
+
* require a session_id to prevent cross-user state leakage in shared processes.
|
|
13
|
+
*/
|
|
14
|
+
export declare enum CorrectionState {
|
|
15
|
+
PENDING_ACKNOWLEDGMENT = "pending_acknowledgment",
|
|
16
|
+
PENDING_FIX_APPROVAL = "pending_fix_approval",
|
|
17
|
+
APPLIED = "applied",
|
|
18
|
+
DISMISSED = "dismissed"
|
|
19
|
+
}
|
|
20
|
+
export interface CorrectionEntry {
|
|
21
|
+
id: string;
|
|
22
|
+
session_id: string;
|
|
23
|
+
state: CorrectionState;
|
|
24
|
+
created_at: string;
|
|
25
|
+
created_at_ms: number;
|
|
26
|
+
issues_detected: string[];
|
|
27
|
+
proposed_fixes: string[];
|
|
28
|
+
verified_content: string;
|
|
29
|
+
fixed_code?: string;
|
|
30
|
+
user_confirmed_issue: boolean;
|
|
31
|
+
user_approved_fix: boolean;
|
|
32
|
+
saved_to_memory: boolean;
|
|
33
|
+
memory_save_error?: string;
|
|
34
|
+
auth?: Record<string, unknown>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create a new correction from verify results.
|
|
38
|
+
* Returns the correction in PENDING_ACKNOWLEDGMENT state.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createCorrection(issues: string[], fixes: string[], content: string, sessionId: string, fixedCode?: string, auth?: Record<string, unknown>): CorrectionEntry;
|
|
41
|
+
/**
|
|
42
|
+
* User confirms the detected issue is correct.
|
|
43
|
+
* Transitions to PENDING_FIX_APPROVAL and auto-saves to memory.
|
|
44
|
+
* Requires session_id to prevent cross-user confirmation.
|
|
45
|
+
*/
|
|
46
|
+
export declare function confirmIssue(correctionId: string, sessionId: string): Promise<CorrectionEntry>;
|
|
47
|
+
/**
|
|
48
|
+
* User approves the proposed fix.
|
|
49
|
+
* Transitions to APPLIED and cleans up.
|
|
50
|
+
* Requires session_id to prevent cross-user approval.
|
|
51
|
+
*/
|
|
52
|
+
export declare function approveFix(correctionId: string, sessionId: string): CorrectionEntry;
|
|
53
|
+
/**
|
|
54
|
+
* User says "no, that's not the issue".
|
|
55
|
+
* Can only dismiss from PENDING_ACKNOWLEDGMENT or PENDING_FIX_APPROVAL — not terminal states.
|
|
56
|
+
* Requires session_id to prevent cross-user dismissal.
|
|
57
|
+
*/
|
|
58
|
+
export declare function dismissCorrection(correctionId: string, sessionId: string): CorrectionEntry;
|
|
59
|
+
/**
|
|
60
|
+
* Get a pending correction by ID.
|
|
61
|
+
*/
|
|
62
|
+
export declare function getCorrection(correctionId: string): CorrectionEntry | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Get the most recent pending correction for a specific session.
|
|
65
|
+
* Only returns corrections belonging to the given session_id.
|
|
66
|
+
* Optionally filter by expected state to avoid returning entries
|
|
67
|
+
* that the caller's operation would immediately reject.
|
|
68
|
+
*/
|
|
69
|
+
export declare function getMostRecentPendingCorrection(sessionId: string, expectedState?: CorrectionState): CorrectionEntry | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* Clear all corrections. Used in tests to isolate state between test cases.
|
|
72
|
+
*/
|
|
73
|
+
export declare function clearAllCorrections(): void;
|
|
74
|
+
//# sourceMappingURL=correction-flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correction-flow.d.ts","sourceRoot":"","sources":["../../src/tools/correction-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoBH,oBAAY,eAAe;IACzB,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,OAAO,YAAY;IACnB,SAAS,cAAc;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,eAAe,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAeD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,eAAe,CAsBjB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAgCpG;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAqBnF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,CAoB1F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,eAAe,GAC9B,eAAe,GAAG,SAAS,CAgB7B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Correction Flow — Stateful error correction for AI mistakes.
|
|
3
|
+
*
|
|
4
|
+
* State machine:
|
|
5
|
+
* PENDING_ACKNOWLEDGMENT → user confirms issue → PENDING_FIX_APPROVAL → user approves fix → APPLIED
|
|
6
|
+
* → user says "no" → DISMISSED (ask user to explain)
|
|
7
|
+
*
|
|
8
|
+
* Memory auto-save happens at PENDING_FIX_APPROVAL (after user confirms the issue is correct),
|
|
9
|
+
* not at detection time — because until the user confirms, we don't know if we caught the right problem.
|
|
10
|
+
*
|
|
11
|
+
* SECURITY: Corrections are scoped by session_id. All lookups and mutations
|
|
12
|
+
* require a session_id to prevent cross-user state leakage in shared processes.
|
|
13
|
+
*/
|
|
14
|
+
import { handleSmartContext } from './smart-context.js';
|
|
15
|
+
import { sanitizeText } from '../utils/inputSanitize.js';
|
|
16
|
+
import { logger } from '../utils/logger.js';
|
|
17
|
+
/**
|
|
18
|
+
* Redact common secret patterns from content before persisting.
|
|
19
|
+
* Catches API keys, tokens, passwords, and connection strings.
|
|
20
|
+
*/
|
|
21
|
+
function redactSecrets(content) {
|
|
22
|
+
return content
|
|
23
|
+
.replace(/(?:key|token|secret|password|apikey|api_key|auth)[\s]*[=:]\s*['"]?[^\s'"]{8,}/gi, '[REDACTED_SECRET]')
|
|
24
|
+
.replace(/(?:sk|pk)[-_](?:live|test)[-_][a-zA-Z0-9]{20,}/g, '[REDACTED_KEY]')
|
|
25
|
+
.replace(/eyJ[a-zA-Z0-9_-]{10,}\.[a-zA-Z0-9_-]{10,}/g, '[REDACTED_JWT]')
|
|
26
|
+
.replace(/(?:postgres|mysql|mongodb|redis):\/\/[^\s]{10,}/gi, '[REDACTED_CONNECTION_STRING]');
|
|
27
|
+
}
|
|
28
|
+
// ── Types ──────────────────────────────────────────────────────────────────────
|
|
29
|
+
export var CorrectionState;
|
|
30
|
+
(function (CorrectionState) {
|
|
31
|
+
CorrectionState["PENDING_ACKNOWLEDGMENT"] = "pending_acknowledgment";
|
|
32
|
+
CorrectionState["PENDING_FIX_APPROVAL"] = "pending_fix_approval";
|
|
33
|
+
CorrectionState["APPLIED"] = "applied";
|
|
34
|
+
CorrectionState["DISMISSED"] = "dismissed";
|
|
35
|
+
})(CorrectionState || (CorrectionState = {}));
|
|
36
|
+
// ── In-memory store keyed by correction ID, scoped by session_id ───────────────
|
|
37
|
+
const pendingCorrections = new Map();
|
|
38
|
+
let correctionCounter = 0;
|
|
39
|
+
function generateCorrectionId() {
|
|
40
|
+
correctionCounter++;
|
|
41
|
+
return `correction_${Date.now()}_${correctionCounter}`;
|
|
42
|
+
}
|
|
43
|
+
// ── Public API ─────────────────────────────────────────────────────────────────
|
|
44
|
+
/**
|
|
45
|
+
* Create a new correction from verify results.
|
|
46
|
+
* Returns the correction in PENDING_ACKNOWLEDGMENT state.
|
|
47
|
+
*/
|
|
48
|
+
export function createCorrection(issues, fixes, content, sessionId, fixedCode, auth) {
|
|
49
|
+
const id = generateCorrectionId();
|
|
50
|
+
const now = Date.now();
|
|
51
|
+
const entry = {
|
|
52
|
+
id,
|
|
53
|
+
session_id: sessionId,
|
|
54
|
+
state: CorrectionState.PENDING_ACKNOWLEDGMENT,
|
|
55
|
+
created_at: new Date(now).toISOString(),
|
|
56
|
+
created_at_ms: now,
|
|
57
|
+
issues_detected: issues,
|
|
58
|
+
proposed_fixes: fixes,
|
|
59
|
+
verified_content: redactSecrets(sanitizeText(content.substring(0, 500))),
|
|
60
|
+
fixed_code: fixedCode,
|
|
61
|
+
user_confirmed_issue: false,
|
|
62
|
+
user_approved_fix: false,
|
|
63
|
+
saved_to_memory: false,
|
|
64
|
+
auth,
|
|
65
|
+
};
|
|
66
|
+
pendingCorrections.set(id, entry);
|
|
67
|
+
logger.info(`[Correction] Created ${id} for session ${sessionId} in PENDING_ACKNOWLEDGMENT state`);
|
|
68
|
+
return entry;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* User confirms the detected issue is correct.
|
|
72
|
+
* Transitions to PENDING_FIX_APPROVAL and auto-saves to memory.
|
|
73
|
+
* Requires session_id to prevent cross-user confirmation.
|
|
74
|
+
*/
|
|
75
|
+
export async function confirmIssue(correctionId, sessionId) {
|
|
76
|
+
const entry = pendingCorrections.get(correctionId);
|
|
77
|
+
if (!entry) {
|
|
78
|
+
throw new Error(`Correction ${correctionId} not found. It may have expired.`);
|
|
79
|
+
}
|
|
80
|
+
if (entry.session_id !== sessionId) {
|
|
81
|
+
throw new Error(`Correction ${correctionId} does not belong to this session.`);
|
|
82
|
+
}
|
|
83
|
+
if (entry.state !== CorrectionState.PENDING_ACKNOWLEDGMENT) {
|
|
84
|
+
throw new Error(`Correction ${correctionId} is in state ${entry.state}, expected ${CorrectionState.PENDING_ACKNOWLEDGMENT}.`);
|
|
85
|
+
}
|
|
86
|
+
entry.state = CorrectionState.PENDING_FIX_APPROVAL;
|
|
87
|
+
entry.user_confirmed_issue = true;
|
|
88
|
+
// Now that the user confirmed the issue is real, save to memory with auth context
|
|
89
|
+
try {
|
|
90
|
+
await handleSmartContext({
|
|
91
|
+
content: `AI mistake confirmed by user: ${entry.issues_detected.join('; ')}. Original content: ${entry.verified_content}`,
|
|
92
|
+
type: 'constraint',
|
|
93
|
+
tags: ['ai-mistake', 'do-not-repeat'],
|
|
94
|
+
session_id: entry.session_id,
|
|
95
|
+
auth: entry.auth,
|
|
96
|
+
});
|
|
97
|
+
entry.saved_to_memory = true;
|
|
98
|
+
logger.info(`[Correction] ${correctionId} → PENDING_FIX_APPROVAL, saved to memory`);
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
logger.warn(`[Correction] Failed to save mistake to memory:`, err);
|
|
102
|
+
entry.memory_save_error = err instanceof Error ? err.message : 'Unknown error';
|
|
103
|
+
}
|
|
104
|
+
return entry;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* User approves the proposed fix.
|
|
108
|
+
* Transitions to APPLIED and cleans up.
|
|
109
|
+
* Requires session_id to prevent cross-user approval.
|
|
110
|
+
*/
|
|
111
|
+
export function approveFix(correctionId, sessionId) {
|
|
112
|
+
const entry = pendingCorrections.get(correctionId);
|
|
113
|
+
if (!entry) {
|
|
114
|
+
throw new Error(`Correction ${correctionId} not found. It may have expired.`);
|
|
115
|
+
}
|
|
116
|
+
if (entry.session_id !== sessionId) {
|
|
117
|
+
throw new Error(`Correction ${correctionId} does not belong to this session.`);
|
|
118
|
+
}
|
|
119
|
+
if (entry.state !== CorrectionState.PENDING_FIX_APPROVAL) {
|
|
120
|
+
throw new Error(`Correction ${correctionId} is in state ${entry.state}, expected ${CorrectionState.PENDING_FIX_APPROVAL}. Did you call confirm first?`);
|
|
121
|
+
}
|
|
122
|
+
entry.state = CorrectionState.APPLIED;
|
|
123
|
+
entry.user_approved_fix = true;
|
|
124
|
+
logger.info(`[Correction] ${correctionId} → APPLIED`);
|
|
125
|
+
// Clean up after a short delay (let the response be read first)
|
|
126
|
+
setTimeout(() => pendingCorrections.delete(correctionId), 60000);
|
|
127
|
+
return entry;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* User says "no, that's not the issue".
|
|
131
|
+
* Can only dismiss from PENDING_ACKNOWLEDGMENT or PENDING_FIX_APPROVAL — not terminal states.
|
|
132
|
+
* Requires session_id to prevent cross-user dismissal.
|
|
133
|
+
*/
|
|
134
|
+
export function dismissCorrection(correctionId, sessionId) {
|
|
135
|
+
const entry = pendingCorrections.get(correctionId);
|
|
136
|
+
if (!entry) {
|
|
137
|
+
throw new Error(`Correction ${correctionId} not found. It may have expired.`);
|
|
138
|
+
}
|
|
139
|
+
if (entry.session_id !== sessionId) {
|
|
140
|
+
throw new Error(`Correction ${correctionId} does not belong to this session.`);
|
|
141
|
+
}
|
|
142
|
+
if (entry.state === CorrectionState.APPLIED || entry.state === CorrectionState.DISMISSED) {
|
|
143
|
+
throw new Error(`Correction ${correctionId} is already in terminal state ${entry.state} and cannot be dismissed.`);
|
|
144
|
+
}
|
|
145
|
+
entry.state = CorrectionState.DISMISSED;
|
|
146
|
+
logger.info(`[Correction] ${correctionId} → DISMISSED`);
|
|
147
|
+
// Clean up after a delay
|
|
148
|
+
setTimeout(() => pendingCorrections.delete(correctionId), 60000);
|
|
149
|
+
return entry;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Get a pending correction by ID.
|
|
153
|
+
*/
|
|
154
|
+
export function getCorrection(correctionId) {
|
|
155
|
+
return pendingCorrections.get(correctionId);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Get the most recent pending correction for a specific session.
|
|
159
|
+
* Only returns corrections belonging to the given session_id.
|
|
160
|
+
* Optionally filter by expected state to avoid returning entries
|
|
161
|
+
* that the caller's operation would immediately reject.
|
|
162
|
+
*/
|
|
163
|
+
export function getMostRecentPendingCorrection(sessionId, expectedState) {
|
|
164
|
+
let latest;
|
|
165
|
+
for (const entry of pendingCorrections.values()) {
|
|
166
|
+
if (entry.session_id !== sessionId)
|
|
167
|
+
continue;
|
|
168
|
+
if (expectedState) {
|
|
169
|
+
if (entry.state !== expectedState)
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
// Default: return any non-terminal correction
|
|
174
|
+
if (entry.state !== CorrectionState.PENDING_ACKNOWLEDGMENT &&
|
|
175
|
+
entry.state !== CorrectionState.PENDING_FIX_APPROVAL)
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
if (!latest || entry.created_at_ms > latest.created_at_ms) {
|
|
179
|
+
latest = entry;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return latest;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Clear all corrections. Used in tests to isolate state between test cases.
|
|
186
|
+
*/
|
|
187
|
+
export function clearAllCorrections() {
|
|
188
|
+
pendingCorrections.clear();
|
|
189
|
+
}
|
|
190
|
+
// ── Cleanup expired corrections (older than 30 minutes) ────────────────────────
|
|
191
|
+
const cleanupInterval = setInterval(() => {
|
|
192
|
+
const cutoff = Date.now() - 30 * 60 * 1000;
|
|
193
|
+
let cleaned = 0;
|
|
194
|
+
for (const [id, entry] of pendingCorrections.entries()) {
|
|
195
|
+
if (entry.created_at_ms < cutoff) {
|
|
196
|
+
pendingCorrections.delete(id);
|
|
197
|
+
cleaned++;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (cleaned > 0) {
|
|
201
|
+
logger.info(`[Correction] Cleaned up ${cleaned} expired corrections`);
|
|
202
|
+
}
|
|
203
|
+
}, 5 * 60 * 1000);
|
|
204
|
+
cleanupInterval.unref();
|
|
205
|
+
//# sourceMappingURL=correction-flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correction-flow.js","sourceRoot":"","sources":["../../src/tools/correction-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -158,6 +158,10 @@ export declare function setupTools(): Promise<({
|
|
|
158
158
|
type: string;
|
|
159
159
|
description: string;
|
|
160
160
|
};
|
|
161
|
+
correction_id: {
|
|
162
|
+
type: string;
|
|
163
|
+
description: string;
|
|
164
|
+
};
|
|
161
165
|
packages: {
|
|
162
166
|
type: string;
|
|
163
167
|
items: {
|
|
@@ -178,6 +182,14 @@ export declare function setupTools(): Promise<({
|
|
|
178
182
|
type: string;
|
|
179
183
|
description: string;
|
|
180
184
|
};
|
|
185
|
+
session_id: {
|
|
186
|
+
type: string;
|
|
187
|
+
description: string;
|
|
188
|
+
};
|
|
189
|
+
auth: {
|
|
190
|
+
type: string;
|
|
191
|
+
description: string;
|
|
192
|
+
};
|
|
181
193
|
};
|
|
182
194
|
required: string[];
|
|
183
195
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primary-tools.d.ts","sourceRoot":"","sources":["../../src/tools/primary-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AASH,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"primary-tools.d.ts","sourceRoot":"","sources":["../../src/tools/primary-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AASH,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAcxD,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAkc3E,wBAAsB,UAAU;oBAZV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,aAAa,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAhE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,aAAa,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAhE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,aAAa,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAhE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,aAAa,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAqDrF;AAGD,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,kBAAkB,GACnB,CAAC"}
|
|
@@ -32,6 +32,7 @@ import { getCheckpoints } from './checkpoint.js';
|
|
|
32
32
|
import { getInsights, getUserContext } from './insight.js';
|
|
33
33
|
import { handleVerify } from './verify.js';
|
|
34
34
|
import { statusTool } from './status.js';
|
|
35
|
+
import { createCorrection, confirmIssue, approveFix, dismissCorrection, getMostRecentPendingCorrection, CorrectionState, } from './correction-flow.js';
|
|
35
36
|
import { runToolWithPolicy } from '../policy/index.js';
|
|
36
37
|
import { logger } from '../utils/logger.js';
|
|
37
38
|
// ============================================================
|
|
@@ -57,7 +58,7 @@ const ConversationInputSchema = z.object({
|
|
|
57
58
|
const memoryTool = {
|
|
58
59
|
definition: {
|
|
59
60
|
name: 'memory',
|
|
60
|
-
description: 'Save and retrieve context, insights, checkpoints, and decisions across conversations. Prevents AI amnesia. Use action "save" to store, "recall" to retrieve, "list" to browse.',
|
|
61
|
+
description: 'Save and retrieve context, insights, checkpoints, and decisions across conversations. Prevents AI amnesia. Use action "save" to store, "recall" to retrieve, "list" to browse. Use type "checkpoint" for sprint progress ("save where I am", "bookmark this"), type "decision" for architectural choices and milestones ("lock this in", "we decided on X"), type "constraint" for rules the AI must follow ("never do X again", "always ask before Y"). Constraints tagged "ai-mistake" are auto-saved by the review tool when it catches errors — recall these at the start of new conversations to avoid repeating past mistakes. Triggers: "remember this", "stash this context", "where did we leave off", "what did we decide", "what was the approach we picked", "load my previous context", "don\'t lose this", "never do that again". With no arguments, returns a summary of everything saved.',
|
|
61
62
|
annotations: {
|
|
62
63
|
readOnlyHint: false,
|
|
63
64
|
destructiveHint: false,
|
|
@@ -79,7 +80,7 @@ const memoryTool = {
|
|
|
79
80
|
type: {
|
|
80
81
|
type: 'string',
|
|
81
82
|
enum: ['checkpoint', 'insight', 'decision', 'requirement', 'constraint', 'pattern'],
|
|
82
|
-
description: '
|
|
83
|
+
description: 'checkpoint: short-term sprint progress, quick save points, "save where I am". insight: learnings and realizations. decision: long-term architectural or milestone decisions that should persist across projects. requirement/constraint: project rules. pattern: reusable code patterns.',
|
|
83
84
|
},
|
|
84
85
|
tags: {
|
|
85
86
|
type: 'array',
|
|
@@ -128,7 +129,7 @@ const memoryTool = {
|
|
|
128
129
|
const conversationTool = {
|
|
129
130
|
definition: {
|
|
130
131
|
name: 'conversation',
|
|
131
|
-
description: '
|
|
132
|
+
description: 'Guided self-reflection, burnout check-ins, and wellness conversations with crisis detection. Routes to therapeutic AI backend. Triggers: "I\'m burned out", "need a break", "feeling stuck", "let\'s do a retro on my week", "check in with me", "I keep going in circles", "rubber duck my frustration", "decompress", "vent session", "daily standup with myself". Use when the user sounds frustrated, stuck, or wants a non-code conversation about how work is going. NOTE: if the user is angry at AI output specifically (cursing at the AI, "you broke it"), prefer the review tool with verify mode first to address the problem — only use conversation if frustration persists without a code context or the user explicitly wants to talk it out.',
|
|
132
133
|
annotations: {
|
|
133
134
|
readOnlyHint: false,
|
|
134
135
|
destructiveHint: false,
|
|
@@ -198,11 +199,11 @@ const conversationTool = {
|
|
|
198
199
|
const reviewTool = {
|
|
199
200
|
definition: {
|
|
200
201
|
name: 'review',
|
|
201
|
-
description: 'Unified code review, package audit,
|
|
202
|
+
description: 'Unified code review, package audit, pre-delivery verification, and error correction. Modes: "code" for security/quality analysis, "packages" for dependency audit, "verify" for hallucination/fact check (starts correction flow), "confirm" for user confirming detected issue, "apply-fix" for user approving the fix, "dismiss" for user saying "that\'s not the issue", "full" for all checks. Triggers: "review this", "sanity check this", "is this safe to ship", "check before I push", "audit my deps", "sniff test this", "vet these dependencies". ALSO use verify mode when the user expresses distrust or frustration: "are you sure", "that doesn\'t look right", "prove it", "did you make that up", "that broke everything", "why did you do that", "I didn\'t ask for this". Profanity or anger directed at the AI is a strong signal to immediately run verify. CORRECTION FLOW: verify detects issue → present it plainly and ask "is this what you mean?" → user confirms (call with mode "confirm") → explain fix and ask permission → user approves (call with mode "apply-fix") → apply. If user says no (mode "dismiss"), ask them to explain. Memory auto-saves the mistake ONLY after user confirms. Use proactively when the user pastes code, shares a diff, or adds new packages.',
|
|
202
203
|
annotations: {
|
|
203
|
-
readOnlyHint:
|
|
204
|
+
readOnlyHint: false,
|
|
204
205
|
destructiveHint: false,
|
|
205
|
-
idempotentHint:
|
|
206
|
+
idempotentHint: false,
|
|
206
207
|
openWorldHint: true,
|
|
207
208
|
},
|
|
208
209
|
inputSchema: {
|
|
@@ -210,13 +211,17 @@ const reviewTool = {
|
|
|
210
211
|
properties: {
|
|
211
212
|
mode: {
|
|
212
213
|
type: 'string',
|
|
213
|
-
enum: ['code', 'packages', 'verify', 'full'],
|
|
214
|
-
description: 'code: security
|
|
214
|
+
enum: ['code', 'packages', 'verify', 'confirm', 'apply-fix', 'dismiss', 'full'],
|
|
215
|
+
description: 'code: security/quality analysis. packages: dependency audit. verify: hallucination/fact check — starts a correction flow. confirm: user confirms the detected issue is correct (requires correction_id). apply-fix: user approves the proposed fix (requires correction_id). dismiss: user says "that\'s not the issue" (requires correction_id). full: all checks.',
|
|
215
216
|
},
|
|
216
217
|
content: {
|
|
217
218
|
type: 'string',
|
|
218
219
|
description: 'Code to review, content to verify, or general input for analysis',
|
|
219
220
|
},
|
|
221
|
+
correction_id: {
|
|
222
|
+
type: 'string',
|
|
223
|
+
description: 'ID of a pending correction (for confirm, apply-fix, dismiss modes). If omitted, uses the most recent pending correction.',
|
|
224
|
+
},
|
|
220
225
|
packages: {
|
|
221
226
|
type: 'array',
|
|
222
227
|
items: { type: 'string' },
|
|
@@ -235,12 +240,22 @@ const reviewTool = {
|
|
|
235
240
|
type: 'boolean',
|
|
236
241
|
description: 'Attempt to auto-fix issues (default: false, code mode only)',
|
|
237
242
|
},
|
|
243
|
+
session_id: {
|
|
244
|
+
type: 'string',
|
|
245
|
+
description: 'Session ID for scoping correction flow state. Required for confirm, apply-fix, dismiss modes.',
|
|
246
|
+
},
|
|
247
|
+
auth: {
|
|
248
|
+
type: 'object',
|
|
249
|
+
description: 'Authentication context for user identification. Passed through to memory when saving mistakes.',
|
|
250
|
+
},
|
|
238
251
|
},
|
|
239
252
|
required: ['mode'],
|
|
240
253
|
},
|
|
241
254
|
},
|
|
242
255
|
handler: async (args) => {
|
|
243
256
|
const mode = args.mode;
|
|
257
|
+
const sessionId = args.session_id || 'anonymous';
|
|
258
|
+
const auth = args.auth;
|
|
244
259
|
switch (mode) {
|
|
245
260
|
case 'code':
|
|
246
261
|
if (!args.content) {
|
|
@@ -259,16 +274,104 @@ const reviewTool = {
|
|
|
259
274
|
packages: args.packages,
|
|
260
275
|
registry: args.registry,
|
|
261
276
|
});
|
|
262
|
-
case 'verify':
|
|
277
|
+
case 'verify': {
|
|
263
278
|
if (!args.content) {
|
|
264
279
|
return { success: false, error: 'content is required for verify mode' };
|
|
265
280
|
}
|
|
266
|
-
|
|
281
|
+
const verifyResult = await handleVerify({
|
|
267
282
|
type: 'all',
|
|
268
283
|
content: args.content,
|
|
269
284
|
language: args.language,
|
|
270
285
|
registry: args.registry,
|
|
271
286
|
});
|
|
287
|
+
const issues = verifyResult.issues;
|
|
288
|
+
const fixes = verifyResult.fixes;
|
|
289
|
+
// If issues found, create a correction and enter PENDING_ACKNOWLEDGMENT
|
|
290
|
+
// Do NOT save to memory yet — wait for user to confirm the issue is correct
|
|
291
|
+
if (verifyResult.success && !verifyResult.verified && issues && issues.length > 0) {
|
|
292
|
+
const fixedCode = verifyResult.code_verification?.fixed_code;
|
|
293
|
+
const correction = createCorrection(issues, fixes && fixes.length > 0 ? fixes : ['No automatic fix available — manual correction needed.'], args.content, sessionId, fixedCode, auth);
|
|
294
|
+
return {
|
|
295
|
+
...verifyResult,
|
|
296
|
+
correction: {
|
|
297
|
+
correction_id: correction.id,
|
|
298
|
+
state: correction.state,
|
|
299
|
+
what_i_found: issues,
|
|
300
|
+
instruction: 'I found potential issues. Present them plainly to the user and ask: "Is this what you are referring to?" Do NOT propose fixes yet. Do NOT save to memory yet. Wait for the user to confirm with review mode "confirm".',
|
|
301
|
+
},
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
return verifyResult;
|
|
305
|
+
}
|
|
306
|
+
// ── User confirms the detected issue is correct ──
|
|
307
|
+
case 'confirm': {
|
|
308
|
+
const correctionId = args.correction_id;
|
|
309
|
+
const correction = correctionId
|
|
310
|
+
? await confirmIssue(correctionId, sessionId)
|
|
311
|
+
: await (async () => {
|
|
312
|
+
const pending = getMostRecentPendingCorrection(sessionId, CorrectionState.PENDING_ACKNOWLEDGMENT);
|
|
313
|
+
if (!pending)
|
|
314
|
+
throw new Error('No pending correction to confirm. Run verify first.');
|
|
315
|
+
return confirmIssue(pending.id, sessionId);
|
|
316
|
+
})();
|
|
317
|
+
return {
|
|
318
|
+
success: true,
|
|
319
|
+
correction: {
|
|
320
|
+
correction_id: correction.id,
|
|
321
|
+
state: correction.state,
|
|
322
|
+
proposed_fixes: correction.proposed_fixes,
|
|
323
|
+
fixed_code: correction.fixed_code || null,
|
|
324
|
+
saved_to_memory: correction.saved_to_memory,
|
|
325
|
+
memory_save_error: correction.memory_save_error || null,
|
|
326
|
+
instruction: 'The user confirmed the issue. Now explain the fix clearly and ask: "Want me to go ahead with this fix?" Wait for approval before applying. Use review mode "apply-fix" when the user approves.',
|
|
327
|
+
},
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
// ── User approves the fix ──
|
|
331
|
+
case 'apply-fix': {
|
|
332
|
+
const applyId = args.correction_id;
|
|
333
|
+
const applied = applyId
|
|
334
|
+
? approveFix(applyId, sessionId)
|
|
335
|
+
: (() => {
|
|
336
|
+
const pending = getMostRecentPendingCorrection(sessionId, CorrectionState.PENDING_FIX_APPROVAL);
|
|
337
|
+
if (!pending)
|
|
338
|
+
throw new Error('No pending correction to apply. Run verify and confirm first.');
|
|
339
|
+
return approveFix(pending.id, sessionId);
|
|
340
|
+
})();
|
|
341
|
+
return {
|
|
342
|
+
success: true,
|
|
343
|
+
correction: {
|
|
344
|
+
correction_id: applied.id,
|
|
345
|
+
state: applied.state,
|
|
346
|
+
proposed_fixes: applied.proposed_fixes,
|
|
347
|
+
fixed_code: applied.fixed_code || null,
|
|
348
|
+
instruction: 'The user approved the fix. Apply it now.',
|
|
349
|
+
},
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
// ── User says "no, that's not the issue" ──
|
|
353
|
+
case 'dismiss': {
|
|
354
|
+
// Dismiss accepts any non-terminal state (both PENDING_ACKNOWLEDGMENT and
|
|
355
|
+
// PENDING_FIX_APPROVAL), so no expectedState filter — intentionally broader
|
|
356
|
+
// than confirm/apply-fix which target specific states.
|
|
357
|
+
const dismissId = args.correction_id;
|
|
358
|
+
const dismissed = dismissId
|
|
359
|
+
? dismissCorrection(dismissId, sessionId)
|
|
360
|
+
: (() => {
|
|
361
|
+
const pending = getMostRecentPendingCorrection(sessionId);
|
|
362
|
+
if (!pending)
|
|
363
|
+
throw new Error('No pending correction to dismiss.');
|
|
364
|
+
return dismissCorrection(pending.id, sessionId);
|
|
365
|
+
})();
|
|
366
|
+
return {
|
|
367
|
+
success: true,
|
|
368
|
+
correction: {
|
|
369
|
+
correction_id: dismissed.id,
|
|
370
|
+
state: dismissed.state,
|
|
371
|
+
instruction: 'The detected issue was not what the user meant. Ask the user to explain what went wrong so you can help correctly. Do NOT guess.',
|
|
372
|
+
},
|
|
373
|
+
};
|
|
374
|
+
}
|
|
272
375
|
case 'full': {
|
|
273
376
|
const results = {};
|
|
274
377
|
if (args.content) {
|
|
@@ -277,11 +380,24 @@ const reviewTool = {
|
|
|
277
380
|
language: args.language,
|
|
278
381
|
auto_fix: args.auto_fix,
|
|
279
382
|
});
|
|
280
|
-
|
|
383
|
+
const fullVerifyResult = await handleVerify({
|
|
281
384
|
type: 'all',
|
|
282
385
|
content: args.content,
|
|
283
386
|
language: args.language,
|
|
284
387
|
});
|
|
388
|
+
results.verification = fullVerifyResult;
|
|
389
|
+
const fullIssues = fullVerifyResult.issues;
|
|
390
|
+
const fullFixes = fullVerifyResult.fixes;
|
|
391
|
+
if (fullVerifyResult.success && !fullVerifyResult.verified && fullIssues && fullIssues.length > 0) {
|
|
392
|
+
const fixedCode = fullVerifyResult.code_verification?.fixed_code;
|
|
393
|
+
const correction = createCorrection(fullIssues, fullFixes && fullFixes.length > 0 ? fullFixes : ['No automatic fix available — manual correction needed.'], args.content, sessionId, fixedCode, auth);
|
|
394
|
+
results.correction = {
|
|
395
|
+
correction_id: correction.id,
|
|
396
|
+
state: correction.state,
|
|
397
|
+
what_i_found: fullIssues,
|
|
398
|
+
instruction: 'I found potential issues. Present them plainly to the user and ask: "Is this what you are referring to?" Do NOT propose fixes yet. Wait for confirmation.',
|
|
399
|
+
};
|
|
400
|
+
}
|
|
285
401
|
}
|
|
286
402
|
if (args.packages) {
|
|
287
403
|
results.package_audit = await handleComprehensivePackageAudit({
|
|
@@ -295,7 +411,7 @@ const reviewTool = {
|
|
|
295
411
|
return { success: true, mode: 'full', results };
|
|
296
412
|
}
|
|
297
413
|
default:
|
|
298
|
-
return { success: false, error: `Unknown mode: ${mode}. Use: code, packages, verify, or full` };
|
|
414
|
+
return { success: false, error: `Unknown mode: ${mode}. Use: code, packages, verify, confirm, apply-fix, dismiss, or full` };
|
|
299
415
|
}
|
|
300
416
|
},
|
|
301
417
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primary-tools.js","sourceRoot":"","sources":["../../src/tools/primary-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"primary-tools.js","sourceRoot":"","sources":["../../src/tools/primary-tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "couchloop-eq-mcp",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.5",
|
|
4
4
|
"description": "Behavioral governance layer for LLMs - monitors for hallucination, inconsistency, tone drift, and unsafe reasoning while managing stateful AI sessions",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|