couchloop-eq-mcp 1.1.4 → 1.2.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 (87) hide show
  1. package/README.md +40 -38
  2. package/dist/clients/shrinkChatClient.d.ts +10 -10
  3. package/dist/index.js +81 -6
  4. package/dist/index.js.map +1 -1
  5. package/dist/server/http-mcp.d.ts.map +1 -1
  6. package/dist/server/http-mcp.js +17 -3
  7. package/dist/server/http-mcp.js.map +1 -1
  8. package/dist/server/sse.js +1 -1
  9. package/dist/tools/check-versions.d.ts +4 -4
  10. package/dist/tools/checkpoint.d.ts +2 -19
  11. package/dist/tools/checkpoint.d.ts.map +1 -1
  12. package/dist/tools/checkpoint.js +68 -2
  13. package/dist/tools/checkpoint.js.map +1 -1
  14. package/dist/tools/comprehensive-code-review.d.ts +78 -0
  15. package/dist/tools/comprehensive-code-review.d.ts.map +1 -0
  16. package/dist/tools/comprehensive-code-review.js +177 -0
  17. package/dist/tools/comprehensive-code-review.js.map +1 -0
  18. package/dist/tools/comprehensive-package-audit.d.ts +75 -0
  19. package/dist/tools/comprehensive-package-audit.d.ts.map +1 -0
  20. package/dist/tools/comprehensive-package-audit.js +151 -0
  21. package/dist/tools/comprehensive-package-audit.js.map +1 -0
  22. package/dist/tools/detect-build-context.d.ts +59 -0
  23. package/dist/tools/detect-build-context.d.ts.map +1 -0
  24. package/dist/tools/detect-build-context.js +80 -0
  25. package/dist/tools/detect-build-context.js.map +1 -0
  26. package/dist/tools/generate-upgrade-report.d.ts +85 -0
  27. package/dist/tools/generate-upgrade-report.d.ts.map +1 -0
  28. package/dist/tools/generate-upgrade-report.js +102 -0
  29. package/dist/tools/generate-upgrade-report.js.map +1 -0
  30. package/dist/tools/index-full.d.ts +1355 -0
  31. package/dist/tools/index-full.d.ts.map +1 -0
  32. package/dist/tools/index-full.js +611 -0
  33. package/dist/tools/index-full.js.map +1 -0
  34. package/dist/tools/index.d.ts +27 -1018
  35. package/dist/tools/index.d.ts.map +1 -1
  36. package/dist/tools/index.js +29 -554
  37. package/dist/tools/index.js.map +1 -1
  38. package/dist/tools/insight.d.ts +31 -12
  39. package/dist/tools/insight.d.ts.map +1 -1
  40. package/dist/tools/insight.js +2 -1
  41. package/dist/tools/insight.js.map +1 -1
  42. package/dist/tools/intent-router.d.ts +142 -0
  43. package/dist/tools/intent-router.d.ts.map +1 -0
  44. package/dist/tools/intent-router.js +453 -0
  45. package/dist/tools/intent-router.js.map +1 -0
  46. package/dist/tools/prevent-ai-errors.d.ts +85 -0
  47. package/dist/tools/prevent-ai-errors.d.ts.map +1 -0
  48. package/dist/tools/prevent-ai-errors.js +97 -0
  49. package/dist/tools/prevent-ai-errors.js.map +1 -0
  50. package/dist/tools/primary-tools.d.ts +615 -0
  51. package/dist/tools/primary-tools.d.ts.map +1 -0
  52. package/dist/tools/primary-tools.js +355 -0
  53. package/dist/tools/primary-tools.js.map +1 -0
  54. package/dist/tools/protect-files.d.ts +1 -1
  55. package/dist/tools/sendMessage.d.ts.map +1 -1
  56. package/dist/tools/sendMessage.js +17 -152
  57. package/dist/tools/sendMessage.js.map +1 -1
  58. package/dist/tools/session.d.ts +1 -1
  59. package/dist/tools/smart-context.d.ts +66 -0
  60. package/dist/tools/smart-context.d.ts.map +1 -0
  61. package/dist/tools/smart-context.js +167 -0
  62. package/dist/tools/smart-context.js.map +1 -0
  63. package/dist/tools/status.d.ts +118 -0
  64. package/dist/tools/status.d.ts.map +1 -0
  65. package/dist/tools/status.js +366 -0
  66. package/dist/tools/status.js.map +1 -0
  67. package/dist/tools/verify.d.ts +126 -0
  68. package/dist/tools/verify.d.ts.map +1 -0
  69. package/dist/tools/verify.js +308 -0
  70. package/dist/tools/verify.js.map +1 -0
  71. package/dist/types/checkpoint.d.ts +26 -1
  72. package/dist/types/checkpoint.d.ts.map +1 -1
  73. package/dist/types/checkpoint.js +17 -0
  74. package/dist/types/checkpoint.js.map +1 -1
  75. package/dist/types/insight.d.ts +2 -2
  76. package/dist/types/journey.d.ts +18 -18
  77. package/dist/types/session.d.ts +2 -2
  78. package/dist/utils/sanitize.d.ts +24 -0
  79. package/dist/utils/sanitize.d.ts.map +1 -0
  80. package/dist/utils/sanitize.js +117 -0
  81. package/dist/utils/sanitize.js.map +1 -0
  82. package/dist/workflows/engine.d.ts +2 -1
  83. package/dist/workflows/engine.d.ts.map +1 -1
  84. package/dist/workflows/engine.js +7 -1
  85. package/dist/workflows/engine.js.map +1 -1
  86. package/dist/workflows/index.d.ts +3 -3
  87. package/package.json +1 -1
