couchloop-eq-mcp 1.3.3 → 1.4.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.
Files changed (57) hide show
  1. package/dist/clients/shrinkChatClient.d.ts +10 -10
  2. package/dist/db/client.d.ts.map +1 -1
  3. package/dist/db/client.js +6 -3
  4. package/dist/db/client.js.map +1 -1
  5. package/dist/index.js +5 -85
  6. package/dist/index.js.map +1 -1
  7. package/dist/server/sse.d.ts.map +1 -1
  8. package/dist/server/sse.js +4 -2
  9. package/dist/server/sse.js.map +1 -1
  10. package/dist/tools/Hallucinated Packages Corpus from Claude.d.ts +72 -0
  11. package/dist/tools/Hallucinated Packages Corpus from Claude.d.ts.map +1 -0
  12. package/dist/tools/Hallucinated Packages Corpus from Claude.js +447 -0
  13. package/dist/tools/Hallucinated Packages Corpus from Claude.js.map +1 -0
  14. package/dist/tools/MCP Usage Takeaways.guard.d.ts +4 -0
  15. package/dist/tools/MCP Usage Takeaways.guard.d.ts.map +1 -0
  16. package/dist/tools/MCP Usage Takeaways.guard.js +343 -0
  17. package/dist/tools/MCP Usage Takeaways.guard.js.map +1 -0
  18. package/dist/tools/checkpoint.d.ts.map +1 -1
  19. package/dist/tools/checkpoint.js +4 -20
  20. package/dist/tools/checkpoint.js.map +1 -1
  21. package/dist/tools/detect-build-context.d.ts +1 -1
  22. package/dist/tools/generate-upgrade-report.d.ts +2 -2
  23. package/dist/tools/guard.d.ts +120 -0
  24. package/dist/tools/guard.d.ts.map +1 -0
  25. package/dist/tools/guard.js +345 -0
  26. package/dist/tools/guard.js.map +1 -0
  27. package/dist/tools/hallucinated-packages-corpus.d.ts +7 -0
  28. package/dist/tools/hallucinated-packages-corpus.d.ts.map +1 -0
  29. package/dist/tools/hallucinated-packages-corpus.js +7 -0
  30. package/dist/tools/hallucinated-packages-corpus.js.map +1 -0
  31. package/dist/tools/intent-router.d.ts +20 -24
  32. package/dist/tools/intent-router.d.ts.map +1 -1
  33. package/dist/tools/intent-router.js +39 -7
  34. package/dist/tools/intent-router.js.map +1 -1
  35. package/dist/tools/pre-review-code.d.ts +2 -2
  36. package/dist/tools/prevent-ai-errors.d.ts +3 -3
  37. package/dist/tools/primary-tools.d.ts +84 -275
  38. package/dist/tools/primary-tools.d.ts.map +1 -1
  39. package/dist/tools/primary-tools.js +52 -9
  40. package/dist/tools/primary-tools.js.map +1 -1
  41. package/dist/tools/protect-files.d.ts +1 -1
  42. package/dist/tools/sendMessage.d.ts.map +1 -1
  43. package/dist/tools/sendMessage.js +17 -34
  44. package/dist/tools/sendMessage.js.map +1 -1
  45. package/dist/tools/session-manager.d.ts +5 -1
  46. package/dist/tools/session-manager.d.ts.map +1 -1
  47. package/dist/tools/session-manager.js +23 -19
  48. package/dist/tools/session-manager.js.map +1 -1
  49. package/dist/tools/smart-context.d.ts +1 -1
  50. package/dist/tools/verify.d.ts +5 -5
  51. package/dist/types/session.d.ts +2 -2
  52. package/package.json +1 -1
  53. package/assets/screenshots/checkpoint_session.png +0 -0
  54. package/assets/screenshots/code_review_workflow.png +0 -0
  55. package/assets/screenshots/insight_retrieve.png +0 -0
  56. package/assets/screenshots/insight_save.png +0 -0
  57. package/assets/screenshots/save_insights.png +0 -0
