nuxs-capsule 0.1.16 → 0.1.18

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.
@@ -17,11 +17,15 @@ if (cmd === 'install') {
17
17
  if (result.pending > 0) {
18
18
  console.log(`[nuxs-capsule] flushed: ${result.sent} sent, ${result.failed} failed, ${result.pending} pending`);
19
19
  }
20
+ } else if (cmd === 'scan') {
21
+ // Detecta agentes locais e registra no painel
22
+ const { runScanCli } = await import('../dist/scan.js');
23
+ await runScanCli();
20
24
  } else if (cmd === 'serve' || cmd === undefined) {
21
25
  // Default: roda como MCP server (stdio)
22
26
  await import('../dist/server.js');
23
27
  } else {
24
28
  console.error(`nuxs-capsule: comando desconhecido "${cmd}"`);
25
- console.error('Use: install | setup | wrap | flush | serve');
29
+ console.error('Use: install | setup | wrap | flush | scan | serve');
26
30
  process.exit(1);
27
31
  }
package/dist/scan.d.ts ADDED
@@ -0,0 +1,42 @@
1
+ /**
2
+ * scan.ts — Sprint 3 (28/Mai/2026)
3
+ *
4
+ * Detecta agentes IA neste PC via 4 vetores:
5
+ * 1. launchd plists (~/Library/LaunchAgents/*.plist) — macOS
6
+ * 2. systemd units (systemctl --user list-units) — Linux
7
+ * 3. processos rodando (ps aux) — Mac/Linux
8
+ * 4. configs conhecidas (~/.claude, ~/.cursor, ~/.aider, ~/.continue)
9
+ *
10
+ * Plus: npm globals com keywords AI.
11
+ *
12
+ * Retorna lista pra `nuxs-capsule scan` mostrar wizard + auto-register
13
+ * via /api/nuxs/agents/register cada detectado.
14
+ */
15
+ export interface DetectedAgent {
16
+ kind: string;
17
+ label: string;
18
+ source: 'launchd' | 'systemd' | 'process' | 'config' | 'npm';
19
+ pid?: number;
20
+ config_path?: string;
21
+ binary_path?: string;
22
+ detail?: string;
23
+ }
24
+ /**
25
+ * scanLocalAgents — entry point. Combina os 4 vetores + dedup por label.
26
+ */
27
+ export declare function scanLocalAgents(): DetectedAgent[];
28
+ /**
29
+ * Registra todos os agentes detectados no backend Nuxs.
30
+ * Idempotente (backend faz upsert por fingerprint+kind+label).
31
+ */
32
+ export declare function registerDetectedAgents(): Promise<{
33
+ ok: number;
34
+ failed: number;
35
+ agents: Array<{
36
+ label: string;
37
+ agent_id: string | null;
38
+ }>;
39
+ }>;
40
+ /** Comando CLI `nuxs-capsule scan`. Mostra wizard + auto-register. */
41
+ export declare function runScanCli(): Promise<void>;
42
+ //# sourceMappingURL=scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgJD;;GAEG;AACH,wBAAgB,eAAe,IAAI,aAAa,EAAE,CAkBjD;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAkBjJ;AAED,sEAAsE;AACtE,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBhD"}
package/dist/scan.js ADDED
@@ -0,0 +1,250 @@
1
+ /**
2
+ * scan.ts — Sprint 3 (28/Mai/2026)
3
+ *
4
+ * Detecta agentes IA neste PC via 4 vetores:
5
+ * 1. launchd plists (~/Library/LaunchAgents/*.plist) — macOS
6
+ * 2. systemd units (systemctl --user list-units) — Linux
7
+ * 3. processos rodando (ps aux) — Mac/Linux
8
+ * 4. configs conhecidas (~/.claude, ~/.cursor, ~/.aider, ~/.continue)
9
+ *
10
+ * Plus: npm globals com keywords AI.
11
+ *
12
+ * Retorna lista pra `nuxs-capsule scan` mostrar wizard + auto-register
13
+ * via /api/nuxs/agents/register cada detectado.
14
+ */
15
+ import { execSync } from 'node:child_process';
16
+ import { existsSync, readdirSync, readFileSync } from 'node:fs';
17
+ import { homedir, platform, hostname } from 'node:os';
18
+ import { join } from 'node:path';
19
+ // ─── 1. LAUNCHD (macOS) ────────────────────────────────────────────
20
+ function scanLaunchd() {
21
+ if (platform() !== 'darwin')
22
+ return [];
23
+ const dir = join(homedir(), 'Library', 'LaunchAgents');
24
+ if (!existsSync(dir))
25
+ return [];
26
+ const out = [];
27
+ let files = [];
28
+ try {
29
+ files = readdirSync(dir).filter((f) => f.endsWith('.plist'));
30
+ }
31
+ catch {
32
+ return [];
33
+ }
34
+ for (const file of files) {
35
+ const path = join(dir, file);
36
+ let content = '';
37
+ try {
38
+ content = readFileSync(path, 'utf8');
39
+ }
40
+ catch {
41
+ continue;
42
+ }
43
+ // Detecta kind por nome OU conteúdo
44
+ const lower = file.toLowerCase() + ' ' + content.toLowerCase();
45
+ let kind = null;
46
+ if (/flyone|fly\.plist/i.test(file))
47
+ kind = 'fly';
48
+ else if (/openclaw/.test(lower))
49
+ kind = 'openclaw';
50
+ else if (/hermes/.test(lower))
51
+ kind = 'hermes';
52
+ else if (/cursor/.test(lower))
53
+ kind = 'cursor';
54
+ else if (/anthropic|claude/i.test(lower))
55
+ kind = 'claude_agent';
56
+ else
57
+ continue;
58
+ // Extrai Label
59
+ const labelMatch = content.match(/<key>Label<\/key>\s*<string>([^<]+)<\/string>/);
60
+ const label = labelMatch?.[1] ?? file.replace('.plist', '');
61
+ out.push({
62
+ kind,
63
+ label,
64
+ source: 'launchd',
65
+ config_path: path,
66
+ detail: 'launchd agent'
67
+ });
68
+ }
69
+ return out;
70
+ }
71
+ // ─── 2. PROCESSOS rodando ──────────────────────────────────────────
72
+ function scanProcesses() {
73
+ const out = [];
74
+ let psOutput = '';
75
+ try {
76
+ psOutput = execSync('ps ax -o pid,command 2>/dev/null', { encoding: 'utf8', timeout: 5000 });
77
+ }
78
+ catch {
79
+ return out;
80
+ }
81
+ const lines = psOutput.split('\n').slice(1); // skip header
82
+ for (const line of lines) {
83
+ const trimmed = line.trim();
84
+ if (!trimmed)
85
+ continue;
86
+ const m = trimmed.match(/^(\d+)\s+(.+)$/);
87
+ if (!m)
88
+ continue;
89
+ const pid = parseInt(m[1], 10);
90
+ const cmd = m[2].toLowerCase();
91
+ // Identifica kind pelo command
92
+ let kind = null;
93
+ let label = null;
94
+ if (/claude.code|\.local\/share\/claude/.test(cmd) && !cmd.includes('bg-spare')) {
95
+ kind = 'claude_code';
96
+ label = `claude_code_${pid}`;
97
+ }
98
+ else if (/cursor.*\.app/.test(cmd)) {
99
+ kind = 'cursor';
100
+ label = `cursor_${pid}`;
101
+ }
102
+ else if (/aider/.test(cmd)) {
103
+ kind = 'aider';
104
+ label = `aider_${pid}`;
105
+ }
106
+ else if (/openclaw-bridge|openclaw\s/.test(cmd) && !cmd.includes('grep')) {
107
+ kind = 'openclaw';
108
+ label = `openclaw_${pid}`;
109
+ }
110
+ else if (/hermes-bridge|hermes\s/.test(cmd) && !cmd.includes('grep')) {
111
+ kind = 'hermes';
112
+ label = `hermes_${pid}`;
113
+ }
114
+ if (!kind || !label)
115
+ continue;
116
+ out.push({ kind, label, source: 'process', pid });
117
+ }
118
+ return out;
119
+ }
120
+ // ─── 3. CONFIGS conhecidas ─────────────────────────────────────────
121
+ function scanConfigs() {
122
+ const home = homedir();
123
+ const candidates = [
124
+ { path: join(home, '.claude', 'settings.json'), kind: 'claude_code' },
125
+ { path: join(home, '.cursor', 'settings.json'), kind: 'cursor' },
126
+ { path: join(home, '.cursor', 'mcp.json'), kind: 'cursor' },
127
+ { path: join(home, '.aider.conf.yml'), kind: 'aider' },
128
+ { path: join(home, '.continue', 'config.json'), kind: 'continue' },
129
+ { path: join(home, '.codeium', 'config.json'), kind: 'codeium' },
130
+ { path: join(home, '.cline', 'config.json'), kind: 'cline' }
131
+ ];
132
+ const out = [];
133
+ for (const c of candidates) {
134
+ if (!existsSync(c.path))
135
+ continue;
136
+ out.push({
137
+ kind: c.kind,
138
+ label: `${c.kind}_config`,
139
+ source: 'config',
140
+ config_path: c.path,
141
+ detail: 'config file present'
142
+ });
143
+ }
144
+ return out;
145
+ }
146
+ // ─── 4. NPM GLOBALS ────────────────────────────────────────────────
147
+ function scanNpmGlobals() {
148
+ const out = [];
149
+ let raw = '';
150
+ try {
151
+ raw = execSync('npm ls -g --depth=0 --parseable 2>/dev/null', { encoding: 'utf8', timeout: 8000 });
152
+ }
153
+ catch {
154
+ return out;
155
+ }
156
+ const lines = raw.split('\n').filter(Boolean);
157
+ for (const line of lines) {
158
+ const name = line.split('/').pop() ?? '';
159
+ let kind = null;
160
+ if (/^claude(-code)?$/i.test(name) || /@anthropic-ai\/claude-code/i.test(line))
161
+ kind = 'claude_code';
162
+ else if (/^aider/i.test(name))
163
+ kind = 'aider';
164
+ else if (/^continue/i.test(name))
165
+ kind = 'continue';
166
+ else if (/^cursor-cli/i.test(name))
167
+ kind = 'cursor_cli';
168
+ else
169
+ continue;
170
+ out.push({
171
+ kind,
172
+ label: `${kind}_npm`,
173
+ source: 'npm',
174
+ binary_path: line,
175
+ detail: 'npm global'
176
+ });
177
+ }
178
+ return out;
179
+ }
180
+ /**
181
+ * scanLocalAgents — entry point. Combina os 4 vetores + dedup por label.
182
+ */
183
+ export function scanLocalAgents() {
184
+ const all = [
185
+ ...scanLaunchd(),
186
+ ...scanProcesses(),
187
+ ...scanConfigs(),
188
+ ...scanNpmGlobals()
189
+ ];
190
+ // Dedup por (kind, label) — mantém o que tem mais info (pid > config > npm)
191
+ const score = { process: 4, launchd: 3, config: 2, npm: 1, systemd: 3 };
192
+ const map = new Map();
193
+ for (const a of all) {
194
+ const key = `${a.kind}:${a.label}`;
195
+ const existing = map.get(key);
196
+ if (!existing || (score[a.source] ?? 0) > (score[existing.source] ?? 0)) {
197
+ map.set(key, a);
198
+ }
199
+ }
200
+ return Array.from(map.values());
201
+ }
202
+ /**
203
+ * Registra todos os agentes detectados no backend Nuxs.
204
+ * Idempotente (backend faz upsert por fingerprint+kind+label).
205
+ */
206
+ export async function registerDetectedAgents() {
207
+ const { registerAgent } = await import('./agents/register.js');
208
+ const detected = scanLocalAgents();
209
+ let ok = 0;
210
+ let failed = 0;
211
+ const agents = [];
212
+ for (const a of detected) {
213
+ const agentId = await registerAgent({
214
+ agent_kind: a.kind,
215
+ agent_label: a.label,
216
+ config_path: a.config_path,
217
+ binary_path: a.binary_path
218
+ });
219
+ if (agentId)
220
+ ok++;
221
+ else
222
+ failed++;
223
+ agents.push({ label: a.label, agent_id: agentId });
224
+ }
225
+ return { ok, failed, agents };
226
+ }
227
+ /** Comando CLI `nuxs-capsule scan`. Mostra wizard + auto-register. */
228
+ export async function runScanCli() {
229
+ console.log('\n🔍 Nuxs Capsule — Scan de agentes locais\n');
230
+ console.log(`Máquina: ${hostname()} (${platform()})\n`);
231
+ const detected = scanLocalAgents();
232
+ if (detected.length === 0) {
233
+ console.log('Nenhum agente IA detectado neste PC.\n');
234
+ return;
235
+ }
236
+ console.log(`Detectados ${detected.length} agentes:\n`);
237
+ for (let i = 0; i < detected.length; i++) {
238
+ const a = detected[i];
239
+ console.log(` [${i + 1}] ${a.kind.padEnd(14)} ${a.label.padEnd(30)} (${a.source})`);
240
+ if (a.config_path)
241
+ console.log(` config: ${a.config_path}`);
242
+ if (a.pid)
243
+ console.log(` PID: ${a.pid}`);
244
+ }
245
+ console.log('\nRegistrando todos no painel admin...');
246
+ const result = await registerDetectedAgents();
247
+ console.log(`\n✓ ${result.ok} agentes registrados, ${result.failed} falhas.`);
248
+ console.log('Veja em https://nuxs.ai/admin/capsule → aba "Agentes registrados"\n');
249
+ }
250
+ //# sourceMappingURL=scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
package/dist/setup.js CHANGED
@@ -17,6 +17,7 @@ import { createInterface } from 'node:readline/promises';
17
17
  import { execSync } from 'node:child_process';
