@rangerchaz/aimem 0.1.4 → 0.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.
- package/README.md +589 -432
- package/dist/cli/commands/guardrails.d.ts +3 -0
- package/dist/cli/commands/guardrails.d.ts.map +1 -0
- package/dist/cli/commands/guardrails.js +340 -0
- package/dist/cli/commands/guardrails.js.map +1 -0
- package/dist/cli/commands/reindex.d.ts +7 -0
- package/dist/cli/commands/reindex.d.ts.map +1 -0
- package/dist/cli/commands/reindex.js +117 -0
- package/dist/cli/commands/reindex.js.map +1 -0
- package/dist/cli/index.js +15 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/db/index.d.ts +30 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +192 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/schema.d.ts +1 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +54 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/guardrails/analyzer.d.ts +20 -0
- package/dist/guardrails/analyzer.d.ts.map +1 -0
- package/dist/guardrails/analyzer.js +329 -0
- package/dist/guardrails/analyzer.js.map +1 -0
- package/dist/guardrails/calculator.d.ts +46 -0
- package/dist/guardrails/calculator.d.ts.map +1 -0
- package/dist/guardrails/calculator.js +97 -0
- package/dist/guardrails/calculator.js.map +1 -0
- package/dist/guardrails/enforcer.d.ts +28 -0
- package/dist/guardrails/enforcer.d.ts.map +1 -0
- package/dist/guardrails/enforcer.js +153 -0
- package/dist/guardrails/enforcer.js.map +1 -0
- package/dist/guardrails/index.d.ts +12 -0
- package/dist/guardrails/index.d.ts.map +1 -0
- package/dist/guardrails/index.js +17 -0
- package/dist/guardrails/index.js.map +1 -0
- package/dist/guardrails/linter-import.d.ts +31 -0
- package/dist/guardrails/linter-import.d.ts.map +1 -0
- package/dist/guardrails/linter-import.js +547 -0
- package/dist/guardrails/linter-import.js.map +1 -0
- package/dist/guardrails/responder.d.ts +28 -0
- package/dist/guardrails/responder.d.ts.map +1 -0
- package/dist/guardrails/responder.js +98 -0
- package/dist/guardrails/responder.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +409 -10
- package/dist/mcp/server.js.map +1 -1
- package/dist/proxy/interceptor-mockttp.d.ts +4 -0
- package/dist/proxy/interceptor-mockttp.d.ts.map +1 -1
- package/dist/proxy/interceptor-mockttp.js +59 -5
- package/dist/proxy/interceptor-mockttp.js.map +1 -1
- package/dist/types/index.d.ts +58 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +56 -56
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/guardrails.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgTpC,eAAO,MAAM,iBAAiB,SAK1B,CAAC"}
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { resolve } from 'path';
|
|
4
|
+
import { getProjectByPath, getProjectGuardrails, insertGuardrail, confirmGuardrail, deactivateGuardrail, getOrCreateProjectDik, incrementDikCounter, getGuardrail, getOverrideEvents, setAmbientPersonality, getGuardrailsConfig, setDikLevel, } from '../../db/index.js';
|
|
5
|
+
import { analyzeProject, saveProposedRules, calculateDik, getDikBreakdown, describeDikLevel, getPersonalityInjection, importLinterRules, } from '../../guardrails/index.js';
|
|
6
|
+
function findProject(targetPath) {
|
|
7
|
+
const projectPath = resolve(targetPath || process.cwd());
|
|
8
|
+
const project = getProjectByPath(projectPath);
|
|
9
|
+
if (!project) {
|
|
10
|
+
// Try to walk up to find project
|
|
11
|
+
let current = projectPath;
|
|
12
|
+
while (current !== resolve(current, '..')) {
|
|
13
|
+
current = resolve(current, '..');
|
|
14
|
+
const p = getProjectByPath(current);
|
|
15
|
+
if (p)
|
|
16
|
+
return p;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return project;
|
|
20
|
+
}
|
|
21
|
+
// List guardrails
|
|
22
|
+
async function listCommand(options) {
|
|
23
|
+
const project = findProject();
|
|
24
|
+
if (!project) {
|
|
25
|
+
console.error(chalk.red('No aimem project found. Run `aimem init` first.'));
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
const guardrails = getProjectGuardrails(project.id, {
|
|
29
|
+
category: options.category,
|
|
30
|
+
confirmedOnly: options.confirmed || false,
|
|
31
|
+
activeOnly: !options.all,
|
|
32
|
+
});
|
|
33
|
+
const dikData = getOrCreateProjectDik(project.id);
|
|
34
|
+
const dikLevel = calculateDik(dikData);
|
|
35
|
+
const breakdown = getDikBreakdown(dikData);
|
|
36
|
+
console.log(chalk.blue(`\nProject: ${project.name}`));
|
|
37
|
+
console.log(chalk.yellow(`DIK Level: ${dikLevel} - ${describeDikLevel(dikLevel)}`));
|
|
38
|
+
console.log(chalk.gray(` Base: ${breakdown.base}, Confirmation: +${breakdown.confirmationBonus}, Track Record: +${breakdown.trackRecord}, Experience: +${breakdown.experience}`));
|
|
39
|
+
console.log();
|
|
40
|
+
if (guardrails.length === 0) {
|
|
41
|
+
console.log(chalk.gray('No guardrails found. Run `aimem guardrails analyze` to infer patterns.'));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
console.log(chalk.bold(`Guardrails (${guardrails.length}):\n`));
|
|
45
|
+
for (const g of guardrails) {
|
|
46
|
+
const status = g.confirmed ? chalk.green('✓') : chalk.gray('?');
|
|
47
|
+
const severity = g.severity === 'block' ? chalk.red(`[${g.severity}]`) :
|
|
48
|
+
g.severity === 'warn' ? chalk.yellow(`[${g.severity}]`) :
|
|
49
|
+
chalk.gray(`[${g.severity}]`);
|
|
50
|
+
const source = g.source === 'inferred' ? chalk.gray('(inferred)') :
|
|
51
|
+
g.source === 'imported' ? chalk.cyan('(imported)') : '';
|
|
52
|
+
console.log(`${status} ${chalk.bold(`#${g.id}`)} ${severity} ${chalk.cyan(`[${g.category}]`)}`);
|
|
53
|
+
console.log(` ${g.rule}`);
|
|
54
|
+
if (g.rationale) {
|
|
55
|
+
console.log(chalk.gray(` ${g.rationale}`));
|
|
56
|
+
}
|
|
57
|
+
console.log(chalk.gray(` ${source}`));
|
|
58
|
+
console.log();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Add a rule
|
|
62
|
+
async function addCommand(category, rule, options) {
|
|
63
|
+
const project = findProject();
|
|
64
|
+
if (!project) {
|
|
65
|
+
console.error(chalk.red('No aimem project found. Run `aimem init` first.'));
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
const validCategories = ['design', 'architecture', 'naming', 'security', 'performance', 'testing'];
|
|
69
|
+
if (!validCategories.includes(category)) {
|
|
70
|
+
console.error(chalk.red(`Invalid category. Must be one of: ${validCategories.join(', ')}`));
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
const severity = (options.severity || 'warn');
|
|
74
|
+
const guardrail = insertGuardrail(project.id, category, rule, options.rationale || null, severity, 'explicit');
|
|
75
|
+
console.log(chalk.green(`Added guardrail #${guardrail.id}`));
|
|
76
|
+
console.log(chalk.gray(` Category: ${category}`));
|
|
77
|
+
console.log(chalk.gray(` Rule: ${rule}`));
|
|
78
|
+
if (options.rationale) {
|
|
79
|
+
console.log(chalk.gray(` Rationale: ${options.rationale}`));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Confirm a rule
|
|
83
|
+
async function confirmCommand(id) {
|
|
84
|
+
const project = findProject();
|
|
85
|
+
if (!project) {
|
|
86
|
+
console.error(chalk.red('No aimem project found. Run `aimem init` first.'));
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
const guardrailId = parseInt(id, 10);
|
|
90
|
+
const guardrail = getGuardrail(guardrailId);
|
|
91
|
+
if (!guardrail) {
|
|
92
|
+
console.error(chalk.red(`Guardrail #${id} not found.`));
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
const success = confirmGuardrail(guardrailId);
|
|
96
|
+
if (success) {
|
|
97
|
+
incrementDikCounter(project.id, 'rules_confirmed');
|
|
98
|
+
const dikData = getOrCreateProjectDik(project.id);
|
|
99
|
+
const newDik = calculateDik(dikData);
|
|
100
|
+
console.log(chalk.green(`Confirmed guardrail #${id}`));
|
|
101
|
+
console.log(chalk.yellow(`DIK Level: ${newDik}`));
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
console.log(chalk.yellow(`Guardrail #${id} was already confirmed.`));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Reject a rule
|
|
108
|
+
async function rejectCommand(id) {
|
|
109
|
+
const guardrailId = parseInt(id, 10);
|
|
110
|
+
const success = deactivateGuardrail(guardrailId);
|
|
111
|
+
if (success) {
|
|
112
|
+
console.log(chalk.yellow(`Deactivated guardrail #${id}`));
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
console.log(chalk.red(`Guardrail #${id} not found or already inactive.`));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Analyze project
|
|
119
|
+
async function analyzeCommand(options) {
|
|
120
|
+
const project = findProject();
|
|
121
|
+
if (!project) {
|
|
122
|
+
console.error(chalk.red('No aimem project found. Run `aimem init` first.'));
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
console.log(chalk.blue(`Analyzing project: ${project.name}...`));
|
|
126
|
+
const categories = options.category
|
|
127
|
+
? [options.category]
|
|
128
|
+
: undefined;
|
|
129
|
+
const proposed = analyzeProject(project.id, { categories });
|
|
130
|
+
if (proposed.length === 0) {
|
|
131
|
+
console.log(chalk.yellow('No patterns detected. Index more code or add explicit rules.'));
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
console.log(chalk.green(`\nFound ${proposed.length} patterns:\n`));
|
|
135
|
+
for (const p of proposed) {
|
|
136
|
+
const confidence = Math.round(p.confidence * 100);
|
|
137
|
+
const confidenceColor = confidence >= 80 ? chalk.green : confidence >= 60 ? chalk.yellow : chalk.gray;
|
|
138
|
+
console.log(`${chalk.cyan(`[${p.category}]`)} ${confidenceColor(`${confidence}%`)}`);
|
|
139
|
+
console.log(` ${chalk.bold(p.rule)}`);
|
|
140
|
+
console.log(chalk.gray(` ${p.rationale}`));
|
|
141
|
+
if (p.evidence.length > 0) {
|
|
142
|
+
console.log(chalk.gray(` Evidence: ${p.evidence.slice(0, 2).join(', ')}`));
|
|
143
|
+
}
|
|
144
|
+
console.log();
|
|
145
|
+
}
|
|
146
|
+
if (options.save) {
|
|
147
|
+
const saved = saveProposedRules(project.id, proposed);
|
|
148
|
+
console.log(chalk.green(`Saved ${saved.length} guardrails.`));
|
|
149
|
+
console.log(chalk.gray('Use `aimem guardrails confirm <id>` to validate them.'));
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
console.log(chalk.gray('Use --save to create guardrails from these patterns.'));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Show DIK status
|
|
156
|
+
async function statusCommand() {
|
|
157
|
+
const project = findProject();
|
|
158
|
+
if (!project) {
|
|
159
|
+
console.error(chalk.red('No aimem project found. Run `aimem init` first.'));
|
|
160
|
+
process.exit(1);
|
|
161
|
+
}
|
|
162
|
+
const dikData = getOrCreateProjectDik(project.id);
|
|
163
|
+
const dikLevel = calculateDik(dikData);
|
|
164
|
+
const breakdown = getDikBreakdown(dikData);
|
|
165
|
+
const guardrails = getProjectGuardrails(project.id);
|
|
166
|
+
const overrides = getOverrideEvents(project.id);
|
|
167
|
+
const config = getGuardrailsConfig(project.id);
|
|
168
|
+
console.log(chalk.blue(`\nProject: ${project.name}`));
|
|
169
|
+
console.log();
|
|
170
|
+
console.log(chalk.bold(`DIK Level: ${dikLevel}/10`));
|
|
171
|
+
console.log(chalk.yellow(describeDikLevel(dikLevel)));
|
|
172
|
+
console.log();
|
|
173
|
+
console.log(chalk.gray('Breakdown:'));
|
|
174
|
+
console.log(chalk.gray(` Base: ${breakdown.base}`));
|
|
175
|
+
console.log(chalk.gray(` Confirmation: +${breakdown.confirmationBonus}`));
|
|
176
|
+
console.log(chalk.gray(` Track Record: +${breakdown.trackRecord}`));
|
|
177
|
+
console.log(chalk.gray(` Experience: +${breakdown.experience}`));
|
|
178
|
+
console.log();
|
|
179
|
+
console.log(chalk.gray('Stats:'));
|
|
180
|
+
console.log(chalk.gray(` Rules inferred: ${dikData.rules_inferred}`));
|
|
181
|
+
console.log(chalk.gray(` Rules confirmed: ${dikData.rules_confirmed}`));
|
|
182
|
+
console.log(chalk.gray(` Corrections made: ${dikData.corrections_made}`));
|
|
183
|
+
console.log(chalk.gray(` Overrides regretted: ${dikData.overrides_regretted}`));
|
|
184
|
+
console.log(chalk.gray(` Conversations: ${dikData.conversations}`));
|
|
185
|
+
console.log();
|
|
186
|
+
console.log(chalk.gray(`Active guardrails: ${guardrails.length}`));
|
|
187
|
+
console.log(chalk.gray(`Pending overrides: ${overrides.length}`));
|
|
188
|
+
console.log();
|
|
189
|
+
console.log(chalk.gray('Config:'));
|
|
190
|
+
console.log(chalk.gray(` Ambient personality: ${config.ambient_personality ? chalk.green('enabled') : chalk.gray('disabled')}`));
|
|
191
|
+
if (config.ambient_personality) {
|
|
192
|
+
console.log();
|
|
193
|
+
console.log(chalk.gray('Current personality:'));
|
|
194
|
+
console.log(chalk.italic(getPersonalityInjection(dikLevel)));
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// Toggle ambient personality
|
|
198
|
+
async function ambientCommand(action) {
|
|
199
|
+
const project = findProject();
|
|
200
|
+
if (!project) {
|
|
201
|
+
console.error(chalk.red('No aimem project found. Run `aimem init` first.'));
|
|
202
|
+
process.exit(1);
|
|
203
|
+
}
|
|
204
|
+
const config = getGuardrailsConfig(project.id);
|
|
205
|
+
if (!action) {
|
|
206
|
+
// Show current status
|
|
207
|
+
const dikData = getOrCreateProjectDik(project.id);
|
|
208
|
+
const dikLevel = calculateDik(dikData);
|
|
209
|
+
console.log(chalk.blue(`Ambient Personality: ${config.ambient_personality ? chalk.green('enabled') : chalk.gray('disabled')}`));
|
|
210
|
+
console.log(chalk.gray(`DIK Level: ${dikLevel}/10 - ${describeDikLevel(dikLevel)}`));
|
|
211
|
+
if (config.ambient_personality) {
|
|
212
|
+
console.log();
|
|
213
|
+
console.log(chalk.gray('Current personality injection:'));
|
|
214
|
+
console.log(chalk.italic(getPersonalityInjection(dikLevel)));
|
|
215
|
+
}
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
if (action === 'on' || action === 'enable') {
|
|
219
|
+
setAmbientPersonality(project.id, true);
|
|
220
|
+
const dikData = getOrCreateProjectDik(project.id);
|
|
221
|
+
const dikLevel = calculateDik(dikData);
|
|
222
|
+
console.log(chalk.green('Ambient personality enabled.'));
|
|
223
|
+
console.log();
|
|
224
|
+
console.log(chalk.gray('Current personality:'));
|
|
225
|
+
console.log(chalk.italic(getPersonalityInjection(dikLevel)));
|
|
226
|
+
}
|
|
227
|
+
else if (action === 'off' || action === 'disable') {
|
|
228
|
+
setAmbientPersonality(project.id, false);
|
|
229
|
+
console.log(chalk.yellow('Ambient personality disabled.'));
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
console.error(chalk.red(`Unknown action: ${action}. Use 'on', 'off', 'enable', or 'disable'.`));
|
|
233
|
+
process.exit(1);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
// Build the command
|
|
237
|
+
export const guardrailsCommand = new Command('guardrails')
|
|
238
|
+
.description('Manage project guardrails (DIK - Digital Interface Knowledge)')
|
|
239
|
+
.action(() => {
|
|
240
|
+
// Default to list
|
|
241
|
+
listCommand({});
|
|
242
|
+
});
|
|
243
|
+
guardrailsCommand
|
|
244
|
+
.command('list')
|
|
245
|
+
.description('List all guardrails')
|
|
246
|
+
.option('-c, --category <category>', 'Filter by category')
|
|
247
|
+
.option('--confirmed', 'Only show confirmed rules')
|
|
248
|
+
.option('-a, --all', 'Include inactive rules')
|
|
249
|
+
.action(listCommand);
|
|
250
|
+
guardrailsCommand
|
|
251
|
+
.command('add <category> <rule>')
|
|
252
|
+
.description('Add an explicit guardrail')
|
|
253
|
+
.option('-r, --rationale <rationale>', 'Why this rule exists')
|
|
254
|
+
.option('-s, --severity <severity>', 'Rule severity: info, warn, block', 'warn')
|
|
255
|
+
.action(addCommand);
|
|
256
|
+
guardrailsCommand
|
|
257
|
+
.command('confirm <id>')
|
|
258
|
+
.description('Confirm an inferred rule (increases DIK)')
|
|
259
|
+
.action(confirmCommand);
|
|
260
|
+
guardrailsCommand
|
|
261
|
+
.command('reject <id>')
|
|
262
|
+
.description('Reject/deactivate a rule')
|
|
263
|
+
.action(rejectCommand);
|
|
264
|
+
guardrailsCommand
|
|
265
|
+
.command('analyze')
|
|
266
|
+
.description('Analyze project and infer rules from patterns')
|
|
267
|
+
.option('-s, --save', 'Save inferred rules as guardrails')
|
|
268
|
+
.option('-c, --category <category>', 'Only analyze specific category')
|
|
269
|
+
.action(analyzeCommand);
|
|
270
|
+
guardrailsCommand
|
|
271
|
+
.command('status')
|
|
272
|
+
.alias('dik')
|
|
273
|
+
.description('Show DIK level and stats')
|
|
274
|
+
.action(statusCommand);
|
|
275
|
+
guardrailsCommand
|
|
276
|
+
.command('ambient [action]')
|
|
277
|
+
.description('Toggle ambient personality mode (on/off)')
|
|
278
|
+
.action(ambientCommand);
|
|
279
|
+
guardrailsCommand
|
|
280
|
+
.command('set <level>')
|
|
281
|
+
.description('Manually set DIK level (1-10)')
|
|
282
|
+
.action((level) => {
|
|
283
|
+
const project = findProject();
|
|
284
|
+
if (!project) {
|
|
285
|
+
console.error(chalk.red('No aimem project found. Run `aimem init` first.'));
|
|
286
|
+
process.exit(1);
|
|
287
|
+
}
|
|
288
|
+
const levelNum = parseInt(level, 10);
|
|
289
|
+
if (isNaN(levelNum) || levelNum < 1 || levelNum > 10) {
|
|
290
|
+
console.error(chalk.red('DIK level must be between 1 and 10.'));
|
|
291
|
+
process.exit(1);
|
|
292
|
+
}
|
|
293
|
+
setDikLevel(project.id, levelNum);
|
|
294
|
+
const dikData = getOrCreateProjectDik(project.id);
|
|
295
|
+
const actualLevel = calculateDik(dikData);
|
|
296
|
+
console.log(chalk.green(`DIK level set to ${actualLevel}`));
|
|
297
|
+
console.log(chalk.yellow(describeDikLevel(actualLevel)));
|
|
298
|
+
const config = getGuardrailsConfig(project.id);
|
|
299
|
+
if (config.ambient_personality) {
|
|
300
|
+
console.log();
|
|
301
|
+
console.log(chalk.gray('Current personality:'));
|
|
302
|
+
console.log(chalk.italic(getPersonalityInjection(actualLevel)));
|
|
303
|
+
}
|
|
304
|
+
});
|
|
305
|
+
guardrailsCommand
|
|
306
|
+
.command('import-linters')
|
|
307
|
+
.description('Import rules from linter configs (.eslintrc, .rubocop.yml, etc.)')
|
|
308
|
+
.option('--dry-run', 'Show what would be imported without saving')
|
|
309
|
+
.action((options) => {
|
|
310
|
+
const project = findProject();
|
|
311
|
+
if (!project) {
|
|
312
|
+
console.error(chalk.red('No aimem project found. Run `aimem init` first.'));
|
|
313
|
+
process.exit(1);
|
|
314
|
+
}
|
|
315
|
+
console.log(chalk.blue(`Scanning for linter configs in: ${project.path}...`));
|
|
316
|
+
console.log();
|
|
317
|
+
const result = importLinterRules(project.id, project.path, { dryRun: options.dryRun });
|
|
318
|
+
if (result.configs.length === 0) {
|
|
319
|
+
console.log(chalk.yellow('No linter configs found.'));
|
|
320
|
+
console.log(chalk.gray('Supported: .eslintrc*, .rubocop.yml, pyproject.toml, .prettierrc*, tsconfig.json'));
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
for (const config of result.configs) {
|
|
324
|
+
console.log(chalk.cyan(`${config.type.toUpperCase()}`), chalk.gray(`(${config.path})`));
|
|
325
|
+
for (const rule of config.rules) {
|
|
326
|
+
console.log(` ${chalk.gray(`[${rule.category}]`)} ${rule.rule}`);
|
|
327
|
+
console.log(` ${chalk.gray(rule.rationale)}`);
|
|
328
|
+
}
|
|
329
|
+
console.log();
|
|
330
|
+
}
|
|
331
|
+
if (options.dryRun) {
|
|
332
|
+
console.log(chalk.yellow(`Dry run: ${result.totalRules} rules would be imported.`));
|
|
333
|
+
console.log(chalk.gray('Run without --dry-run to save.'));
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
console.log(chalk.green(`Imported ${result.saved.length} guardrails from ${result.configs.length} linter config(s).`));
|
|
337
|
+
console.log(chalk.gray('Use `aimem guardrails list` to see all rules.'));
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
//# sourceMappingURL=guardrails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../../../src/cli/commands/guardrails.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reindex.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/reindex.ts"],"names":[],"mappings":"AAOA,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6CD,wBAAsB,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyFrG"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { resolve, relative, join } from 'path';
|
|
2
|
+
import { existsSync, statSync } from 'fs';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { glob } from 'glob';
|
|
5
|
+
import { getProjectByPath, getDb } from '../../db/index.js';
|
|
6
|
+
import { indexProject, indexFile, getSupportedExtensions } from '../../indexer/index.js';
|
|
7
|
+
function findProjectForPath(targetPath) {
|
|
8
|
+
// Check if targetPath itself is a project
|
|
9
|
+
let project = getProjectByPath(targetPath);
|
|
10
|
+
if (project) {
|
|
11
|
+
return { project, projectPath: targetPath };
|
|
12
|
+
}
|
|
13
|
+
// Walk up the directory tree to find a project
|
|
14
|
+
let currentPath = targetPath;
|
|
15
|
+
while (currentPath !== resolve(currentPath, '..')) {
|
|
16
|
+
currentPath = resolve(currentPath, '..');
|
|
17
|
+
project = getProjectByPath(currentPath);
|
|
18
|
+
if (project) {
|
|
19
|
+
return { project, projectPath: currentPath };
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
async function reindexFiles(projectId, projectPath, filePaths, options) {
|
|
25
|
+
let totalStructures = 0;
|
|
26
|
+
let indexedFiles = 0;
|
|
27
|
+
for (const relativePath of filePaths) {
|
|
28
|
+
const count = await indexFile(projectId, projectPath, relativePath, {
|
|
29
|
+
trackBlame: options.withBlame,
|
|
30
|
+
});
|
|
31
|
+
if (count > 0) {
|
|
32
|
+
indexedFiles++;
|
|
33
|
+
totalStructures += count;
|
|
34
|
+
console.log(chalk.gray(` ${relativePath}: ${count} structures`));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return { files: indexedFiles, structures: totalStructures };
|
|
38
|
+
}
|
|
39
|
+
export async function reindexCommand(targetPath, options = {}) {
|
|
40
|
+
const inputPath = resolve(targetPath || process.cwd());
|
|
41
|
+
if (!existsSync(inputPath)) {
|
|
42
|
+
console.error(chalk.red(`Error: Path does not exist: ${inputPath}`));
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
// Find the project this path belongs to
|
|
46
|
+
const found = findProjectForPath(inputPath);
|
|
47
|
+
if (!found) {
|
|
48
|
+
console.error(chalk.red(`Error: No aimem project found for: ${inputPath}`));
|
|
49
|
+
console.error(chalk.gray(`Run 'aimem init' first to initialize a project.`));
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
const { project, projectPath } = found;
|
|
53
|
+
const isSubPath = inputPath !== projectPath;
|
|
54
|
+
const stat = statSync(inputPath);
|
|
55
|
+
console.log(chalk.blue(`Project: ${project.name} (${projectPath})`));
|
|
56
|
+
if (options.full && !isSubPath) {
|
|
57
|
+
// Full reindex: clear all structures and links for this project
|
|
58
|
+
console.log(chalk.yellow(`Clearing existing index...`));
|
|
59
|
+
const db = getDb();
|
|
60
|
+
// Delete all structures (cascades to links via triggers)
|
|
61
|
+
db.prepare(`
|
|
62
|
+
DELETE FROM structures WHERE file_id IN (
|
|
63
|
+
SELECT id FROM files WHERE project_id = ?
|
|
64
|
+
)
|
|
65
|
+
`).run(project.id);
|
|
66
|
+
// Delete all files for this project
|
|
67
|
+
db.prepare('DELETE FROM files WHERE project_id = ?').run(project.id);
|
|
68
|
+
console.log(chalk.gray(` Cleared all indexed data for project`));
|
|
69
|
+
}
|
|
70
|
+
if (isSubPath) {
|
|
71
|
+
// Reindex specific file or directory
|
|
72
|
+
const relativeTo = projectPath;
|
|
73
|
+
let filesToIndex = [];
|
|
74
|
+
if (stat.isFile()) {
|
|
75
|
+
// Single file
|
|
76
|
+
const relPath = relative(projectPath, inputPath);
|
|
77
|
+
filesToIndex = [relPath];
|
|
78
|
+
console.log(chalk.blue(`Reindexing file: ${relPath}`));
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// Directory - find all supported files
|
|
82
|
+
const extensions = getSupportedExtensions().map(ext => ext.slice(1));
|
|
83
|
+
const pattern = `**/*.{${extensions.join(',')}}`;
|
|
84
|
+
const relDir = relative(projectPath, inputPath);
|
|
85
|
+
const files = await glob(pattern, {
|
|
86
|
+
cwd: inputPath,
|
|
87
|
+
ignore: [
|
|
88
|
+
'**/node_modules/**',
|
|
89
|
+
'**/.git/**',
|
|
90
|
+
'**/dist/**',
|
|
91
|
+
'**/build/**',
|
|
92
|
+
'**/__pycache__/**',
|
|
93
|
+
'**/.venv/**',
|
|
94
|
+
],
|
|
95
|
+
nodir: true,
|
|
96
|
+
absolute: false,
|
|
97
|
+
});
|
|
98
|
+
filesToIndex = files.map(f => join(relDir, f));
|
|
99
|
+
console.log(chalk.blue(`Reindexing directory: ${relDir}/ (${filesToIndex.length} files)`));
|
|
100
|
+
}
|
|
101
|
+
if (filesToIndex.length === 0) {
|
|
102
|
+
console.log(chalk.yellow(`No supported files found to index.`));
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const result = await reindexFiles(project.id, projectPath, filesToIndex, options);
|
|
106
|
+
console.log(chalk.green(`Done! Indexed ${result.files} files, ${result.structures} structures`));
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
// Full project reindex
|
|
110
|
+
console.log(chalk.blue(`Reindexing entire project...`));
|
|
111
|
+
const result = await indexProject(project.id, projectPath, {
|
|
112
|
+
trackBlame: options.withBlame,
|
|
113
|
+
});
|
|
114
|
+
console.log(chalk.green(`Done! Indexed ${result.files} files, ${result.structures} structures, ${result.links} call links`));
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=reindex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reindex.js","sourceRoot":"","sources":["../../../src/cli/commands/reindex.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -11,6 +11,8 @@ import { setupCommand } from './commands/setup.js';
|
|
|
11
11
|
import { importCommand } from './commands/import.js';
|
|
12
12
|
import { visualizeCommand } from './commands/visualize.js';
|
|
13
13
|
import { gitCommand } from './commands/git.js';
|
|
14
|
+
import { reindexCommand } from './commands/reindex.js';
|
|
15
|
+
import { guardrailsCommand } from './commands/guardrails.js';
|
|
14
16
|
const require = createRequire(import.meta.url);
|
|
15
17
|
const packageJson = require('../../package.json');
|
|
16
18
|
const program = new Command();
|
|
@@ -22,6 +24,17 @@ program
|
|
|
22
24
|
.command('init [path]')
|
|
23
25
|
.description('Initialize aimem for a codebase')
|
|
24
26
|
.action(initCommand);
|
|
27
|
+
program
|
|
28
|
+
.command('reindex [path]')
|
|
29
|
+
.description('Reindex a project, file, or directory')
|
|
30
|
+
.option('-f, --full', 'Clear all indexed data before reindexing')
|
|
31
|
+
.option('-b, --with-blame', 'Track git authorship for each structure')
|
|
32
|
+
.action((path, options) => {
|
|
33
|
+
reindexCommand(path, {
|
|
34
|
+
full: options.full,
|
|
35
|
+
withBlame: options.withBlame,
|
|
36
|
+
});
|
|
37
|
+
});
|
|
25
38
|
program
|
|
26
39
|
.command('start')
|
|
27
40
|
.description('Start proxy and watcher services')
|
|
@@ -113,5 +126,7 @@ program
|
|
|
113
126
|
});
|
|
114
127
|
// Git integration commands
|
|
115
128
|
program.addCommand(gitCommand);
|
|
129
|
+
// Guardrails (DIK) commands
|
|
130
|
+
program.addCommand(guardrailsCommand);
|
|
116
131
|
program.parse();
|
|
117
132
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/db/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Database from 'better-sqlite3';
|
|
2
|
-
import type { Project, File, Structure, Conversation, Link, Extraction, IndexStats, Commit, CommitLink } from '../types/index.js';
|
|
2
|
+
import type { Project, File, Structure, Conversation, Link, Extraction, IndexStats, Commit, CommitLink, Guardrail, GuardrailEvent, ProjectDik, GuardrailCategory, GuardrailSeverity, GuardrailSource, GuardrailEventType } from '../types/index.js';
|
|
3
3
|
export declare function getDataDir(): string;
|
|
4
4
|
export declare function ensureDataDir(): void;
|
|
5
5
|
export declare function getDb(): Database.Database;
|
|
@@ -33,6 +33,7 @@ export declare function structureExists(name: string): boolean;
|
|
|
33
33
|
export declare function fileExists(path: string): boolean;
|
|
34
34
|
export declare function getConversationById(id: number): Conversation | undefined;
|
|
35
35
|
export declare function getFullConversations(projectId: number, limit?: number, offset?: number): Conversation[];
|
|
36
|
+
export declare function getRecentConversations(limit?: number, projectId?: number): Conversation[];
|
|
36
37
|
export declare function searchFullConversations(query: string, limit?: number, projectId?: number): Conversation[];
|
|
37
38
|
export interface StructureWithFile extends Structure {
|
|
38
39
|
file_path: string;
|
|
@@ -52,4 +53,32 @@ export declare function getCommitsForStructure(structureId: number): Commit[];
|
|
|
52
53
|
export declare function getCommitsForExtraction(extractionId: number): Commit[];
|
|
53
54
|
export declare function updateStructureAuthorship(structureId: number, author: string | null, authorEmail: string | null, commitHash: string | null): void;
|
|
54
55
|
export declare function getUncommittedExtractions(projectId: number, sinceCommitHash?: string): Extraction[];
|
|
56
|
+
export declare function insertGuardrail(projectId: number, category: GuardrailCategory, rule: string, rationale?: string | null, severity?: GuardrailSeverity, source?: GuardrailSource, sourceFile?: string | null): Guardrail;
|
|
57
|
+
export declare function getGuardrail(id: number): Guardrail | undefined;
|
|
58
|
+
export declare function getProjectGuardrails(projectId: number, options?: {
|
|
59
|
+
category?: GuardrailCategory;
|
|
60
|
+
confirmedOnly?: boolean;
|
|
61
|
+
activeOnly?: boolean;
|
|
62
|
+
}): Guardrail[];
|
|
63
|
+
export declare function confirmGuardrail(id: number): boolean;
|
|
64
|
+
export declare function deactivateGuardrail(id: number): boolean;
|
|
65
|
+
export declare function deleteGuardrail(id: number): boolean;
|
|
66
|
+
export declare function insertGuardrailEvent(guardrailId: number, eventType: GuardrailEventType, context?: string | null, response?: string | null, dikLevel?: number | null): GuardrailEvent;
|
|
67
|
+
export declare function getGuardrailEvents(guardrailId: number): GuardrailEvent[];
|
|
68
|
+
export declare function getGuardrailEvent(id: number): GuardrailEvent | undefined;
|
|
69
|
+
export declare function getOverrideEvents(projectId: number): GuardrailEvent[];
|
|
70
|
+
export declare function getOrCreateProjectDik(projectId: number): ProjectDik;
|
|
71
|
+
export declare function updateProjectDik(projectId: number, updates: Partial<Omit<ProjectDik, 'id' | 'project_id' | 'created_at'>>): ProjectDik;
|
|
72
|
+
export declare function incrementDikCounter(projectId: number, counter: 'rules_confirmed' | 'rules_inferred' | 'conversations' | 'corrections_made' | 'overrides_regretted'): void;
|
|
73
|
+
export declare function getGuardrailHistory(guardrailId: number): {
|
|
74
|
+
overrides: number;
|
|
75
|
+
vindicated: boolean;
|
|
76
|
+
};
|
|
77
|
+
export declare function setAmbientPersonality(projectId: number, enabled: boolean): void;
|
|
78
|
+
export declare function getGuardrailsConfig(projectId: number): {
|
|
79
|
+
enabled: boolean;
|
|
80
|
+
ambient_personality: boolean;
|
|
81
|
+
};
|
|
82
|
+
export declare function setDikLevel(projectId: number, level: number): void;
|
|
83
|
+
export declare function isDikManuallySet(projectId: number): boolean;
|
|
55
84
|
//# sourceMappingURL=index.d.ts.map
|