helix-assistant-cli 0.2.8 → 0.2.9
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/commands/mcp.d.ts +1 -0
- package/dist/commands/mcp.js +10 -0
- package/dist/config/mcp-defaults.d.ts +10 -0
- package/dist/config/mcp-defaults.js +12 -0
- package/dist/index.js +1 -1
- package/dist/ui/autocomplete.js +1 -1
- package/dist/ui/repl.js +4 -1
- package/package.json +1 -1
- package/src/commands/mcp.ts +10 -0
- package/src/config/mcp-defaults.ts +18 -0
- package/src/index.ts +1 -1
- package/src/ui/autocomplete.ts +1 -1
- package/src/ui/repl.ts +3 -2
package/dist/commands/mcp.d.ts
CHANGED
package/dist/commands/mcp.js
CHANGED
|
@@ -3,11 +3,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.handleMcpDefaults = handleMcpDefaults;
|
|
6
7
|
exports.handleListMcp = handleListMcp;
|
|
7
8
|
exports.handleCreateMcp = handleCreateMcp;
|
|
8
9
|
const prompts_1 = __importDefault(require("prompts"));
|
|
9
10
|
const chalk_1 = __importDefault(require("chalk"));
|
|
10
11
|
const colors_1 = require("../ui/colors");
|
|
12
|
+
const mcp_defaults_1 = require("../config/mcp-defaults");
|
|
13
|
+
function handleMcpDefaults() {
|
|
14
|
+
console.log(`\n${(0, colors_1.BOLD)('📦 MCPs recomendados (catálogo, no activados automáticamente):')}\n`);
|
|
15
|
+
for (const item of mcp_defaults_1.MCP_DEFAULTS) {
|
|
16
|
+
console.log(` ${(0, colors_1.CYAN_BOLD)('◈')} ${(0, colors_1.formatMcp)(item.id)} — ${item.label}`);
|
|
17
|
+
console.log(` ${(0, colors_1.DIM)(item.purpose)} | ${item.activation} | ${item.privacy}`);
|
|
18
|
+
}
|
|
19
|
+
console.log((0, colors_1.DIM)('\nActiva cada MCP individualmente con consentimiento y alcance explícito.\n'));
|
|
20
|
+
}
|
|
11
21
|
async function handleListMcp(client) {
|
|
12
22
|
console.log(`\n${(0, colors_1.BOLD)('🔌 Servidores y Herramientas MCP:')}\n`);
|
|
13
23
|
try {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface McpDefaultDefinition {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
purpose: string;
|
|
5
|
+
transport: 'stdio' | 'connector';
|
|
6
|
+
activation: 'local-opt-in' | 'oauth-opt-in';
|
|
7
|
+
privacy: string;
|
|
8
|
+
}
|
|
9
|
+
/** Catalog only: entries are never enabled or installed automatically. */
|
|
10
|
+
export declare const MCP_DEFAULTS: McpDefaultDefinition[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MCP_DEFAULTS = void 0;
|
|
4
|
+
/** Catalog only: entries are never enabled or installed automatically. */
|
|
5
|
+
exports.MCP_DEFAULTS = [
|
|
6
|
+
{ id: 'filesystem', label: 'Archivos locales', purpose: 'Carpeta elegida por el usuario', transport: 'stdio', activation: 'local-opt-in', privacy: 'Solo rutas autorizadas' },
|
|
7
|
+
{ id: 'obsidian', label: 'Obsidian / Helix Vault', purpose: 'Leer y gestionar una bóveda concreta', transport: 'stdio', activation: 'local-opt-in', privacy: 'Solo la bóveda seleccionada' },
|
|
8
|
+
{ id: 'vscode', label: 'VS Code', purpose: 'Trabajar con el workspace seleccionado', transport: 'stdio', activation: 'local-opt-in', privacy: 'Solo el workspace seleccionado' },
|
|
9
|
+
{ id: 'github', label: 'GitHub', purpose: 'Repositorios, issues y pull requests', transport: 'stdio', activation: 'oauth-opt-in', privacy: 'Requiere token u OAuth del usuario' },
|
|
10
|
+
{ id: 'gmail', label: 'Gmail', purpose: 'Correo y búsqueda de mensajes', transport: 'connector', activation: 'oauth-opt-in', privacy: 'Requiere OAuth explícito del usuario' },
|
|
11
|
+
{ id: 'notion', label: 'Notion', purpose: 'Páginas y bases de datos', transport: 'connector', activation: 'oauth-opt-in', privacy: 'Requiere integración autorizada' },
|
|
12
|
+
];
|
package/dist/index.js
CHANGED
|
@@ -70,7 +70,7 @@ const program = new commander_1.Command();
|
|
|
70
70
|
program
|
|
71
71
|
.name('helix')
|
|
72
72
|
.description('HELIX - Interactive Terminal CLI for Windows AI Desktop Agent')
|
|
73
|
-
.version('0.2.
|
|
73
|
+
.version('0.2.9')
|
|
74
74
|
.option('-u, --ws-url <url>', 'URL del servidor WebSocket del agente', (0, env_1.getWsUrl)())
|
|
75
75
|
.option('-t, --token <token>', 'Token de autenticación WebSocket de HELIX', (0, env_1.getWsToken)())
|
|
76
76
|
.option('--plain', 'Desactivar formato enriquecido de Markdown y mostrar texto plano sin asteriscos')
|
package/dist/ui/autocomplete.js
CHANGED
|
@@ -10,7 +10,7 @@ const user_skill_discovery_1 = require("../skills/user-skill-discovery");
|
|
|
10
10
|
exports.SLASH_COMMANDS = [
|
|
11
11
|
{ command: '/create-skill', description: 'Crear una nueva skill interactiva para HELIX' },
|
|
12
12
|
{ command: '/skill', description: 'Listar o inspeccionar skills registradas', usage: '/skill [nombre]' },
|
|
13
|
-
{ command: '/mcp', description: 'Listar servidores MCP y sus herramientas' },
|
|
13
|
+
{ command: '/mcp', description: 'Listar servidores MCP y sus herramientas', usage: '/mcp [defaults]' },
|
|
14
14
|
{ command: '/create-mcp', description: 'Registrar y configurar un nuevo servidor MCP' },
|
|
15
15
|
{ command: '/browser', description: 'Ver estado del navegador web o abrir URLs', usage: '/browser [open <url>]' },
|
|
16
16
|
{ command: '/config-apikey', description: 'Configurador interactivo de API Keys (OpenAI, Anthropic, Gemini, etc.)' },
|
package/dist/ui/repl.js
CHANGED
|
@@ -317,7 +317,10 @@ class HelixRepl {
|
|
|
317
317
|
}
|
|
318
318
|
break;
|
|
319
319
|
case '/mcp':
|
|
320
|
-
|
|
320
|
+
if (args?.trim().toLowerCase() === 'defaults')
|
|
321
|
+
(0, mcp_1.handleMcpDefaults)();
|
|
322
|
+
else
|
|
323
|
+
await (0, mcp_1.handleListMcp)(this.client);
|
|
321
324
|
break;
|
|
322
325
|
case '/create-mcp':
|
|
323
326
|
this.rl?.pause();
|
package/package.json
CHANGED
package/src/commands/mcp.ts
CHANGED
|
@@ -3,6 +3,16 @@ import chalk from 'chalk';
|
|
|
3
3
|
import type { AgentClient } from '../client/agent-client';
|
|
4
4
|
import type { McpServerConfig } from '../client/types';
|
|
5
5
|
import { formatMcp, CYAN_BOLD, GREEN, RED, YELLOW, GRAY, BOLD, DIM } from '../ui/colors';
|
|
6
|
+
import { MCP_DEFAULTS } from '../config/mcp-defaults';
|
|
7
|
+
|
|
8
|
+
export function handleMcpDefaults(): void {
|
|
9
|
+
console.log(`\n${BOLD('📦 MCPs recomendados (catálogo, no activados automáticamente):')}\n`);
|
|
10
|
+
for (const item of MCP_DEFAULTS) {
|
|
11
|
+
console.log(` ${CYAN_BOLD('◈')} ${formatMcp(item.id)} — ${item.label}`);
|
|
12
|
+
console.log(` ${DIM(item.purpose)} | ${item.activation} | ${item.privacy}`);
|
|
13
|
+
}
|
|
14
|
+
console.log(DIM('\nActiva cada MCP individualmente con consentimiento y alcance explícito.\n'));
|
|
15
|
+
}
|
|
6
16
|
|
|
7
17
|
export async function handleListMcp(client: AgentClient): Promise<void> {
|
|
8
18
|
console.log(`\n${BOLD('🔌 Servidores y Herramientas MCP:')}\n`);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface McpDefaultDefinition {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
purpose: string;
|
|
5
|
+
transport: 'stdio' | 'connector';
|
|
6
|
+
activation: 'local-opt-in' | 'oauth-opt-in';
|
|
7
|
+
privacy: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** Catalog only: entries are never enabled or installed automatically. */
|
|
11
|
+
export const MCP_DEFAULTS: McpDefaultDefinition[] = [
|
|
12
|
+
{ id: 'filesystem', label: 'Archivos locales', purpose: 'Carpeta elegida por el usuario', transport: 'stdio', activation: 'local-opt-in', privacy: 'Solo rutas autorizadas' },
|
|
13
|
+
{ id: 'obsidian', label: 'Obsidian / Helix Vault', purpose: 'Leer y gestionar una bóveda concreta', transport: 'stdio', activation: 'local-opt-in', privacy: 'Solo la bóveda seleccionada' },
|
|
14
|
+
{ id: 'vscode', label: 'VS Code', purpose: 'Trabajar con el workspace seleccionado', transport: 'stdio', activation: 'local-opt-in', privacy: 'Solo el workspace seleccionado' },
|
|
15
|
+
{ id: 'github', label: 'GitHub', purpose: 'Repositorios, issues y pull requests', transport: 'stdio', activation: 'oauth-opt-in', privacy: 'Requiere token u OAuth del usuario' },
|
|
16
|
+
{ id: 'gmail', label: 'Gmail', purpose: 'Correo y búsqueda de mensajes', transport: 'connector', activation: 'oauth-opt-in', privacy: 'Requiere OAuth explícito del usuario' },
|
|
17
|
+
{ id: 'notion', label: 'Notion', purpose: 'Páginas y bases de datos', transport: 'connector', activation: 'oauth-opt-in', privacy: 'Requiere integración autorizada' },
|
|
18
|
+
];
|
package/src/index.ts
CHANGED
|
@@ -73,7 +73,7 @@ const program = new Command();
|
|
|
73
73
|
program
|
|
74
74
|
.name('helix')
|
|
75
75
|
.description('HELIX - Interactive Terminal CLI for Windows AI Desktop Agent')
|
|
76
|
-
.version('0.2.
|
|
76
|
+
.version('0.2.9')
|
|
77
77
|
.option('-u, --ws-url <url>', 'URL del servidor WebSocket del agente', getWsUrl())
|
|
78
78
|
.option('-t, --token <token>', 'Token de autenticación WebSocket de HELIX', getWsToken())
|
|
79
79
|
.option('--plain', 'Desactivar formato enriquecido de Markdown y mostrar texto plano sin asteriscos')
|
package/src/ui/autocomplete.ts
CHANGED
|
@@ -12,7 +12,7 @@ export interface CommandDefinition {
|
|
|
12
12
|
export const SLASH_COMMANDS: CommandDefinition[] = [
|
|
13
13
|
{ command: '/create-skill', description: 'Crear una nueva skill interactiva para HELIX' },
|
|
14
14
|
{ command: '/skill', description: 'Listar o inspeccionar skills registradas', usage: '/skill [nombre]' },
|
|
15
|
-
{ command: '/mcp', description: 'Listar servidores MCP y sus herramientas' },
|
|
15
|
+
{ command: '/mcp', description: 'Listar servidores MCP y sus herramientas', usage: '/mcp [defaults]' },
|
|
16
16
|
{ command: '/create-mcp', description: 'Registrar y configurar un nuevo servidor MCP' },
|
|
17
17
|
{ command: '/browser', description: 'Ver estado del navegador web o abrir URLs', usage: '/browser [open <url>]' },
|
|
18
18
|
{ command: '/config-apikey', description: 'Configurador interactivo de API Keys (OpenAI, Anthropic, Gemini, etc.)' },
|
package/src/ui/repl.ts
CHANGED
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
} from './colors';
|
|
22
22
|
import { handleConfigApiKey, handleShowApiKey } from '../commands/apikey';
|
|
23
23
|
import { handleCreateSkill, handleListSkills } from '../commands/skills';
|
|
24
|
-
import { handleCreateMcp, handleListMcp } from '../commands/mcp';
|
|
24
|
+
import { handleCreateMcp, handleListMcp, handleMcpDefaults } from '../commands/mcp';
|
|
25
25
|
import { handleMicrophoneCommand } from '../commands/mic';
|
|
26
26
|
import { handleBrowserCommand } from '../commands/browser';
|
|
27
27
|
import type { ConfirmationRequest } from '../client/types';
|
|
@@ -360,7 +360,8 @@ export class HelixRepl {
|
|
|
360
360
|
break;
|
|
361
361
|
|
|
362
362
|
case '/mcp':
|
|
363
|
-
|
|
363
|
+
if (args?.trim().toLowerCase() === 'defaults') handleMcpDefaults();
|
|
364
|
+
else await handleListMcp(this.client);
|
|
364
365
|
break;
|
|
365
366
|
|
|
366
367
|
case '/create-mcp':
|