18
18
  import { ensureDir } from './lib/fileStat.js';
19
19
  import { setLicenseKey } from './license/check.js';
20
+ import { scanLocalAgents, registerDetectedAgents } from './scan.js';
20
21
  const NUXS_DIR = join(homedir(), '.nuxs');
21
22
  const CACHE_DIR = join(NUXS_DIR, 'cache');
22
23
  const CLAUDE_CONFIG = join(homedir(), '.claude', 'settings.json');
@@ -24,14 +25,24 @@ const CLAUDE_PROJECT_MCP = '.mcp.json';
24
25
  const CURSOR_MCP = join(homedir(), '.cursor', 'mcp.json');
25
26
  const INTERCEPT_BIN = join(homedir(), '.nuxs', 'bin', 'nuxs-capsule-intercept');
26
27
  const SERVER_BIN = join(homedir(), '.nuxs', 'bin', 'nuxs-capsule');
28
+ function getVersion() {
29
+ try {
30
+ const pkgPath = new URL('../package.json', import.meta.url).pathname;
31
+ return JSON.parse(readFileSync(pkgPath, 'utf8')).version;
32
+ }
33
+ catch {
34
+ return 'unknown';
35
+ }
36
+ }
27
37
  async function main() {
28
- console.log('\n🟢 Nuxs Capsule Setup\n');
38
+ const v = getVersion();
39
+ console.log(`\n🟢 Nuxs Capsule Setup v${v}\n`);
29
40
  ensureDir(NUXS_DIR);
30
41
  ensureDir(CACHE_DIR);
31
42
  ensureDir(join(NUXS_DIR, 'bin'));
32
43
  // 1. License key
33
44
  await setupLicense();
34
- // 2. Detecta + configura agentes
45
+ // 2. Detecta + configura agentes (configs locais)
35
46
  const configured = [];
36
47
  if (existsSync(join(homedir(), '.claude'))) {
37
48
  setupClaudeCode();
@@ -45,18 +56,43 @@ async function main() {
45
56
  if (platform() !== 'win32') {
46
57
  setupCronFlush();
47
58
  }
48
- if (configured.length === 0) {
49
- console.log('⚠️ Nenhum agente IA detectado (~/.claude ou ~/.cursor).');
50
- console.log(' Instala o agente primeiro, depois roda `nuxs-capsule setup` de novo.\n');
59
+ // 4. SCAN: detecta TODOS os agentes locais (launchd/processos/configs/npm)
60
+ // e registra no backend automaticamente. 1 comando = tudo configurado.
61
+ console.log(' Scan de agentes locais...');
62
+ let detectedCount = 0;
63
+ let registeredCount = 0;
64
+ try {
65
+ const detected = scanLocalAgents();
66
+ detectedCount = detected.length;
67
+ if (detected.length > 0) {
68
+ console.log(` Encontrados ${detected.length} agentes:`);
69
+ for (const a of detected) {
70
+ console.log(` - ${a.kind.padEnd(14)} ${a.label} (${a.source})`);
71
+ }
72
+ const result = await registerDetectedAgents();
73
+ registeredCount = result.ok;
74
+ console.log(` ✓ ${result.ok}/${detected.length} registrados no painel admin`);
75
+ }
76
+ else {
77
+ console.log(' Nenhum agente extra detectado.');
78
+ }
79
+ }
80
+ catch (err) {
81
+ console.log(` ⚠️ Scan falhou: ${err instanceof Error ? err.message : err}`);
82
+ }
83
+ if (configured.length === 0 && detectedCount === 0) {
84
+ console.log('\n⚠️ Nenhum agente IA detectado neste PC.');
85
+ console.log(' Instala Claude Code, Cursor, Aider, etc primeiro.\n');
51
86
  }
52
87
  else {
53
- console.log(`\n✅ Configurado em: ${configured.join(', ')}\n`);
54
- console.log('Reinicia o agente pra carregar o MCP.\n');
55
- console.log('Próximos passos:');
56
- console.log(' - O agente vai usar Nuxs Capsule AUTOMATICAMENTE em .har, .json grande, etc');
57
- console.log(' - tua economia em https://nuxs.ai/mymind');
58
- console.log(' - Free tier: 50 cápsulas LLM-based/dia + ilimitado algoritmo puro');
59
- console.log(' - Solo Pro R$29/mês: ilimitado → https://nuxs.ai/pricing\n');
88
+ console.log(`\n✅ Setup completo:`);
89
+ if (configured.length > 0)
90
+ console.log(` • MCP+Hook configurado: ${configured.join(', ')}`);
91
+ if (registeredCount > 0)
92
+ console.log(` • ${registeredCount} agentes registrados no painel`);
93
+ console.log('\n📊 Veja teus agentes e cápsulas:');
94
+ console.log(' https://nuxs.ai/admin/capsule\n');
95
+ console.log('💡 Cron flush rodando a cada 1min. Reinicia teus agentes pra ativar MCP.\n');
60
96
  }
61
97
  }
62
98
  async function setupLicense() {
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nuxs-capsule",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "description": "Compressor universal pra agentes IA — Claude Code, Cursor, OpenClaw, Hermes. Camada invisível via MCP + Hook PreToolUse. Economiza 50-90% dos tokens.",
5
5
  "keywords": [
6
6
  "mcp",
@@ -38,6 +38,7 @@
38
38
  "dev": "tsx watch src/server.ts",
39
39
  "test": "vitest run",
40
40
  "lint": "tsc --noEmit",
41
+ "postinstall": "node -e \"const v=require('./package.json').version;process.stderr.write('\\n \\u001b[32m\\u2713\\u001b[0m nuxs-capsule v'+v+' installed. Run \\u001b[1mnuxs-capsule scan\\u001b[0m to detect agents.\\n\\n')\"",
41
42
  "compile:standalone": "bun build src/intercept.ts --compile --outfile bin/nuxs-capsule-intercept-bin"
42
43
  },
43
44
  "dependencies": {