@@ -0,0 +1,343 @@
1
+ import { z } from "zod";
2
+ import { GovernancePipeline, } from "../governance/evaluationEngine.js";
3
+ import { InterventionEngine } from "../governance/intervention.js";
4
+ import { loadConfig } from "../governance/config.js";
5
+ import { scanPackageList, CORPUS_STATS, } from "./hallucinated-packages-corpus.js";
6
+ // ─────────────────────────────────────────────────────────────────────────────
7
+ // Domain detection signals
8
+ // ─────────────────────────────────────────────────────────────────────────────
9
+ const DEV_SIGNALS = [
10
+ /\b(npm|yarn|pnpm|pip|cargo|gem)\s+install\b/i,
11
+ /\b(import|require|from)\s+['"][^'"]+['"]/i,
12
+ /\b(function|class|const|let|var|async|await|interface|type)\b/,
13
+ /\b(error|exception|stack\s*trace|undefined|null|NaN)\b/i,
14
+ /\b(git|commit|branch|merge|pull\s*request|PR)\b/i,
15
+ /\b(API|endpoint|REST|GraphQL|webhook|SDK)\b/i,
16
+ /\b(docker|kubernetes|CI\/CD|pipeline|deploy)\b/i,
17
+ /\b(typescript|javascript|python|rust|golang|node\.?js)\b/i,
18
+ ];
19
+ const CLINICAL_SIGNALS = [
20
+ /\b(suicid|self.harm|self.injur|overdose|end\s+my\s+life|want\s+to\s+die)\b/i,
21
+ /\b(depressed|depression|anxiety|anxious|panic|dissociat)\b/i,
22
+ /\b(therapist|psychiatrist|medication|diagnosis|disorder|mental\s+health)\b/i,
23
+ /\b(trauma|PTSD|abuse|grief|loss|overwhelmed|hopeless)\b/i,
24
+ /\b(cutting|burning|starving|purging|binge)\b/i,
25
+ /\b(crisis|hotline|emergency|911|hospital)\b/i,
26
+ ];
27
+ function detectDomain(conversation, responseDraft) {
28
+ const fullText = [
29
+ ...conversation.map((t) => t.content),
30
+ responseDraft,
31
+ ].join(" ");
32
+ // Clinical takes priority — safety first
33
+ const clinicalScore = CLINICAL_SIGNALS.filter((s) => s.test(fullText)).length;
34
+ if (clinicalScore >= 1)
35
+ return "clinical";
36
+ const devScore = DEV_SIGNALS.filter((s) => s.test(fullText)).length;
37
+ if (devScore >= 2)
38
+ return "dev";
39
+ return "unknown";
40
+ }
41
+ // ─────────────────────────────────────────────────────────────────────────────
42
+ // Package extraction helpers
43
+ // ─────────────────────────────────────────────────────────────────────────────
44
+ function extractPackageNames(text) {
45
+ const names = [];
46
+ // npm/yarn/pnpm install commands
47
+ const installPattern = /(?:npm|yarn|pnpm)\s+(?:install|add|i)\s+((?:@?[\w][\w.-]*\/[\w.-]+|[\w][\w.-]*)(?:\s+(?:@?[\w][\w.-]*\/[\w.-]+|[\w][\w.-]*))*)/g;
48
+ let match;
49
+ while ((match = installPattern.exec(text)) !== null) {
50
+ const pkgs = match[1]
51
+ .split(/\s+/)
52
+ .map((p) => p.replace(/^-+.*$/, "").trim()) // drop flags
53
+ .filter((p) => p && !p.startsWith("-") && !p.startsWith("@") || p.startsWith("@"));
54
+ names.push(...pkgs.filter(Boolean));
55
+ }
56
+ // import/require statements
57
+ const importPattern = /(?:import\s+(?:.*?\s+from\s+)?|require\s*\(\s*)['"](@?[\w][\w.-]*(?:\/[\w.-]+)?)['"]/g;
58
+ while ((match = importPattern.exec(text)) !== null) {
59
+ // Only flag third-party (not relative paths)
60
+ if (!match[1].startsWith(".") && !match[1].startsWith("/")) {
61
+ names.push(match[1]);
62
+ }
63
+ }
64
+ return [...new Set(names)];
65
+ }
66
+ // ─────────────────────────────────────────────────────────────────────────────
67
+ // Crisis signal detection (fast pre-check before full pipeline)
68
+ // ─────────────────────────────────────────────────────────────────────────────
69
+ function hasCrisisSignals(turns) {
70
+ const recentUserTurns = turns
71
+ .filter((t) => t.role === "user")
72
+ .slice(-5)
73
+ .map((t) => t.content)
74
+ .join(" ");
75
+ return CLINICAL_SIGNALS.some((s) => s.test(recentUserTurns));
76
+ }
77
+ // ─────────────────────────────────────────────────────────────────────────────
78
+ // ID generation
79
+ // ─────────────────────────────────────────────────────────────────────────────
80
+ function generateEvaluationId() {
81
+ return `eval_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
82
+ }
83
+ // ─────────────────────────────────────────────────────────────────────────────
84
+ // Tool registration
85
+ // ─────────────────────────────────────────────────────────────────────────────
86
+ export function registerGuardTool(server) {
87
+ server.tool("guard", [
88
+ "Silent conversation governance layer. Call this on every response before delivering it to the user.",
89
+ "",
90
+ "Evaluates the draft response against hallucination, inconsistency, tone drift,",
91
+ "and unsafe reasoning detectors. Intervenes silently when thresholds are crossed.",
92
+ "",
93
+ "Actions:",
94
+ " pass — response is clean, deliver as-is",
95
+ " modified — response was corrected, deliver the returned response instead",
96
+ " blocked — response was unsafe, deliver the returned safe fallback",
97
+ "",
98
+ "Modes:",
99
+ " enforce (default) — evaluate and apply interventions",
100
+ " shadow — evaluate and log only, always pass original through",
101
+ " bypass — skip evaluation entirely",
102
+ "",
103
+ `Corpus: ${CORPUS_STATS.confirmedMalicious} confirmed malicious, ${CORPUS_STATS.documentedHallucinations} documented hallucinations, ${CORPUS_STATS.incompleteNameMappings} name mappings, ${CORPUS_STATS.suspiciousPatterns} pattern rules. Last updated ${CORPUS_STATS.lastUpdated}.`,
104
+ ].join("\n"), {
105
+ response: z
106
+ .string()
107
+ .describe("The draft response about to be delivered to the user"),
108
+ conversation: z
109
+ .array(z.object({
110
+ role: z.enum(["user", "assistant"]),
111
+ content: z.string(),
112
+ }))
113
+ .optional()
114
+ .default([])
115
+ .describe("Recent conversation history (last 5-10 turns recommended)"),
116
+ domain: z
117
+ .enum(["dev", "clinical", "auto"])
118
+ .optional()
119
+ .default("auto")
120
+ .describe("Governance domain. 'auto' detects from conversation context. Clinical always takes priority."),
121
+ session_id: z
122
+ .string()
123
+ .optional()
124
+ .describe("Session identifier for audit trail continuity"),
125
+ mode: z
126
+ .enum(["enforce", "shadow", "bypass"])
127
+ .optional()
128
+ .default("enforce")
129
+ .describe("enforce=apply interventions, shadow=log-only, bypass=skip evaluation"),
130
+ }, async ({ response, conversation = [], domain = "auto", session_id, mode = "enforce", }) => {
131
+ const startTime = Date.now();
132
+ const evaluationId = generateEvaluationId();
133
+ // ── bypass mode ──────────────────────────────────────────────────────
134
+ if (mode === "bypass") {
135
+ const result = {
136
+ action: "pass",
137
+ response,
138
+ domain_detected: "unknown",
139
+ evaluation_id: evaluationId,
140
+ elapsed_ms: Date.now() - startTime,
141
+ mode: "bypass",
142
+ corpus_version: CORPUS_STATS.lastUpdated,
143
+ };
144
+ return { content: [{ type: "text", text: JSON.stringify(result) }] };
145
+ }
146
+ try {
147
+ // ── domain detection ─────────────────────────────────────────────
148
+ const domainDetected = domain === "auto"
149
+ ? detectDomain(conversation, response)
150
+ : domain;
151
+ const config = await loadConfig();
152
+ let action = "pass";
153
+ let finalResponse = response;
154
+ let intervention;
155
+ let detectorResults = {};
156
+ // ── dev path ─────────────────────────────────────────────────────
157
+ if (domainDetected === "dev" || domainDetected === "unknown") {
158
+ // Fast corpus check first — no API call needed
159
+ const packageNamesInResponse = extractPackageNames(response);
160
+ const flaggedPackages = scanPackageList(packageNamesInResponse);
161
+ if (flaggedPackages.length > 0) {
162
+ const topFlag = flaggedPackages[0];
163
+ const alternatives = flaggedPackages
164
+ .filter((f) => f.suggestedAlternative)
165
+ .map((f) => `${f.name} → ${f.suggestedAlternative}`)
166
+ .join(", ");
167
+ detectorResults.hallucination = {
168
+ flagged: true,
169
+ alternatives_summary: alternatives || null,
170
+ packages: flaggedPackages.map((f) => ({
171
+ name: f.name,
172
+ confidence: f.confidence,
173
+ reason: f.reason,
174
+ source: f.source,
175
+ alternative: f.suggestedAlternative,
176
+ })),
177
+ };
178
+ if (mode === "enforce") {
179
+ // Build corrected response
180
+ let correctedResponse = response;
181
+ for (const flag of flaggedPackages) {
182
+ if (flag.suggestedAlternative) {
183
+ // Replace the package name in install commands and imports
184
+ const installRegex = new RegExp(`((?:npm|yarn|pnpm)\\s+(?:install|add|i)\\s+[^\\n]*?)\\b${escapeRegex(flag.name)}\\b`, "gi");
185
+ correctedResponse = correctedResponse.replace(installRegex, (m, prefix) => `${prefix}${flag.suggestedAlternative} /* ⚠ was: ${flag.name} */`);
186
+ }
187
+ }
188
+ const wasModified = correctedResponse !== response;
189
+ action = topFlag.source === "confirmed_malicious" ? "blocked" : wasModified ? "modified" : "pass";
190
+ if (action !== "pass") {
191
+ finalResponse =
192
+ action === "blocked"
193
+ ? buildBlockedFallback(topFlag.reason, topFlag.suggestedAlternative)
194
+ : correctedResponse;
195
+ intervention = {
196
+ type: action === "blocked"
197
+ ? "package_hallucination_blocked"
198
+ : "package_hallucination_corrected",
199
+ reason: topFlag.reason,
200
+ confidence: topFlag.confidence === "high" ? 0.95 : topFlag.confidence === "medium" ? 0.7 : 0.45,
201
+ original_response: response,
202
+ };
203
+ }
204
+ }
205
+ }
206
+ // Full pipeline for dev (hallucination + inconsistency only — tone/unsafe disabled for dev)
207
+ if (action === "pass" && domainDetected === "dev") {
208
+ try {
209
+ const sessionCtx = {
210
+ sessionId: session_id ?? evaluationId,
211
+ domain: "dev",
212
+ conversationHistory: conversation,
213
+ };
214
+ const pipelineResult = await GovernancePipeline.evaluate(response, sessionCtx, {
215
+ enabledDetectors: ["hallucination", "inconsistency"],
216
+ });
217
+ detectorResults = {
218
+ ...detectorResults,
219
+ pipeline: pipelineResult.detectorResults,
220
+ };
221
+ if (pipelineResult.requiresIntervention && mode === "enforce") {
222
+ const interventionResult = await InterventionEngine.intervene(response, pipelineResult, sessionCtx);
223
+ if (interventionResult.action !== "approve") {
224
+ action =
225
+ interventionResult.action === "block" ? "blocked" : "modified";
226
+ finalResponse = interventionResult.modifiedResponse ?? response;
227
+ intervention = {
228
+ type: `pipeline_${interventionResult.action}`,
229
+ reason: interventionResult.reason ?? "Governance pipeline intervention",
230
+ confidence: interventionResult.confidence ?? 0.8,
231
+ original_response: response,
232
+ };
233
+ }
234
+ }
235
+ }
236
+ catch {
237
+ // Pipeline failure — fail open, don't block user
238
+ }
239
+ }
240
+ }
241
+ // ── clinical path ────────────────────────────────────────────────
242
+ if (domainDetected === "clinical") {
243
+ const crisisDetected = hasCrisisSignals(conversation);
244
+ detectorResults.crisis_pre_check = {
245
+ flagged: crisisDetected,
246
+ turns_analyzed: Math.min(conversation.filter((t) => t.role === "user").length, 5),
247
+ };
248
+ try {
249
+ const sessionCtx = {
250
+ sessionId: session_id ?? evaluationId,
251
+ domain: "clinical",
252
+ conversationHistory: conversation,
253
+ crisisSignalsDetected: crisisDetected,
254
+ };
255
+ const pipelineResult = await GovernancePipeline.evaluate(response, sessionCtx, {
256
+ enabledDetectors: [
257
+ "hallucination",
258
+ "inconsistency",
259
+ "toneDrift",
260
+ "unsafeReasoning",
261
+ ],
262
+ });
263
+ detectorResults = {
264
+ ...detectorResults,
265
+ pipeline: pipelineResult.detectorResults,
266
+ };
267
+ if (pipelineResult.requiresIntervention && mode === "enforce") {
268
+ const interventionResult = await InterventionEngine.intervene(response, pipelineResult, sessionCtx);
269
+ if (interventionResult.action !== "approve") {
270
+ action =
271
+ interventionResult.action === "block" ? "blocked" : "modified";
272
+ finalResponse = interventionResult.modifiedResponse ?? response;
273
+ intervention = {
274
+ type: `clinical_${interventionResult.action}`,
275
+ reason: interventionResult.reason ?? "Clinical governance intervention",
276
+ confidence: interventionResult.confidence ?? 0.85,
277
+ original_response: response,
278
+ };
279
+ }
280
+ }
281
+ }
282
+ catch {
283
+ // Pipeline failure — fail open
284
+ }
285
+ }
286
+ // ── shadow mode override ─────────────────────────────────────────
287
+ // Evaluated, logged, but always passes original through
288
+ if (mode === "shadow") {
289
+ action = "pass";
290
+ finalResponse = response;
291
+ }
292
+ const result = {
293
+ action,
294
+ response: finalResponse,
295
+ ...(intervention ? { intervention } : {}),
296
+ domain_detected: domainDetected,
297
+ evaluation_id: evaluationId,
298
+ elapsed_ms: Date.now() - startTime,
299
+ mode,
300
+ corpus_version: CORPUS_STATS.lastUpdated,
301
+ detector_results: detectorResults,
302
+ };
303
+ return { content: [{ type: "text", text: JSON.stringify(result) }] };
304
+ }
305
+ catch (err) {
306
+ // Top-level failure — always fail open
307
+ const result = {
308
+ action: "pass",
309
+ response,
310
+ domain_detected: "unknown",
311
+ evaluation_id: evaluationId,
312
+ elapsed_ms: Date.now() - startTime,
313
+ mode,
314
+ corpus_version: CORPUS_STATS.lastUpdated,
315
+ detector_results: {
316
+ error: err instanceof Error ? err.message : "Unknown governance error",
317
+ fail_open: true,
318
+ },
319
+ };
320
+ return { content: [{ type: "text", text: JSON.stringify(result) }] };
321
+ }
322
+ });
323
+ }
324
+ // ─────────────────────────────────────────────────────────────────────────────
325
+ // Helpers
326
+ // ─────────────────────────────────────────────────────────────────────────────
327
+ function escapeRegex(s) {
328
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
329
+ }
330
+ function buildBlockedFallback(reason, alternative) {
331
+ const parts = [
332
+ "⚠️ I can't recommend that package — it has been flagged as a confirmed malicious or hallucinated package name.",
333
+ reason,
334
+ ];
335
+ if (alternative) {
336
+ parts.push(`The package you may be looking for is: **${alternative}**`);
337
+ }
338
+ parts.push("Please verify any package name before installing.");
339
+ return parts.join("\n\n");
340
+ }
341
+ // Named export for primary-tools.ts registration
342
+ export const guardTool = registerGuardTool;
343
+ //# sourceMappingURL=MCP%20Usage%20Takeaways.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MCP Usage Takeaways.guard.js","sourceRoot":"","sources":["../../src/tools/MCP Usage Takeaways.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,kBAAkB,GAGnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EACL,eAAe,EACf,YAAY,GAEb,MAAM,mCAAmC,CAAC;AAgC3C,gFAAgF;AAChF,2BAA2B;AAC3B,gFAAgF;AAEhF,MAAM,WAAW,GAAG;IAClB,8CAA8C;IAC9C,2CAA2C;IAC3C,+DAA+D;IAC/D,yDAAyD;IACzD,kDAAkD;IAClD,8CAA8C;IAC9C,iDAAiD;IACjD,2DAA2D;CAC5D,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACvB,6EAA6E;IAC7E,6DAA6D;IAC7D,6EAA6E;IAC7E,0DAA0D;IAC1D,+CAA+C;IAC/C,8CAA8C;CAC/C,CAAC;AAEF,SAAS,YAAY,CACnB,YAAgC,EAChC,aAAqB;IAErB,MAAM,QAAQ,GAAG;QACf,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACrC,aAAa;KACd,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,yCAAyC;IACzC,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9E,IAAI,aAAa,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC;IAE1C,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IACpE,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEhC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,iCAAiC;IACjC,MAAM,cAAc,GAClB,iIAAiI,CAAC;IACpI,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;aAClB,KAAK,CAAC,KAAK,CAAC;aACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa;aACxD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACrF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,4BAA4B;IAC5B,MAAM,aAAa,GACjB,uFAAuF,CAAC;IAC1F,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnD,6CAA6C;QAC7C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,gFAAgF;AAChF,gEAAgE;AAChE,gFAAgF;AAEhF,SAAS,gBAAgB,CAAC,KAAyB;IACjD,MAAM,eAAe,GAAG,KAAK;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAChC,KAAK,CAAC,CAAC,CAAC,CAAC;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SACrB,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,SAAS,oBAAoB;IAC3B,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,MAAM,CAAC,IAAI,CACT,OAAO,EACP;QACE,qGAAqG;QACrG,EAAE;QACF,gFAAgF;QAChF,kFAAkF;QAClF,EAAE;QACF,UAAU;QACV,+CAA+C;QAC/C,4EAA4E;QAC5E,sEAAsE;QACtE,EAAE;QACF,QAAQ;QACR,wDAAwD;QACxD,2EAA2E;QAC3E,gDAAgD;QAChD,EAAE;QACF,WAAW,YAAY,CAAC,kBAAkB,yBAAyB,YAAY,CAAC,wBAAwB,+BAA+B,YAAY,CAAC,sBAAsB,mBAAmB,YAAY,CAAC,kBAAkB,gCAAgC,YAAY,CAAC,WAAW,GAAG;KACxR,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ;QACE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CAAC,sDAAsD,CAAC;QACnE,YAAY,EAAE,CAAC;aACZ,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;SACpB,CAAC,CACH;aACA,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,2DAA2D,CAAC;QACxE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;aACjC,QAAQ,EAAE;aACV,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CACP,8FAA8F,CAC/F;QACH,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,+CAA+C,CAAC;QAC5D,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;aACrC,QAAQ,EAAE;aACV,OAAO,CAAC,SAAS,CAAC;aAClB,QAAQ,CACP,sEAAsE,CACvE;KACJ,EACD,KAAK,EAAE,EACL,QAAQ,EACR,YAAY,GAAG,EAAE,EACjB,MAAM,GAAG,MAAM,EACf,UAAU,EACV,IAAI,GAAG,SAAS,GACjB,EAA+D,EAAE;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAC;QAE5C,wEAAwE;QACxE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,MAAM,GAAgB;gBAC1B,MAAM,EAAE,MAAM;gBACd,QAAQ;gBACR,eAAe,EAAE,SAAS;gBAC1B,aAAa,EAAE,YAAY;gBAC3B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE,YAAY,CAAC,WAAW;aACzC,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QACvE,CAAC;QAED,IAAI,CAAC;YACH,oEAAoE;YACpE,MAAM,cAAc,GAClB,MAAM,KAAK,MAAM;gBACf,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC;gBACtC,CAAC,CAAC,MAAM,CAAC;YAEb,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;YAClC,IAAI,MAAM,GAAe,MAAM,CAAC;YAChC,IAAI,aAAa,GAAG,QAAQ,CAAC;YAC7B,IAAI,YAAqD,CAAC;YAC1D,IAAI,eAAe,GAA4B,EAAE,CAAC;YAElD,oEAAoE;YACpE,IAAI,cAAc,KAAK,KAAK,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBAC7D,+CAA+C;gBAC/C,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBAC7D,MAAM,eAAe,GAAoC,eAAe,CAAC,sBAAsB,CAAC,CAAC;gBAEjG,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,MAAM,OAAO,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;oBACnC,MAAM,YAAY,GAAG,eAAe;yBACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC;yBACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,oBAAoB,EAAE,CAAC;yBACnD,IAAI,CAAC,IAAI,CAAC,CAAC;oBAEd,eAAe,CAAC,aAAa,GAAG;wBAC9B,OAAO,EAAE,IAAI;wBACb,oBAAoB,EAAE,YAAY,IAAI,IAAI;wBAC1C,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;4BACpC,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,UAAU,EAAE,CAAC,CAAC,UAAU;4BACxB,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,WAAW,EAAE,CAAC,CAAC,oBAAoB;yBACpC,CAAC,CAAC;qBACJ,CAAC;oBAEF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBACvB,2BAA2B;wBAC3B,IAAI,iBAAiB,GAAG,QAAQ,CAAC;wBACjC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;4BACnC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gCAC9B,2DAA2D;gCAC3D,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,0DAA0D,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EACrF,IAAI,CACL,CAAC;gCACF,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAC3C,YAAY,EACZ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CACZ,GAAG,MAAM,GAAG,IAAI,CAAC,oBAAoB,cAAc,IAAI,CAAC,IAAI,KAAK,CACpE,CAAC;4BACJ,CAAC;wBACH,CAAC;wBAED,MAAM,WAAW,GAAG,iBAAiB,KAAK,QAAQ,CAAC;wBACnD,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;wBAElG,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;4BACtB,aAAa;gCACX,MAAM,KAAK,SAAS;oCAClB,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC;oCACpE,CAAC,CAAC,iBAAiB,CAAC;4BAExB,YAAY,GAAG;gCACb,IAAI,EACF,MAAM,KAAK,SAAS;oCAClB,CAAC,CAAC,+BAA+B;oCACjC,CAAC,CAAC,iCAAiC;gCACvC,MAAM,EAAE,OAAO,CAAC,MAAM;gCACtB,UAAU,EAAE,OAAO,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;gCAC/F,iBAAiB,EAAE,QAAQ;6BAC5B,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,4FAA4F;gBAC5F,IAAI,MAAM,KAAK,MAAM,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;oBAClD,IAAI,CAAC;wBACH,MAAM,UAAU,GAAmB;4BACjC,SAAS,EAAE,UAAU,IAAI,YAAY;4BACrC,MAAM,EAAE,KAAK;4BACb,mBAAmB,EAAE,YAAY;yBAClC,CAAC;wBAEF,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CACtD,QAAQ,EACR,UAAU,EACV;4BACE,gBAAgB,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;yBACrD,CACF,CAAC;wBAEF,eAAe,GAAG;4BAChB,GAAG,eAAe;4BAClB,QAAQ,EAAE,cAAc,CAAC,eAAe;yBACzC,CAAC;wBAEF,IAAI,cAAc,CAAC,oBAAoB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC9D,MAAM,kBAAkB,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAC3D,QAAQ,EACR,cAAc,EACd,UAAU,CACX,CAAC;4BAEF,IAAI,kBAAkB,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gCAC5C,MAAM;oCACJ,kBAAkB,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;gCACjE,aAAa,GAAG,kBAAkB,CAAC,gBAAgB,IAAI,QAAQ,CAAC;gCAChE,YAAY,GAAG;oCACb,IAAI,EAAE,YAAY,kBAAkB,CAAC,MAAM,EAAE;oCAC7C,MAAM,EAAE,kBAAkB,CAAC,MAAM,IAAI,kCAAkC;oCACvE,UAAU,EAAE,kBAAkB,CAAC,UAAU,IAAI,GAAG;oCAChD,iBAAiB,EAAE,QAAQ;iCAC5B,CAAC;4BACJ,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,iDAAiD;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,oEAAoE;YACpE,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;gBAClC,MAAM,cAAc,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAEtD,eAAe,CAAC,gBAAgB,GAAG;oBACjC,OAAO,EAAE,cAAc;oBACvB,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;iBAClF,CAAC;gBAEF,IAAI,CAAC;oBACH,MAAM,UAAU,GAAmB;wBACjC,SAAS,EAAE,UAAU,IAAI,YAAY;wBACrC,MAAM,EAAE,UAAU;wBAClB,mBAAmB,EAAE,YAAY;wBACjC,qBAAqB,EAAE,cAAc;qBACtC,CAAC;oBAEF,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CACtD,QAAQ,EACR,UAAU,EACV;wBACE,gBAAgB,EAAE;4BAChB,eAAe;4BACf,eAAe;4BACf,WAAW;4BACX,iBAAiB;yBAClB;qBACF,CACF,CAAC;oBAEF,eAAe,GAAG;wBAChB,GAAG,eAAe;wBAClB,QAAQ,EAAE,cAAc,CAAC,eAAe;qBACzC,CAAC;oBAEF,IAAI,cAAc,CAAC,oBAAoB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBAC9D,MAAM,kBAAkB,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAC3D,QAAQ,EACR,cAAc,EACd,UAAU,CACX,CAAC;wBAEF,IAAI,kBAAkB,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;4BAC5C,MAAM;gCACJ,kBAAkB,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;4BACjE,aAAa,GAAG,kBAAkB,CAAC,gBAAgB,IAAI,QAAQ,CAAC;4BAChE,YAAY,GAAG;gCACb,IAAI,EAAE,YAAY,kBAAkB,CAAC,MAAM,EAAE;gCAC7C,MAAM,EAAE,kBAAkB,CAAC,MAAM,IAAI,kCAAkC;gCACvE,UAAU,EAAE,kBAAkB,CAAC,UAAU,IAAI,IAAI;gCACjD,iBAAiB,EAAE,QAAQ;6BAC5B,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,+BAA+B;gBACjC,CAAC;YACH,CAAC;YAED,oEAAoE;YACpE,wDAAwD;YACxD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,MAAM,GAAG,MAAM,CAAC;gBAChB,aAAa,GAAG,QAAQ,CAAC;YAC3B,CAAC;YAED,MAAM,MAAM,GAAgB;gBAC1B,MAAM;gBACN,QAAQ,EAAE,aAAa;gBACvB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,eAAe,EAAE,cAAc;gBAC/B,aAAa,EAAE,YAAY;gBAC3B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,IAAI;gBACJ,cAAc,EAAE,YAAY,CAAC,WAAW;gBACxC,gBAAgB,EAAE,eAAe;aAClC,CAAC;YAEF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uCAAuC;YACvC,MAAM,MAAM,GAAgB;gBAC1B,MAAM,EAAE,MAAM;gBACd,QAAQ;gBACR,eAAe,EAAE,SAAS;gBAC1B,aAAa,EAAE,YAAY;gBAC3B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,IAAI;gBACJ,cAAc,EAAE,YAAY,CAAC,WAAW;gBACxC,gBAAgB,EAAE;oBAChB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B;oBACtE,SAAS,EAAE,IAAI;iBAChB;aACF,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QACvE,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc,EAAE,WAAoB;IAChE,MAAM,KAAK,GAAG;QACZ,gHAAgH;QAChH,MAAM;KACP,CAAC;IACF,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,4CAA4C,WAAW,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,MAAM,SAAS,GAAG,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/tools/checkpoint.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAOlF,wBAAsB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA4KnG;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE;;;;;;;;;;;;;;;GAoClI"}
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/tools/checkpoint.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAOlF,wBAAsB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAkKnG;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE;;;;;;;;;;;;;;;GA0BlI"}
@@ -2,7 +2,7 @@ import { getDb } from '../db/client.js';
2
2
  import { sessions, journeys, checkpoints, insights, governanceAuditLog } from '../db/schema.js';
3
3
  import { eq } from 'drizzle-orm';
4
4
  import { SaveCheckpointSchema } from '../types/checkpoint.js';
5
- import { handleError, NotFoundError } from '../utils/errors.js';
5
+ import { handleError } from '../utils/errors.js';
6
6
  import { logger } from '../utils/logger.js';
7
7
  import { getOrCreateSession } from './session-manager.js';
8
8
  import { storeContext } from './preserve-context.js';
@@ -12,16 +12,8 @@ export async function saveCheckpoint(args) {
12
12
  const input = SaveCheckpointSchema.parse(args);
13
13
  const db = getDb();
14
14
  // Get or create session implicitly if not provided
15
- const { sessionId, isNew } = await getOrCreateSession(input.session_id, input.auth, 'Checkpoint session');
16
- // Fetch the session
17
- const [session] = await db
18
- .select()
19
- .from(sessions)
20
- .where(eq(sessions.id, sessionId))
21
- .limit(1);
22
- if (!session) {
23
- throw new NotFoundError('Session', sessionId);
24
- }
15
+ // FIX 1: Session object returned directly no redundant re-fetch
16
+ const { sessionId, session, isNew } = await getOrCreateSession(input.session_id, input.auth, 'Checkpoint session');
25
17
  if (session.status !== 'active') {
26
18
  throw new Error(`Session is ${session.status}, not active`);
27
19
  }
@@ -168,16 +160,8 @@ export async function getCheckpoints(args) {
168
160
  const { session_id, auth } = args;
169
161
  const db = getDb();
170
162
  // Get or create session implicitly if not provided
163
+ // FIX 1: Session object returned directly — no redundant re-fetch
171
164
  const { sessionId, isNew } = await getOrCreateSession(session_id, auth);
172
- // Verify session exists
173
- const [session] = await db
174
- .select()
175
- .from(sessions)
176
- .where(eq(sessions.id, sessionId))
177
- .limit(1);
178
- if (!session) {
179
- throw new NotFoundError('Session', sessionId);
180
- }
181
165
  // Get all checkpoints
182
166
  const sessionCheckpoints = await db
183
167
  .select()
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../src/tools/checkpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../src/tools/checkpoint.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ export declare const detectBuildContextTool: {
26
26
  export declare function handleDetectBuildContext(args: unknown): Promise<{
27
27
  success: boolean;
28
28
  context: {
29
- language: "unknown" | "javascript" | "typescript" | "python" | "java";
29
+ language: "javascript" | "typescript" | "python" | "java" | "unknown";
30
30
  module_system: "commonjs" | "esm" | "umd" | "amd" | undefined;
31
31
  package_manager: "npm" | "yarn" | "pnpm" | "pip" | "maven" | "gradle" | undefined;
32
32
  build_tool: string | undefined;
@@ -58,7 +58,7 @@ export declare function handleGenerateUpgradeReport(args: unknown): Promise<{
58
58
  package: string;
59
59
  from_version: string | undefined;
60
60
  to_version: string;
61
- complexity: "medium" | "low" | "high";
61
+ complexity: "medium" | "high" | "low";
62
62
  estimated_time: string;
63
63
  upgrade_command: string;
64
64
  install_command: string;
@@ -75,7 +75,7 @@ export declare function handleGenerateUpgradeReport(args: unknown): Promise<{
75
75
  testing_strategy: string[];
76
76
  rollback_strategy: string;
77
77
  risks: {
78
- level: "medium" | "low" | "high" | "critical";
78
+ level: "medium" | "critical" | "high" | "low";
79
79
  factors: string[];
80
80
  mitigations: string[];
81
81
  };
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Guard Tool Adapter
3
+ *
4
+ * Provides a { definition, handler } shape compatible with the primary-tools
5
+ * registration model. Returns a plain GuardResult object rather than the
6
+ * McpServer-native { content: [{ type:'text', text }] } envelope.
7
+ *
8
+ * Uses the actual GovernancePipeline / InterventionEngine instance APIs.
9
+ * The hallucinated-packages corpus is imported via the real filename.
10
+ */
11
+ import { z } from 'zod';
12
+ export type GuardActionType = 'pass' | 'modified' | 'blocked';
13
+ export interface GuardResult {
14
+ action: GuardActionType;
15
+ response: string;
16
+ intervention?: {
17
+ type: string;
18
+ reason: string;
19
+ confidence: number;
20
+ original_response?: string;
21
+ };
22
+ domain_detected: 'dev' | 'clinical' | 'unknown';
23
+ evaluation_id: string;
24
+ elapsed_ms: number;
25
+ mode: 'enforce' | 'shadow' | 'bypass';
26
+ corpus_version: string;
27
+ detector_results?: Record<string, unknown>;
28
+ }
29
+ declare const GuardInputSchema: z.ZodObject<{
30
+ response: z.ZodString;
31
+ conversation: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
32
+ role: z.ZodEnum<["user", "assistant"]>;
33
+ content: z.ZodString;
34
+ }, "strip", z.ZodTypeAny, {
35
+ content: string;
36
+ role: "user" | "assistant";
37
+ }, {
38
+ content: string;
39
+ role: "user" | "assistant";
40
+ }>, "many">>>;
41
+ domain: z.ZodDefault<z.ZodOptional<z.ZodEnum<["dev", "clinical", "auto"]>>>;
42
+ session_id: z.ZodOptional<z.ZodString>;
43
+ mode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["enforce", "shadow", "bypass"]>>>;
44
+ }, "strip", z.ZodTypeAny, {
45
+ mode: "enforce" | "shadow" | "bypass";
46
+ response: string;
47
+ conversation: {
48
+ content: string;
49
+ role: "user" | "assistant";
50
+ }[];
51
+ domain: "clinical" | "auto" | "dev";
52
+ session_id?: string | undefined;
53
+ }, {
54
+ response: string;
55
+ mode?: "enforce" | "shadow" | "bypass" | undefined;
56
+ session_id?: string | undefined;
57
+ conversation?: {
58
+ content: string;
59
+ role: "user" | "assistant";
60
+ }[] | undefined;
61
+ domain?: "clinical" | "auto" | "dev" | undefined;
62
+ }>;
63
+ export type GuardInput = z.infer<typeof GuardInputSchema>;
64
+ export declare function handleGuard(args: unknown): Promise<GuardResult>;
65
+ export declare const guardTool: {
66
+ readonly definition: {
67
+ readonly name: "guard";
68
+ readonly description: string;
69
+ readonly annotations: {
70
+ readonly readOnlyHint: true;
71
+ readonly destructiveHint: false;
72
+ readonly idempotentHint: true;
73
+ readonly openWorldHint: false;
74
+ };
75
+ readonly inputSchema: {
76
+ readonly type: "object";
77
+ readonly properties: {
78
+ readonly response: {
79
+ readonly type: "string";
80
+ readonly description: "Draft response to evaluate";
81
+ };
82
+ readonly conversation: {
83
+ readonly type: "array";
84
+ readonly items: {
85
+ readonly type: "object";
86
+ readonly properties: {
87
+ readonly role: {
88
+ readonly type: "string";
89
+ readonly enum: readonly ["user", "assistant"];
90
+ };
91
+ readonly content: {
92
+ readonly type: "string";
93
+ };
94
+ };
95
+ readonly required: readonly ["role", "content"];
96
+ };
97
+ readonly description: "Recent conversation history";
98
+ };
99
+ readonly domain: {
100
+ readonly type: "string";
101
+ readonly enum: readonly ["dev", "clinical", "auto"];
102
+ readonly description: "Governance domain. 'auto' detects from context.";
103
+ };
104
+ readonly session_id: {
105
+ readonly type: "string";
106
+ readonly description: "Session ID for audit trail";
107
+ };
108
+ readonly mode: {
109
+ readonly type: "string";
110
+ readonly enum: readonly ["enforce", "shadow", "bypass"];
111
+ readonly description: "Governance mode";
112
+ };
113
+ };
114
+ readonly required: readonly ["response"];
115
+ };
116
+ };
117
+ readonly handler: typeof handleGuard;
118
+ };
119
+ export {};
120
+ //# sourceMappingURL=guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../src/tools/guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,eAAe,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAMD,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASpB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAqH1D,wBAAsB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CA8MrE;AAQD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDZ,CAAC"}