helix-assistant-cli 0.2.8 → 0.2.10

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.
@@ -1,3 +1,4 @@
1
1
  import type { AgentClient } from '../client/agent-client';
2
+ export declare function handleMcpDefaults(): void;
2
3
  export declare function handleListMcp(client: AgentClient): Promise<void>;
3
4
  export declare function handleCreateMcp(client: AgentClient): Promise<void>;
@@ -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.7')
73
+ .version('0.2.10')
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')
@@ -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
- await (0, mcp_1.handleListMcp)(this.client);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "helix-assistant-cli",
3
- "version": "0.2.8",
3
+ "version": "0.2.10",
4
4
  "description": "HELIX - Interactive Terminal CLI for Windows AI Desktop Agent",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -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.7')
76
+ .version('0.2.10')
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')
@@ -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
- await handleListMcp(this.client);
363
+ if (args?.trim().toLowerCase() === 'defaults') handleMcpDefaults();
364
+ else await handleListMcp(this.client);
364
365
  break;
365
366
 
366
367
  case '/create-mcp':