auxilo-mcp 0.8.2 → 0.9.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/bin/auxilo-cli.js +52 -3
- package/lib/installer.js +712 -28
- package/package.json +4 -3
- package/scripts/capture-core.js +218 -0
- package/scripts/runner.js +54 -7
- package/scripts/sources/antigravity.js +131 -0
- package/scripts/sources/gemini-cli.js +178 -0
- package/scripts/sources/generic-jsonl.js +157 -0
package/bin/auxilo-cli.js
CHANGED
|
@@ -88,8 +88,8 @@ function parseFlags(argv) {
|
|
|
88
88
|
const CONSENT_TEXT = `
|
|
89
89
|
Background extraction (optional)
|
|
90
90
|
--------------------------------
|
|
91
|
-
If you opt in, a
|
|
92
|
-
local runner:
|
|
91
|
+
If you opt in, a session-end hook runs after each session in your wired
|
|
92
|
+
clients (Claude Code, Cursor, Gemini CLI, …) and a local runner:
|
|
93
93
|
• READS the session transcript from your machine,
|
|
94
94
|
• SCRUBS it locally (sensitivity filter: API keys, tokens, emails, PII —
|
|
95
95
|
redacted BEFORE anything leaves your machine),
|
|
@@ -109,7 +109,9 @@ async function cmdSetup(flags) {
|
|
|
109
109
|
// 1. Client detection ------------------------------------------------------
|
|
110
110
|
const detected = installer.detectClients(HOME);
|
|
111
111
|
if (detected.length === 0) {
|
|
112
|
-
console.log('No supported clients detected (Claude Code, Claude Desktop, Cursor,
|
|
112
|
+
console.log('No supported clients detected (Claude Code, Claude Desktop, Cursor, Windsurf,');
|
|
113
|
+
console.log('Codex CLI, Gemini CLI, Antigravity, Factory droid, Copilot CLI, Continue.dev,');
|
|
114
|
+
console.log('opencode, Kiro, Junie, Amp, OpenHands, OpenClaw).');
|
|
113
115
|
console.log('Install one, then re-run `npx auxilo setup`.');
|
|
114
116
|
process.exit(1);
|
|
115
117
|
}
|
|
@@ -210,6 +212,23 @@ async function cmdSetup(flags) {
|
|
|
210
212
|
}
|
|
211
213
|
}
|
|
212
214
|
|
|
215
|
+
// UC-1: capture hooks for every other chosen client that supports one.
|
|
216
|
+
try {
|
|
217
|
+
for (const r of installer.installCaptureHooks(HOME, chosen)) {
|
|
218
|
+
if (r.error) {
|
|
219
|
+
console.error(` ✗ ${r.name}: SKIPPED — ${r.error}`);
|
|
220
|
+
} else if (r.changed) {
|
|
221
|
+
console.log(` ✓ ${r.name}: capture hook registered (${r.event})`);
|
|
222
|
+
if (r.notes) console.log(` ${r.notes}`);
|
|
223
|
+
} else {
|
|
224
|
+
console.log(` ✓ ${r.name}: capture hook already registered`);
|
|
225
|
+
if (r.notes) console.log(` ${r.notes}`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
} catch (err) {
|
|
229
|
+
console.error(` ✗ Capture hooks SKIPPED — ${err.message}`);
|
|
230
|
+
}
|
|
231
|
+
|
|
213
232
|
// 5. Explicit consent (default No) ------------------------------------------
|
|
214
233
|
console.log(CONSENT_TEXT);
|
|
215
234
|
const consented = await askYesNo(' Enable background extraction?', false);
|
|
@@ -226,6 +245,33 @@ async function cmdSetup(flags) {
|
|
|
226
245
|
console.log(' ✓ Background extraction left OFF (MCP-only install). Enable later by re-running `auxilo setup`.');
|
|
227
246
|
}
|
|
228
247
|
|
|
248
|
+
// 6. Rules-file snippet (UC-0 agent-prompted contribution; opt-in, default No)
|
|
249
|
+
const rulesClients = chosen.filter((c) => c.rulesPath);
|
|
250
|
+
if (rulesClients.length > 0) {
|
|
251
|
+
console.log('');
|
|
252
|
+
const addRules = await askYesNo(
|
|
253
|
+
" Add a one-paragraph note to your agents' global rules files suggesting they contribute learnings?",
|
|
254
|
+
false
|
|
255
|
+
);
|
|
256
|
+
if (addRules) {
|
|
257
|
+
try {
|
|
258
|
+
const results = installer.installRulesSnippet(HOME, {
|
|
259
|
+
targets: rulesClients.map((c) => c.rulesPath),
|
|
260
|
+
});
|
|
261
|
+
for (let i = 0; i < results.length; i++) {
|
|
262
|
+
const r = results[i];
|
|
263
|
+
console.log(r.changed
|
|
264
|
+
? ` ✓ ${rulesClients[i].name}: contribution note written to ${r.path}`
|
|
265
|
+
: ` ✓ ${rulesClients[i].name}: contribution note already present in ${r.path} (no changes)`);
|
|
266
|
+
}
|
|
267
|
+
} catch (err) {
|
|
268
|
+
console.error(` ✗ Rules snippet SKIPPED — ${err.message}`);
|
|
269
|
+
}
|
|
270
|
+
} else {
|
|
271
|
+
console.log(' ✓ Rules files left untouched.');
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
229
275
|
console.log('\nDone. Check `npx auxilo status` any time. Restart your client(s) to pick up the MCP server.\n');
|
|
230
276
|
}
|
|
231
277
|
|
|
@@ -253,6 +299,9 @@ async function cmdStatus() {
|
|
|
253
299
|
console.log(`Kill-switch sentinel: ${s.sentinel ? 'present (extraction enabled)' : 'absent (extraction disabled)'}`);
|
|
254
300
|
console.log(`Runner installed: ${s.runnerInstalled ? 'yes (~/.auxilo/bin)' : 'no'}`);
|
|
255
301
|
console.log(`SessionEnd hook: ${s.hookInstalled ? 'installed' : 'not installed'}${s.hookRegistered ? ', registered in Claude Code settings' : ''}`);
|
|
302
|
+
for (const c of s.clients.filter((c) => c.captureHook)) {
|
|
303
|
+
console.log(`Capture hooks: ${c.name} (${c.captureEvent}, ${c.captureRegistered ? 'registered' : 'not registered'})`);
|
|
304
|
+
}
|
|
256
305
|
console.log(`Last extraction sweep: ${s.lastSweep || 'never'}`);
|
|
257
306
|
console.log(`Pending upload queue: ${s.pendingCount} file(s)\n`);
|
|
258
307
|
}
|