@@ -0,0 +1,308 @@
1
+ /**
2
+ * MCP Tool: verify
3
+ *
4
+ * Pre-delivery verification for AI-generated content.
5
+ * Catches hallucinations, incorrect packages, bad code, and unsafe responses
6
+ * BEFORE they reach the user.
7
+ */
8
+ import { z } from 'zod';
9
+ import { AIErrorPreventer } from '../developer/evaluators/ai-error-preventer.js';
10
+ import { PackageBlocker } from '../developer/blockers/package-blocker.js';
11
+ import { PackageEvaluator } from '../developer/evaluators/package-evaluator.js';
12
+ import { EvaluationEngine, InterventionAction, RiskLevel } from '../governance/evaluationEngine.js';
13
+ import { logger } from '../utils/logger.js';
14
+ const VerifyInputSchema = z.object({
15
+ type: z.enum(['code', 'packages', 'facts', 'response', 'all']).describe('What to verify'),
16
+ content: z.string().describe('The AI-generated content to verify'),
17
+ language: z.string().optional().describe('Programming language for code verification'),
18
+ registry: z.enum(['npm', 'pypi', 'maven', 'cargo', 'go', 'nuget', 'gem']).optional().default('npm'),
19
+ context: z.string().optional().describe('Additional context'),
20
+ session_id: z.string().optional(),
21
+ });
22
+ export const verifyTool = {
23
+ definition: {
24
+ name: 'verify',
25
+ description: `CRITICAL: Pre-delivery verification for AI-generated content. Call BEFORE presenting code, package recommendations, or factual claims to users. Catches: hallucinated packages (24% of AI suggestions don't exist!), hallucinated APIs, incorrect imports, ESM/CJS confusion, deprecated methods, security vulnerabilities, inconsistencies with previous statements. Returns verification result with fixes if needed.`,
26
+ annotations: {
27
+ readOnlyHint: true,
28
+ destructiveHint: false,
29
+ openWorldHint: true,
30
+ },
31
+ inputSchema: {
32
+ type: 'object',
33
+ properties: {
34
+ type: {
35
+ type: 'string',
36
+ enum: ['code', 'packages', 'facts', 'response', 'all'],
37
+ description: "What to verify: 'code' for syntax/APIs, 'packages' for npm/pypi existence, 'facts' for claims/statistics, 'response' for governance/tone, 'all' for comprehensive check",
38
+ },
39
+ content: {
40
+ type: 'string',
41
+ description: 'The AI-generated content to verify before presenting to user',
42
+ },
43
+ language: {
44
+ type: 'string',
45
+ description: 'Programming language for code verification',
46
+ },
47
+ registry: {
48
+ type: 'string',
49
+ enum: ['npm', 'pypi', 'maven', 'cargo', 'go', 'nuget', 'gem'],
50
+ description: 'Package registry for package verification (default: npm)',
51
+ },
52
+ context: {
53
+ type: 'string',
54
+ description: "Additional context: user's original question, project type, etc.",
55
+ },
56
+ },
57
+ required: ['type', 'content'],
58
+ },
59
+ },
60
+ handler: handleVerify,
61
+ };
62
+ export async function handleVerify(args) {
63
+ try {
64
+ const input = VerifyInputSchema.parse(args);
65
+ logger.info('Running verification check', { type: input.type });
66
+ const results = {
67
+ verified: true,
68
+ type: input.type,
69
+ checks_run: [],
70
+ issues: [],
71
+ fixes: [],
72
+ warnings: [],
73
+ confidence: 1.0,
74
+ };
75
+ // Run appropriate checks based on type
76
+ if (input.type === 'code' || input.type === 'all') {
77
+ const codeResult = await verifyCode(input.content, input.language || 'typescript');
78
+ results.checks_run.push('code');
79
+ if (codeResult.issues.length > 0) {
80
+ results.verified = false;
81
+ results.issues.push(...codeResult.issues);
82
+ results.fixes.push(...codeResult.fixes);
83
+ }
84
+ results.warnings.push(...codeResult.warnings);
85
+ results.code_verification = codeResult;
86
+ }
87
+ if (input.type === 'packages' || input.type === 'all') {
88
+ const packageResult = await verifyPackages(input.content, input.registry || 'npm');
89
+ results.checks_run.push('packages');
90
+ if (packageResult.invalid.length > 0) {
91
+ results.verified = false;
92
+ results.issues.push(...packageResult.invalid.map(p => `Package does not exist: ${p}`));
93
+ results.fixes.push(...packageResult.suggestions);
94
+ }
95
+ results.package_verification = packageResult;
96
+ }
97
+ if (input.type === 'facts' || input.type === 'response' || input.type === 'all') {
98
+ const governanceResult = await verifyResponse(input.content, input.session_id);
99
+ results.checks_run.push('governance');
100
+ if (governanceResult.action !== InterventionAction.APPROVE) {
101
+ results.verified = false;
102
+ results.issues.push(...governanceResult.issues);
103
+ if (governanceResult.modified_content) {
104
+ results.fixes.push(`Modified content: ${governanceResult.modified_content}`);
105
+ }
106
+ }
107
+ results.confidence = Math.min(results.confidence, 1 - governanceResult.risk_score);
108
+ results.governance_verification = governanceResult;
109
+ }
110
+ // Calculate overall confidence
111
+ results.confidence = results.issues.length === 0 ? 1.0 :
112
+ Math.max(0.1, 1 - (results.issues.length * 0.15));
113
+ return {
114
+ success: true,
115
+ ...results,
116
+ summary: results.verified
117
+ ? `✓ Verified. ${results.checks_run.length} checks passed.`
118
+ : `✗ Issues found. ${results.issues.length} problems detected in ${results.checks_run.join(', ')}.`,
119
+ recommendation: results.verified
120
+ ? 'Safe to present to user.'
121
+ : 'Review issues before presenting. Apply suggested fixes if available.',
122
+ };
123
+ }
124
+ catch (error) {
125
+ logger.error('Error in verify:', error);
126
+ return {
127
+ success: false,
128
+ verified: false,
129
+ error: error instanceof Error ? error.message : 'Unknown error',
130
+ recommendation: 'Verification failed. Do not present unverified content.',
131
+ };
132
+ }
133
+ }
134
+ async function verifyCode(code, language) {
135
+ const preventer = new AIErrorPreventer();
136
+ const result = await preventer.preventErrors(code, language, {
137
+ autoFix: true,
138
+ checkBuildContext: true,
139
+ });
140
+ const issues = [];
141
+ const fixes = [];
142
+ const warnings = result.warnings || [];
143
+ for (const error of result.errors) {
144
+ issues.push(`[${error.pattern.impact.toUpperCase()}] ${error.pattern.name}: ${error.pattern.description}`);
145
+ if (error.suggestion) {
146
+ fixes.push(error.suggestion);
147
+ }
148
+ }
149
+ return {
150
+ issues,
151
+ fixes,
152
+ warnings,
153
+ ai_errors_found: result.errors.length,
154
+ build_context: result.buildContext ? {
155
+ language: result.buildContext.language,
156
+ module_system: result.buildContext.moduleSystem,
157
+ requires_js_extensions: result.buildContext.requiresJsExtensions,
158
+ } : undefined,
159
+ fixed_code: result.fixedCode,
160
+ };
161
+ }
162
+ async function verifyPackages(content, registry) {
163
+ const blocker = new PackageBlocker(true);
164
+ const evaluator = new PackageEvaluator();
165
+ // Extract package names from content
166
+ const packages = extractPackageNames(content);
167
+ // Determine language from registry
168
+ const language = registry === 'npm' ? 'javascript' :
169
+ registry === 'pypi' ? 'python' :
170
+ registry === 'maven' ? 'java' : 'unknown';
171
+ const result = {
172
+ packages_checked: packages,
173
+ valid: [],
174
+ invalid: [],
175
+ suggestions: [],
176
+ typosquatting_detected: [],
177
+ deprecated: [],
178
+ };
179
+ // Use interceptCode to validate the content
180
+ const blockResult = await blocker.interceptCode(content, language);
181
+ if (!blockResult.allowed) {
182
+ result.invalid.push(...blockResult.blockedPackages);
183
+ result.suggestions.push(...blockResult.warnings);
184
+ // Add suggestions from blocker
185
+ for (const [pkg, suggs] of Object.entries(blockResult.suggestions)) {
186
+ if (suggs.length > 0) {
187
+ result.suggestions.push(`For "${pkg}": ${suggs.join(', ')}`);
188
+ }
189
+ }
190
+ }
191
+ // Check remaining valid packages for deprecation
192
+ const validPackages = packages.filter(p => !blockResult.blockedPackages.includes(p));
193
+ for (const pkg of validPackages) {
194
+ try {
195
+ const evalResult = await evaluator.evaluate(pkg, { language: language });
196
+ if (evalResult.package.deprecated) {
197
+ result.deprecated.push(pkg);
198
+ result.suggestions.push(`Package "${pkg}" is deprecated. ${evalResult.warning || ''}`);
199
+ }
200
+ else if (!evalResult.blocked) {
201
+ result.valid.push(pkg);
202
+ }
203
+ else {
204
+ result.invalid.push(pkg);
205
+ if (evalResult.warning) {
206
+ result.suggestions.push(evalResult.warning);
207
+ }
208
+ }
209
+ }
210
+ catch (e) {
211
+ // If we can't validate, mark as needs manual check
212
+ result.suggestions.push(`Could not validate "${pkg}" - manual verification recommended`);
213
+ }
214
+ }
215
+ return result;
216
+ }
217
+ function extractPackageNames(content) {
218
+ const packages = new Set();
219
+ // npm install patterns
220
+ const npmInstall = content.match(/npm\s+i(?:nstall)?\s+([^\n&|;]+)/gi);
221
+ if (npmInstall) {
222
+ for (const match of npmInstall) {
223
+ const pkgs = match.replace(/npm\s+i(?:nstall)?\s+/i, '').split(/\s+/);
224
+ pkgs.forEach(p => {
225
+ if (p && !p.startsWith('-')) {
226
+ packages.add(p.replace(/@[\d.]+$/, '')); // Remove version
227
+ }
228
+ });
229
+ }
230
+ }
231
+ // import/require patterns
232
+ const imports = content.match(/(?:import|require)\s*\(?['"]([^'"./][^'"]*)['"]\)?/g);
233
+ if (imports) {
234
+ for (const match of imports) {
235
+ const pkg = match.match(/['"]([^'"./][^'"]*)['"]/)?.[1];
236
+ if (pkg) {
237
+ // Get base package name (handle scoped packages)
238
+ const basePkg = pkg.startsWith('@')
239
+ ? pkg.split('/').slice(0, 2).join('/')
240
+ : pkg.split('/')[0];
241
+ if (basePkg) {
242
+ packages.add(basePkg);
243
+ }
244
+ }
245
+ }
246
+ }
247
+ // pip install patterns
248
+ const pipInstall = content.match(/pip\s+install\s+([^\n&|;]+)/gi);
249
+ if (pipInstall) {
250
+ for (const match of pipInstall) {
251
+ const pkgs = match.replace(/pip\s+install\s+/i, '').split(/\s+/);
252
+ pkgs.forEach(p => {
253
+ if (p && !p.startsWith('-')) {
254
+ packages.add(p.replace(/[=<>].*$/, '')); // Remove version constraints
255
+ }
256
+ });
257
+ }
258
+ }
259
+ return Array.from(packages);
260
+ }
261
+ async function verifyResponse(content, sessionId) {
262
+ const engine = new EvaluationEngine();
263
+ const context = {
264
+ sessionId: sessionId || 'verification-check',
265
+ };
266
+ const evaluation = await engine.evaluate(content, context);
267
+ const issues = [];
268
+ if (evaluation.hallucination.detected) {
269
+ issues.push(`Potential hallucination detected (${Math.round(evaluation.hallucination.confidence * 100)}% confidence)`);
270
+ if (evaluation.hallucination.patterns) {
271
+ issues.push(...evaluation.hallucination.patterns.map(p => ` - ${p}`));
272
+ }
273
+ }
274
+ if (evaluation.inconsistency.detected) {
275
+ issues.push(`Inconsistency with previous statements detected (${Math.round(evaluation.inconsistency.confidence * 100)}% confidence)`);
276
+ }
277
+ if (evaluation.toneDrift.detected) {
278
+ issues.push(`Tone drift detected (${Math.round(evaluation.toneDrift.confidence * 100)}% confidence)`);
279
+ if (evaluation.toneDrift.patterns) {
280
+ issues.push(...evaluation.toneDrift.patterns.map(p => ` - ${p}`));
281
+ }
282
+ }
283
+ if (evaluation.unsafeReasoning.detected) {
284
+ issues.push(`Unsafe reasoning pattern detected (${Math.round(evaluation.unsafeReasoning.confidence * 100)}% confidence)`);
285
+ if (evaluation.unsafeReasoning.patterns) {
286
+ issues.push(...evaluation.unsafeReasoning.patterns.map(p => ` - ${p}`));
287
+ }
288
+ }
289
+ // Calculate risk score
290
+ const riskScores = {
291
+ [RiskLevel.NONE]: 0,
292
+ [RiskLevel.LOW]: 0.25,
293
+ [RiskLevel.MEDIUM]: 0.5,
294
+ [RiskLevel.HIGH]: 0.75,
295
+ [RiskLevel.CRITICAL]: 1.0,
296
+ };
297
+ return {
298
+ action: evaluation.recommendedAction,
299
+ risk_level: evaluation.overallRisk,
300
+ risk_score: riskScores[evaluation.overallRisk],
301
+ issues,
302
+ hallucination_detected: evaluation.hallucination.detected,
303
+ inconsistency_detected: evaluation.inconsistency.detected,
304
+ tone_drift_detected: evaluation.toneDrift.detected,
305
+ unsafe_reasoning_detected: evaluation.unsafeReasoning.detected,
306
+ };
307
+ }
308
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/tools/verify.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ declare const ContextCategoryEnum: z.ZodEnum<["architecture", "requirements", "constraints", "decisions", "technical-patterns", "project-metadata"]>;
2
3
  export declare const SaveCheckpointSchema: z.ZodObject<{
3
4
  session_id: z.ZodOptional<z.ZodString>;
4
5
  key: z.ZodString;
@@ -20,9 +21,17 @@ export declare const SaveCheckpointSchema: z.ZodObject<{
20
21
  token?: string | undefined;
21
22
  conversation_id?: string | undefined;
22
23
  }>>;
24
+ save_as_insight: z.ZodDefault<z.ZodBoolean>;
25
+ insight_tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
26
+ preserve_context: z.ZodDefault<z.ZodBoolean>;
27
+ context_category: z.ZodOptional<z.ZodEnum<["architecture", "requirements", "constraints", "decisions", "technical-patterns", "project-metadata"]>>;
28
+ governance_check: z.ZodDefault<z.ZodBoolean>;
23
29
  }, "strip", z.ZodTypeAny, {
24
30
  key: string;
25
31
  advance_step: boolean;
32
+ save_as_insight: boolean;
33
+ preserve_context: boolean;
34
+ governance_check: boolean;
26
35
  session_id?: string | undefined;
27
36
  value?: any;
28
37
  auth?: {
@@ -31,6 +40,8 @@ export declare const SaveCheckpointSchema: z.ZodObject<{
31
40
  token?: string | undefined;
32
41
  conversation_id?: string | undefined;
33
42
  } | undefined;
43
+ insight_tags?: string[] | undefined;
44
+ context_category?: "architecture" | "requirements" | "constraints" | "decisions" | "technical-patterns" | "project-metadata" | undefined;
34
45
  }, {
35
46
  key: string;
36
47
  session_id?: string | undefined;
@@ -42,14 +53,28 @@ export declare const SaveCheckpointSchema: z.ZodObject<{
42
53
  conversation_id?: string | undefined;
43
54
  } | undefined;
44
55
  advance_step?: boolean | undefined;
56
+ save_as_insight?: boolean | undefined;
57
+ insight_tags?: string[] | undefined;
58
+ preserve_context?: boolean | undefined;
59
+ context_category?: "architecture" | "requirements" | "constraints" | "decisions" | "technical-patterns" | "project-metadata" | undefined;
60
+ governance_check?: boolean | undefined;
45
61
  }>;
46
62
  export type SaveCheckpointInput = z.infer<typeof SaveCheckpointSchema>;
63
+ export type ContextCategory = z.infer<typeof ContextCategoryEnum>;
47
64
  export interface CheckpointResponse {
48
65
  checkpoint_id: string;
49
66
  session_id: string;
50
67
  session_created: boolean;
51
- next_step: any | null;
68
+ next_step: unknown | null;
52
69
  journey_complete: boolean;
53
70
  message: string;
71
+ insight_id?: string;
72
+ context_stored?: boolean;
73
+ governance_result?: {
74
+ allowed: boolean;
75
+ issues: string[];
76
+ confidence: number;
77
+ };
54
78
  }
79
+ export {};
55
80
  //# sourceMappingURL=checkpoint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/types/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/types/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,mBAAmB,mHAOvB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB/B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACvE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAEhB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH"}
@@ -1,10 +1,27 @@
1
1
  import { z } from 'zod';
2
2
  import { AuthContextSchema } from './auth.js';
3
+ // Context categories for preserve_context integration
4
+ const ContextCategoryEnum = z.enum([
5
+ 'architecture',
6
+ 'requirements',
7
+ 'constraints',
8
+ 'decisions',
9
+ 'technical-patterns',
10
+ 'project-metadata'
11
+ ]);
3
12
  export const SaveCheckpointSchema = z.object({
4
13
  session_id: z.string().uuid().optional().describe('Active session ID (auto-created if not provided)'),
5
14
  key: z.string().describe('What is being captured (e.g., "mood", "reflection", "gratitude")'),
6
15
  value: z.any().describe('The captured content'),
7
16
  advance_step: z.boolean().default(true).describe('Whether to advance to next journey step'),
8
17
  auth: AuthContextSchema.optional().describe('Authentication context for user identification'),
18
+ // === Consolidated from save_insight ===
19
+ save_as_insight: z.boolean().default(false).describe('Also save this as a user insight'),
20
+ insight_tags: z.array(z.string()).optional().describe('Tags for the insight if saving as insight'),
21
+ // === Consolidated from preserve_context ===
22
+ preserve_context: z.boolean().default(false).describe('Also store as persistent project context'),
23
+ context_category: ContextCategoryEnum.optional().describe('Category for context preservation'),
24
+ // === Governance metadata ===
25
+ governance_check: z.boolean().default(true).describe('Run governance validation on the value'),
9
26
  });
10
27
  //# sourceMappingURL=checkpoint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../src/types/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IACrG,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;IAC5F,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC/C,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IAC3F,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;CAC9F,CAAC,CAAC"}
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../src/types/checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,sDAAsD;AACtD,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC;IACjC,cAAc;IACd,cAAc;IACd,aAAa;IACb,WAAW;IACX,oBAAoB;IACpB,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IACrG,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kEAAkE,CAAC;IAC5F,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAC/C,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IAC3F,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IAE7F,yCAAyC;IACzC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACxF,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IAElG,6CAA6C;IAC7C,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACjG,gBAAgB,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAE9F,8BAA8B;IAC9B,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CAC/F,CAAC,CAAC"}
@@ -20,8 +20,8 @@ export declare const SaveInsightSchema: z.ZodObject<{
20
20
  conversation_id?: string | undefined;
21
21
  }>>;
22
22
  }, "strip", z.ZodTypeAny, {
23
- tags: string[];
24
23
  content: string;
24
+ tags: string[];
25
25
  session_id?: string | undefined;
26
26
  auth?: {
27
27
  user_id?: string | undefined;
@@ -31,8 +31,8 @@ export declare const SaveInsightSchema: z.ZodObject<{
31
31
  } | undefined;
32
32
  }, {
33
33
  content: string;
34
- tags?: string[] | undefined;
35
34
  session_id?: string | undefined;
35
+ tags?: string[] | undefined;
36
36
  auth?: {
37
37
  user_id?: string | undefined;
38
38
  client_id?: string | undefined;
@@ -20,25 +20,25 @@ export declare const JourneyStepSchema: z.ZodObject<{
20
20
  }>;
21
21
  optional: z.ZodBoolean;
22
22
  }, "strip", z.ZodTypeAny, {
23
- id: string;
23
+ type: "prompt" | "checkpoint" | "summary";
24
24
  content: {
25
25
  prompt?: string | undefined;
26
26
  checkpoint_key?: string | undefined;
27
27
  instructions?: string | undefined;
28
28
  };
29
- type: "prompt" | "checkpoint" | "summary";
30
- order: number;
29
+ id: string;
31
30
  optional: boolean;
31
+ order: number;
32
32
  }, {
33
- id: string;
33
+ type: "prompt" | "checkpoint" | "summary";
34
34
  content: {
35
35
  prompt?: string | undefined;
36
36
  checkpoint_key?: string | undefined;
37
37
  instructions?: string | undefined;
38
38
  };
39
- type: "prompt" | "checkpoint" | "summary";
40
- order: number;
39
+ id: string;
41
40
  optional: boolean;
41
+ order: number;
42
42
  }>;
43
43
  export type JourneyStep = z.infer<typeof JourneyStepSchema>;
44
44
  export declare const JourneySchema: z.ZodObject<{
@@ -65,25 +65,25 @@ export declare const JourneySchema: z.ZodObject<{
65
65
  }>;
66
66
  optional: z.ZodBoolean;
67
67
  }, "strip", z.ZodTypeAny, {
68
- id: string;
68
+ type: "prompt" | "checkpoint" | "summary";
69
69
  content: {
70
70
  prompt?: string | undefined;
71
71
  checkpoint_key?: string | undefined;
72
72
  instructions?: string | undefined;
73
73
  };
74
- type: "prompt" | "checkpoint" | "summary";
75
- order: number;
74
+ id: string;
76
75
  optional: boolean;
76
+ order: number;
77
77
  }, {
78
- id: string;
78
+ type: "prompt" | "checkpoint" | "summary";
79
79
  content: {
80
80
  prompt?: string | undefined;
81
81
  checkpoint_key?: string | undefined;
82
82
  instructions?: string | undefined;
83
83
  };
84
- type: "prompt" | "checkpoint" | "summary";
85
- order: number;
84
+ id: string;
86
85
  optional: boolean;
86
+ order: number;
87
87
  }>, "many">;
88
88
  estimatedMinutes: z.ZodNumber;
89
89
  tags: z.ZodArray<z.ZodString, "many">;
@@ -92,15 +92,15 @@ export declare const JourneySchema: z.ZodObject<{
92
92
  slug: string;
93
93
  description: string;
94
94
  steps: {
95
- id: string;
95
+ type: "prompt" | "checkpoint" | "summary";
96
96
  content: {
97
97
  prompt?: string | undefined;
98
98
  checkpoint_key?: string | undefined;
99
99
  instructions?: string | undefined;
100
100
  };
101
- type: "prompt" | "checkpoint" | "summary";
102
- order: number;
101
+ id: string;
103
102
  optional: boolean;
103
+ order: number;
104
104
  }[];
105
105
  estimatedMinutes: number;
106
106
  tags: string[];
@@ -110,15 +110,15 @@ export declare const JourneySchema: z.ZodObject<{
110
110
  slug: string;
111
111
  description: string;
112
112
  steps: {
113
- id: string;
113
+ type: "prompt" | "checkpoint" | "summary";
114
114
  content: {
115
115
  prompt?: string | undefined;
116
116
  checkpoint_key?: string | undefined;
117
117
  instructions?: string | undefined;
118
118
  };
119
- type: "prompt" | "checkpoint" | "summary";
120
- order: number;
119
+ id: string;
121
120
  optional: boolean;
121
+ order: number;
122
122
  }[];
123
123
  estimatedMinutes: number;
124
124
  tags: string[];
@@ -21,7 +21,6 @@ export declare const CreateSessionSchema: z.ZodObject<{
21
21
  conversation_id?: string | undefined;
22
22
  }>>;
23
23
  }, "strip", z.ZodTypeAny, {
24
- journey_slug?: string | undefined;
25
24
  context?: string | undefined;
26
25
  auth?: {
27
26
  user_id?: string | undefined;
@@ -29,8 +28,8 @@ export declare const CreateSessionSchema: z.ZodObject<{
29
28
  token?: string | undefined;
30
29
  conversation_id?: string | undefined;
31
30
  } | undefined;
32
- }, {
33
31
  journey_slug?: string | undefined;
32
+ }, {
34
33
  context?: string | undefined;
35
34
  auth?: {
36
35
  user_id?: string | undefined;
@@ -38,6 +37,7 @@ export declare const CreateSessionSchema: z.ZodObject<{
38
37
  token?: string | undefined;
39
38
  conversation_id?: string | undefined;
40
39
  } | undefined;
40
+ journey_slug?: string | undefined;
41
41
  }>;
42
42
  export type CreateSessionInput = z.infer<typeof CreateSessionSchema>;
43
43
  export declare const ResumeSessionSchema: z.ZodObject<{
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Response Sanitization Utilities
3
+ *
4
+ * Strips sensitive internal metadata from responses before returning to users.
5
+ * Full data is logged server-side for debugging.
6
+ */
7
+ /**
8
+ * Sanitize a response object by removing sensitive fields
9
+ */
10
+ export declare function sanitizeResponse<T extends Record<string, unknown>>(response: T, options?: {
11
+ logLevel?: 'debug' | 'info' | 'none';
12
+ allowFields?: string[];
13
+ }): Record<string, unknown>;
14
+ /**
15
+ * Sanitize an array of objects
16
+ */
17
+ export declare function sanitizeArray<T extends Record<string, unknown>>(items: T[], options?: {
18
+ allowFields?: string[];
19
+ }): Record<string, unknown>[];
20
+ /**
21
+ * Check if a response contains any sensitive fields
22
+ */
23
+ export declare function hasSensitiveData(obj: Record<string, unknown>): boolean;
24
+ //# sourceMappingURL=sanitize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmDH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,QAAQ,EAAE,CAAC,EACX,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,GACA,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyCzB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,KAAK,EAAE,CAAC,EAAE,EACV,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAE3B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAatE"}