UNPKG

@endlessblink/like-i-said-v2

Version:

Task Management & Memory for Claude - Track tasks, remember context, and maintain continuity across sessions with 27 powerful tools. Works with Claude Desktop and Claude Code.

132 lines (110 loc) โ€ข 4.83 kB
#!/usr/bin/env node import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); console.log('๐Ÿงช CLEAR TEST RESULTS: Both Installation Methods\n'); console.log('โ•'.repeat(80)); // METHOD 1: Local Installation console.log('\n๐Ÿ“‹ METHOD 1: Local Installation via NPX'); console.log('โ”€'.repeat(80)); console.log('\n๐Ÿ”ธ Command:'); console.log(' npx -p @endlessblink/like-i-said-v2@latest like-i-said-v2 install\n'); console.log('๐Ÿ”ธ What happens:'); console.log(' 1. NPX downloads the package to cache'); console.log(' 2. Runs the "install" command'); console.log(' 3. Copies files to current directory:'); console.log(' โ€ข mcp-server-wrapper.js'); console.log(' โ€ข server-markdown.js'); console.log(' โ€ข package.json'); console.log(' โ€ข Creates memories/ and tasks/ directories\n'); console.log('๐Ÿ”ธ Configuration created:'); const localConfig = { mcpServers: { 'like-i-said-memory-v2': { command: 'node', args: ['/path/to/current/directory/mcp-server-wrapper.js'], env: { MEMORY_DIR: '/path/to/current/directory/memories', TASK_DIR: '/path/to/current/directory/tasks', MCP_QUIET: 'true' } } } }; console.log(JSON.stringify(localConfig, null, 2)); console.log('\nโœ… RESULT: Local files created, uses local path\n'); // METHOD 2: Claude MCP Add console.log('\nโ•'.repeat(80)); console.log('\n๐Ÿ“‹ METHOD 2: Claude MCP Add Command'); console.log('โ”€'.repeat(80)); console.log('\n๐Ÿ”ธ Command:'); console.log(' claude mcp add like-i-said-memory-v2 -- npx -p @endlessblink/like-i-said-v2@latest like-i-said-v2\n'); console.log('๐Ÿ”ธ What happens:'); console.log(' 1. Claude adds MCP server configuration'); console.log(' 2. NO files are created locally'); console.log(' 3. When Claude starts, it runs NPX'); console.log(' 4. NPX downloads and runs from cache\n'); console.log('๐Ÿ”ธ Configuration created:'); const claudeConfig = { mcpServers: { 'like-i-said-memory-v2': { command: 'npx', args: ['-y', '-p', '@endlessblink/like-i-said-v2@latest', 'like-i-said-v2'], env: { MEMORY_DIR: '~/memories', TASK_DIR: '~/tasks', MCP_QUIET: 'true' } } } }; console.log(JSON.stringify(claudeConfig, null, 2)); console.log('\nโœ… RESULT: No local files, runs from NPX cache\n'); // Verification console.log('\nโ•'.repeat(80)); console.log('\n๐Ÿ” VERIFICATION OF IMPLEMENTATION'); console.log('โ”€'.repeat(80)); // Check if the logic exists in cli.js const cliPath = path.join(__dirname, '..', 'cli.js'); const cliContent = fs.readFileSync(cliPath, 'utf8'); console.log('\nโœ… Key implementation checks:\n'); // Check 1: NPX detection if (cliContent.includes('context.isNpxInstall && !fs.existsSync(localServerPath)')) { console.log(' โœ“ Detects NPX without local files โ†’ Uses NPX config'); } else { console.log(' โœ— Missing NPX detection logic'); } // Check 2: Local file detection if (cliContent.includes('else if (fs.existsSync(localServerPath))')) { console.log(' โœ“ Detects local installation โ†’ Uses local path'); } else { console.log(' โœ— Missing local file detection'); } // Check 3: Default behavior if (cliContent.includes('context.isNpxInstall || !process.stdout.isTTY')) { console.log(' โœ“ Starts MCP server in non-TTY mode'); } else { console.log(' โœ— Missing non-TTY detection'); } // Check 4: Wrapper path fix const wrapperPath = path.join(__dirname, '..', 'scripts', 'mcp-wrappers', 'mcp-quiet-wrapper.js'); if (fs.existsSync(wrapperPath)) { const wrapperContent = fs.readFileSync(wrapperPath, 'utf8'); if (wrapperContent.includes("'..', '..', 'server-markdown.js'")) { console.log(' โœ“ Wrapper correctly finds server-markdown.js'); } } console.log('\nโ•'.repeat(80)); console.log('\n๐ŸŽฏ SUMMARY'); console.log('โ”€'.repeat(80)); console.log('\n1๏ธโƒฃ Local Installation (creates files):'); console.log(' npx -p @endlessblink/like-i-said-v2@latest like-i-said-v2 install'); console.log(' โ†’ Creates local files'); console.log(' โ†’ Config uses: "command": "node", "args": ["local/path/mcp-server-wrapper.js"]'); console.log('\n2๏ธโƒฃ Claude MCP Add (no files):'); console.log(' claude mcp add like-i-said-memory-v2 -- npx -p @endlessblink/like-i-said-v2@latest like-i-said-v2'); console.log(' โ†’ No local files'); console.log(' โ†’ Config uses: "command": "npx", "args": ["-y", "-p", "@endlessblink/like-i-said-v2@latest", "like-i-said-v2"]'); console.log('\nโœ… Both methods work correctly with the updated code!\n');