driftdetect-mcp 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/server.js +0 -0
- package/dist/enterprise-server.d.ts.map +1 -1
- package/dist/enterprise-server.js +17 -2
- package/dist/enterprise-server.js.map +1 -1
- package/dist/tools/analysis/constraints.d.ts +40 -0
- package/dist/tools/analysis/constraints.d.ts.map +1 -0
- package/dist/tools/analysis/constraints.js +236 -0
- package/dist/tools/analysis/constraints.js.map +1 -0
- package/dist/tools/analysis/decisions.d.ts +54 -0
- package/dist/tools/analysis/decisions.d.ts.map +1 -0
- package/dist/tools/analysis/decisions.js +307 -0
- package/dist/tools/analysis/decisions.js.map +1 -0
- package/dist/tools/analysis/go.d.ts +22 -0
- package/dist/tools/analysis/go.d.ts.map +1 -0
- package/dist/tools/analysis/go.js +214 -0
- package/dist/tools/analysis/go.js.map +1 -0
- package/dist/tools/analysis/index.d.ts +5 -0
- package/dist/tools/analysis/index.d.ts.map +1 -1
- package/dist/tools/analysis/index.js +209 -0
- package/dist/tools/analysis/index.js.map +1 -1
- package/dist/tools/analysis/simulate.d.ts +27 -0
- package/dist/tools/analysis/simulate.d.ts.map +1 -0
- package/dist/tools/analysis/simulate.js +89 -0
- package/dist/tools/analysis/simulate.js.map +1 -0
- package/dist/tools/analysis/wpf.d.ts +23 -0
- package/dist/tools/analysis/wpf.d.ts.map +1 -0
- package/dist/tools/analysis/wpf.js +240 -0
- package/dist/tools/analysis/wpf.js.map +1 -0
- package/dist/tools/detail/file-patterns.d.ts +3 -2
- package/dist/tools/detail/file-patterns.d.ts.map +1 -1
- package/dist/tools/detail/file-patterns.js +20 -12
- package/dist/tools/detail/file-patterns.js.map +1 -1
- package/dist/tools/detail/files-list.d.ts +3 -3
- package/dist/tools/detail/files-list.d.ts.map +1 -1
- package/dist/tools/detail/files-list.js +28 -11
- package/dist/tools/detail/files-list.js.map +1 -1
- package/dist/tools/orchestration/context.d.ts +15 -1
- package/dist/tools/orchestration/context.d.ts.map +1 -1
- package/dist/tools/orchestration/context.js +248 -4
- package/dist/tools/orchestration/context.js.map +1 -1
- package/package.json +31 -16
- package/LICENSE +0 -21
package/dist/bin/server.js
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enterprise-server.d.ts","sourceRoot":"","sources":["../src/enterprise-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"enterprise-server.d.ts","sourceRoot":"","sources":["../src/enterprise-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAuEnE,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAwG7E;AAmND;;GAEG;AACH,wBAAgB,iBAAiB;;;;;;;EAEhC;AAED;;GAEG;AACH,wBAAgB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE1B"}
|
|
@@ -53,6 +53,11 @@ import { handleExplain } from './tools/generation/explain.js';
|
|
|
53
53
|
import { handleTestTopology } from './tools/analysis/test-topology.js';
|
|
54
54
|
import { handleCoupling } from './tools/analysis/coupling.js';
|
|
55
55
|
import { handleErrorHandling } from './tools/analysis/error-handling.js';
|
|
56
|
+
import { handleDecisions } from './tools/analysis/decisions.js';
|
|
57
|
+
import { handleSimulate } from './tools/analysis/simulate.js';
|
|
58
|
+
import { handleConstraints } from './tools/analysis/constraints.js';
|
|
59
|
+
import { executeWpfTool } from './tools/analysis/wpf.js';
|
|
60
|
+
import { executeGoTool } from './tools/analysis/go.js';
|
|
56
61
|
export function createEnterpriseMCPServer(config) {
|
|
57
62
|
const server = new Server({ name: 'drift-enterprise', version: '2.0.0' }, { capabilities: { tools: {} } });
|
|
58
63
|
// Initialize stores
|
|
@@ -201,9 +206,9 @@ async function routeToolCall(name, args, stores, projectRoot, dataLake, patternS
|
|
|
201
206
|
return handleCodeExamples(stores.pattern, projectRoot, args);
|
|
202
207
|
// File detail tools
|
|
203
208
|
case 'drift_files_list':
|
|
204
|
-
return handleFilesList(
|
|
209
|
+
return handleFilesList(projectRoot, args);
|
|
205
210
|
case 'drift_file_patterns':
|
|
206
|
-
return handleFilePatterns(
|
|
211
|
+
return handleFilePatterns(projectRoot, args);
|
|
207
212
|
// Call graph analysis tools
|
|
208
213
|
case 'drift_impact_analysis':
|
|
209
214
|
return handleImpactAnalysis(projectRoot, args);
|
|
@@ -220,12 +225,22 @@ async function routeToolCall(name, args, stores, projectRoot, dataLake, patternS
|
|
|
220
225
|
// Analysis Tools (L5-L7 Layers)
|
|
221
226
|
// ============================================================================
|
|
222
227
|
switch (name) {
|
|
228
|
+
case 'drift_simulate':
|
|
229
|
+
return handleSimulate(projectRoot, args);
|
|
223
230
|
case 'drift_test_topology':
|
|
224
231
|
return handleTestTopology(projectRoot, args);
|
|
225
232
|
case 'drift_coupling':
|
|
226
233
|
return handleCoupling(projectRoot, args);
|
|
227
234
|
case 'drift_error_handling':
|
|
228
235
|
return handleErrorHandling(projectRoot, args);
|
|
236
|
+
case 'drift_decisions':
|
|
237
|
+
return handleDecisions(projectRoot, args);
|
|
238
|
+
case 'drift_constraints':
|
|
239
|
+
return handleConstraints(projectRoot, args);
|
|
240
|
+
case 'drift_wpf':
|
|
241
|
+
return executeWpfTool(args, { projectRoot });
|
|
242
|
+
case 'drift_go':
|
|
243
|
+
return executeGoTool(args, { projectRoot });
|
|
229
244
|
}
|
|
230
245
|
// ============================================================================
|
|
231
246
|
// Generation Tools (AI-Powered Code Intelligence)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enterprise-server.js","sourceRoot":"","sources":["../src/enterprise-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,6BAA6B,GAG9B,MAAM,kBAAkB,CAAC;AAE1B,iBAAiB;AACjB,OAAO,EACL,WAAW,EACX,WAAW,EACX,OAAO,EACP,WAAW,GACZ,MAAM,2BAA2B,CAAC;AAEnC,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEjE,qBAAqB;AACrB,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,kBAAkB;AAClB,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,kCAAkC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,yBAAyB;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,6CAA6C;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,mCAAmC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"enterprise-server.js","sourceRoot":"","sources":["../src/enterprise-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* drift_constraints - Architectural Constraint Management
|
|
3
|
+
*
|
|
4
|
+
* MCP tool for managing learned architectural constraints.
|
|
5
|
+
* Constraints are invariants that MUST be satisfied by code.
|
|
6
|
+
*/
|
|
7
|
+
import { type Constraint, type ConstraintSummary, type ExtractionResult, type VerificationResult } from 'driftdetect-core';
|
|
8
|
+
export type ConstraintsAction = 'list' | 'show' | 'extract' | 'approve' | 'ignore' | 'verify';
|
|
9
|
+
export interface ConstraintsArgs {
|
|
10
|
+
action: ConstraintsAction;
|
|
11
|
+
id?: string;
|
|
12
|
+
file?: string;
|
|
13
|
+
category?: string;
|
|
14
|
+
status?: string;
|
|
15
|
+
limit?: number;
|
|
16
|
+
minConfidence?: number;
|
|
17
|
+
reason?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ConstraintsListData {
|
|
20
|
+
constraints: ConstraintSummary[];
|
|
21
|
+
total: number;
|
|
22
|
+
byCategory: Record<string, number>;
|
|
23
|
+
byStatus: Record<string, number>;
|
|
24
|
+
}
|
|
25
|
+
export interface ConstraintsShowData {
|
|
26
|
+
constraint: Constraint;
|
|
27
|
+
}
|
|
28
|
+
export interface ConstraintsExtractData {
|
|
29
|
+
result: ExtractionResult;
|
|
30
|
+
}
|
|
31
|
+
export interface ConstraintsVerifyData {
|
|
32
|
+
result: VerificationResult;
|
|
33
|
+
}
|
|
34
|
+
export declare function handleConstraints(projectRoot: string, args: ConstraintsArgs): Promise<{
|
|
35
|
+
content: Array<{
|
|
36
|
+
type: string;
|
|
37
|
+
text: string;
|
|
38
|
+
}>;
|
|
39
|
+
}>;
|
|
40
|
+
//# sourceMappingURL=constraints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../../../src/tools/analysis/constraints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,iBAAiB,EAEtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAC;AAO1B,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,MAAM,GACN,SAAS,GACT,SAAS,GACT,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAOD,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAmB7D"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* drift_constraints - Architectural Constraint Management
|
|
3
|
+
*
|
|
4
|
+
* MCP tool for managing learned architectural constraints.
|
|
5
|
+
* Constraints are invariants that MUST be satisfied by code.
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'node:fs/promises';
|
|
8
|
+
import * as path from 'node:path';
|
|
9
|
+
import { createConstraintStore, createInvariantDetector, createConstraintSynthesizer, createConstraintVerifier, } from 'driftdetect-core';
|
|
10
|
+
import { createResponseBuilder, Errors } from '../../infrastructure/index.js';
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Handler
|
|
13
|
+
// ============================================================================
|
|
14
|
+
export async function handleConstraints(projectRoot, args) {
|
|
15
|
+
const { action } = args;
|
|
16
|
+
switch (action) {
|
|
17
|
+
case 'list':
|
|
18
|
+
return handleList(projectRoot, args);
|
|
19
|
+
case 'show':
|
|
20
|
+
return handleShow(projectRoot, args.id);
|
|
21
|
+
case 'extract':
|
|
22
|
+
return handleExtract(projectRoot, args);
|
|
23
|
+
case 'approve':
|
|
24
|
+
return handleApprove(projectRoot, args.id);
|
|
25
|
+
case 'ignore':
|
|
26
|
+
return handleIgnore(projectRoot, args.id, args.reason);
|
|
27
|
+
case 'verify':
|
|
28
|
+
return handleVerify(projectRoot, args.file, args);
|
|
29
|
+
default:
|
|
30
|
+
throw Errors.invalidArgument('action', `Invalid action: ${action}. Valid: list, show, extract, approve, ignore, verify`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// ============================================================================
|
|
34
|
+
// Action Handlers
|
|
35
|
+
// ============================================================================
|
|
36
|
+
async function handleList(projectRoot, args) {
|
|
37
|
+
const builder = createResponseBuilder();
|
|
38
|
+
const store = createConstraintStore({ rootDir: projectRoot });
|
|
39
|
+
await store.initialize();
|
|
40
|
+
const queryOptions = {
|
|
41
|
+
limit: args.limit ?? 20,
|
|
42
|
+
};
|
|
43
|
+
if (args.category) {
|
|
44
|
+
queryOptions.category = args.category;
|
|
45
|
+
}
|
|
46
|
+
if (args.status) {
|
|
47
|
+
queryOptions.status = args.status;
|
|
48
|
+
}
|
|
49
|
+
if (args.minConfidence !== undefined) {
|
|
50
|
+
queryOptions.minConfidence = args.minConfidence;
|
|
51
|
+
}
|
|
52
|
+
const result = store.query(queryOptions);
|
|
53
|
+
const counts = store.getCounts();
|
|
54
|
+
const summaries = result.constraints.map(c => ({
|
|
55
|
+
id: c.id,
|
|
56
|
+
name: c.name,
|
|
57
|
+
description: c.description,
|
|
58
|
+
category: c.category,
|
|
59
|
+
language: c.language,
|
|
60
|
+
status: c.status,
|
|
61
|
+
confidence: c.confidence.score,
|
|
62
|
+
enforcement: c.enforcement.level,
|
|
63
|
+
evidence: c.confidence.evidence,
|
|
64
|
+
violations: c.confidence.violations,
|
|
65
|
+
type: c.invariant.type,
|
|
66
|
+
}));
|
|
67
|
+
let summaryText = `📋 ${result.total} constraints. `;
|
|
68
|
+
summaryText += `${counts.byStatus.approved ?? 0} approved, `;
|
|
69
|
+
summaryText += `${counts.byStatus.discovered ?? 0} discovered.`;
|
|
70
|
+
const hints = {
|
|
71
|
+
nextActions: counts.byStatus.discovered > 0
|
|
72
|
+
? ['Review discovered constraints with drift_constraints action="show"']
|
|
73
|
+
: ['All constraints reviewed'],
|
|
74
|
+
relatedTools: ['drift_constraints action="verify"', 'drift_context'],
|
|
75
|
+
};
|
|
76
|
+
return builder
|
|
77
|
+
.withSummary(summaryText)
|
|
78
|
+
.withData({
|
|
79
|
+
constraints: summaries,
|
|
80
|
+
total: result.total,
|
|
81
|
+
byCategory: counts.byCategory,
|
|
82
|
+
byStatus: counts.byStatus,
|
|
83
|
+
})
|
|
84
|
+
.withHints(hints)
|
|
85
|
+
.buildContent();
|
|
86
|
+
}
|
|
87
|
+
async function handleShow(projectRoot, id) {
|
|
88
|
+
const builder = createResponseBuilder();
|
|
89
|
+
if (!id) {
|
|
90
|
+
throw Errors.missingParameter('id');
|
|
91
|
+
}
|
|
92
|
+
const store = createConstraintStore({ rootDir: projectRoot });
|
|
93
|
+
await store.initialize();
|
|
94
|
+
const constraint = store.get(id);
|
|
95
|
+
if (!constraint) {
|
|
96
|
+
throw Errors.custom('CONSTRAINT_NOT_FOUND', `Constraint not found: ${id}`, []);
|
|
97
|
+
}
|
|
98
|
+
let summaryText = `🔍 ${constraint.name} (${constraint.status}). `;
|
|
99
|
+
summaryText += `${constraint.invariant.type}: ${constraint.invariant.condition}. `;
|
|
100
|
+
summaryText += `Confidence: ${Math.round(constraint.confidence.score * 100)}%.`;
|
|
101
|
+
const hints = {
|
|
102
|
+
nextActions: constraint.status === 'discovered'
|
|
103
|
+
? [`Approve: drift_constraints action="approve" id="${id}"`]
|
|
104
|
+
: ['Constraint is active'],
|
|
105
|
+
relatedTools: ['drift_constraints action="verify"'],
|
|
106
|
+
};
|
|
107
|
+
return builder
|
|
108
|
+
.withSummary(summaryText)
|
|
109
|
+
.withData({ constraint })
|
|
110
|
+
.withHints(hints)
|
|
111
|
+
.buildContent();
|
|
112
|
+
}
|
|
113
|
+
async function handleExtract(projectRoot, args) {
|
|
114
|
+
const builder = createResponseBuilder();
|
|
115
|
+
const store = createConstraintStore({ rootDir: projectRoot });
|
|
116
|
+
await store.initialize();
|
|
117
|
+
const detector = createInvariantDetector({ rootDir: projectRoot });
|
|
118
|
+
const synthesizer = createConstraintSynthesizer({ store, detector });
|
|
119
|
+
const synthesisOptions = {
|
|
120
|
+
minConfidence: args.minConfidence ?? 0.85,
|
|
121
|
+
includeViolationDetails: true,
|
|
122
|
+
};
|
|
123
|
+
if (args.category) {
|
|
124
|
+
synthesisOptions.categories = [args.category];
|
|
125
|
+
}
|
|
126
|
+
const result = await synthesizer.synthesize(synthesisOptions);
|
|
127
|
+
let summaryText = `🔍 Extracted ${result.discovered.length} new constraints. `;
|
|
128
|
+
summaryText += `Updated ${result.updated.length}, invalidated ${result.invalidated.length}. `;
|
|
129
|
+
summaryText += `Time: ${result.stats.executionTimeMs}ms.`;
|
|
130
|
+
const hints = {
|
|
131
|
+
nextActions: result.discovered.length > 0
|
|
132
|
+
? ['Review new constraints with drift_constraints action="list" status="discovered"']
|
|
133
|
+
: ['No new constraints found'],
|
|
134
|
+
relatedTools: ['drift_constraints action="list"', 'drift_constraints action="approve"'],
|
|
135
|
+
};
|
|
136
|
+
return builder
|
|
137
|
+
.withSummary(summaryText)
|
|
138
|
+
.withData({ result })
|
|
139
|
+
.withHints(hints)
|
|
140
|
+
.buildContent();
|
|
141
|
+
}
|
|
142
|
+
async function handleApprove(projectRoot, id) {
|
|
143
|
+
const builder = createResponseBuilder();
|
|
144
|
+
if (!id) {
|
|
145
|
+
throw Errors.missingParameter('id');
|
|
146
|
+
}
|
|
147
|
+
const store = createConstraintStore({ rootDir: projectRoot });
|
|
148
|
+
await store.initialize();
|
|
149
|
+
const result = await store.approve(id);
|
|
150
|
+
if (!result) {
|
|
151
|
+
throw Errors.custom('CONSTRAINT_NOT_FOUND', `Constraint not found: ${id}`, []);
|
|
152
|
+
}
|
|
153
|
+
const summaryText = `✓ Approved: ${result.name}. Now actively enforced.`;
|
|
154
|
+
const hints = {
|
|
155
|
+
nextActions: ['Verify code with drift_constraints action="verify"'],
|
|
156
|
+
relatedTools: ['drift_constraints action="verify"', 'drift_context'],
|
|
157
|
+
};
|
|
158
|
+
return builder
|
|
159
|
+
.withSummary(summaryText)
|
|
160
|
+
.withData({ constraint: result })
|
|
161
|
+
.withHints(hints)
|
|
162
|
+
.buildContent();
|
|
163
|
+
}
|
|
164
|
+
async function handleIgnore(projectRoot, id, reason) {
|
|
165
|
+
const builder = createResponseBuilder();
|
|
166
|
+
if (!id) {
|
|
167
|
+
throw Errors.missingParameter('id');
|
|
168
|
+
}
|
|
169
|
+
const store = createConstraintStore({ rootDir: projectRoot });
|
|
170
|
+
await store.initialize();
|
|
171
|
+
const result = await store.ignore(id, reason);
|
|
172
|
+
if (!result) {
|
|
173
|
+
throw Errors.custom('CONSTRAINT_NOT_FOUND', `Constraint not found: ${id}`, []);
|
|
174
|
+
}
|
|
175
|
+
let summaryText = `⊘ Ignored: ${result.name}.`;
|
|
176
|
+
if (reason) {
|
|
177
|
+
summaryText += ` Reason: ${reason}`;
|
|
178
|
+
}
|
|
179
|
+
const hints = {
|
|
180
|
+
nextActions: ['Continue reviewing other constraints'],
|
|
181
|
+
relatedTools: ['drift_constraints action="list" status="discovered"'],
|
|
182
|
+
};
|
|
183
|
+
return builder
|
|
184
|
+
.withSummary(summaryText)
|
|
185
|
+
.withData({ constraint: result })
|
|
186
|
+
.withHints(hints)
|
|
187
|
+
.buildContent();
|
|
188
|
+
}
|
|
189
|
+
async function handleVerify(projectRoot, file, args) {
|
|
190
|
+
const builder = createResponseBuilder();
|
|
191
|
+
if (!file) {
|
|
192
|
+
throw Errors.missingParameter('file');
|
|
193
|
+
}
|
|
194
|
+
const store = createConstraintStore({ rootDir: projectRoot });
|
|
195
|
+
await store.initialize();
|
|
196
|
+
const verifier = createConstraintVerifier({ rootDir: projectRoot, store });
|
|
197
|
+
// Read file content
|
|
198
|
+
const filePath = path.resolve(projectRoot, file);
|
|
199
|
+
let content;
|
|
200
|
+
try {
|
|
201
|
+
content = await fs.readFile(filePath, 'utf-8');
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
throw Errors.custom('FILE_NOT_FOUND', `File not found: ${file}`, []);
|
|
205
|
+
}
|
|
206
|
+
const verifyOptions = {
|
|
207
|
+
includeFixes: true,
|
|
208
|
+
includeExamples: true,
|
|
209
|
+
};
|
|
210
|
+
if (args?.category) {
|
|
211
|
+
verifyOptions.categories = [args.category];
|
|
212
|
+
}
|
|
213
|
+
if (args?.minConfidence !== undefined) {
|
|
214
|
+
verifyOptions.minConfidence = args.minConfidence;
|
|
215
|
+
}
|
|
216
|
+
const result = await verifier.verifyFile(file, content, verifyOptions);
|
|
217
|
+
let summaryText = result.passed
|
|
218
|
+
? `✓ All ${result.satisfied.length} constraints satisfied.`
|
|
219
|
+
: `✗ ${result.violations.length} violations found.`;
|
|
220
|
+
summaryText += ` Checked ${result.metadata.constraintsChecked} constraints in ${result.metadata.executionTimeMs}ms.`;
|
|
221
|
+
const hints = {
|
|
222
|
+
nextActions: result.violations.length > 0
|
|
223
|
+
? result.violations.slice(0, 3).map(v => v.guidance)
|
|
224
|
+
: ['Code follows all constraints'],
|
|
225
|
+
warnings: result.violations.filter(v => v.severity === 'error').length > 0
|
|
226
|
+
? ['Critical constraint violations found']
|
|
227
|
+
: undefined,
|
|
228
|
+
relatedTools: ['drift_suggest_changes', 'drift_context'],
|
|
229
|
+
};
|
|
230
|
+
return builder
|
|
231
|
+
.withSummary(summaryText)
|
|
232
|
+
.withData({ result })
|
|
233
|
+
.withHints(hints)
|
|
234
|
+
.buildContent();
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=constraints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constraints.js","sourceRoot":"","sources":["../../../src/tools/analysis/constraints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* drift_decisions - Decision Mining Analysis
|
|
3
|
+
*
|
|
4
|
+
* Analysis tool for mining architectural decisions from git history.
|
|
5
|
+
* Answers: "What architectural decisions were made?" and "Why was this code structured this way?"
|
|
6
|
+
*/
|
|
7
|
+
import { type MinedDecision, type DecisionMiningResult, type DecisionMiningSummary, type DecisionCategory } from 'driftdetect-core';
|
|
8
|
+
export type DecisionsAction = 'status' | 'list' | 'get' | 'for-file' | 'timeline' | 'search' | 'mine';
|
|
9
|
+
export interface DecisionsArgs {
|
|
10
|
+
action: DecisionsAction;
|
|
11
|
+
id?: string;
|
|
12
|
+
file?: string;
|
|
13
|
+
query?: string;
|
|
14
|
+
category?: DecisionCategory;
|
|
15
|
+
limit?: number;
|
|
16
|
+
since?: string;
|
|
17
|
+
until?: string;
|
|
18
|
+
minConfidence?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface DecisionsStatusData {
|
|
21
|
+
summary: DecisionMiningSummary;
|
|
22
|
+
generatedAt?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface DecisionsListData {
|
|
25
|
+
decisions: MinedDecision[];
|
|
26
|
+
total: number;
|
|
27
|
+
}
|
|
28
|
+
export interface DecisionsGetData {
|
|
29
|
+
decision: MinedDecision;
|
|
30
|
+
}
|
|
31
|
+
export interface DecisionsForFileData {
|
|
32
|
+
file: string;
|
|
33
|
+
decisions: MinedDecision[];
|
|
34
|
+
}
|
|
35
|
+
export interface DecisionsTimelineData {
|
|
36
|
+
timeline: Array<{
|
|
37
|
+
month: string;
|
|
38
|
+
decisions: MinedDecision[];
|
|
39
|
+
}>;
|
|
40
|
+
}
|
|
41
|
+
export interface DecisionsSearchData {
|
|
42
|
+
query: string;
|
|
43
|
+
results: MinedDecision[];
|
|
44
|
+
}
|
|
45
|
+
export interface DecisionsMineData {
|
|
46
|
+
result: DecisionMiningResult;
|
|
47
|
+
}
|
|
48
|
+
export declare function handleDecisions(projectRoot: string, args: DecisionsArgs): Promise<{
|
|
49
|
+
content: Array<{
|
|
50
|
+
type: string;
|
|
51
|
+
text: string;
|
|
52
|
+
}>;
|
|
53
|
+
}>;
|
|
54
|
+
//# sourceMappingURL=decisions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decisions.d.ts","sourceRoot":"","sources":["../../../src/tools/analysis/decisions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAO1B,MAAM,MAAM,eAAe,GACvB,QAAQ,GACR,MAAM,GACN,KAAK,GACL,UAAU,GACV,UAAU,GACV,QAAQ,GACR,MAAM,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,eAAe,CAAC;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,KAAK,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,aAAa,EAAE,CAAC;KAC5B,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAaD,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAqB7D"}
|