UNPKG

@posthog/wizard

Version:

The PostHog wizard helps you to configure your project

77 lines 3.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CodexMCPClient = exports.CodexMCPConfig = void 0; const node_child_process_1 = require("node:child_process"); const MCPClient_1 = require("../MCPClient"); const defaults_1 = require("../defaults"); const analytics_1 = require("../../../utils/analytics"); exports.CodexMCPConfig = defaults_1.DefaultMCPClientConfig; class CodexMCPClient extends MCPClient_1.DefaultMCPClient { name = 'Codex CLI'; constructor() { super(); } isClientSupported() { try { (0, node_child_process_1.execSync)('codex --version', { stdio: 'ignore' }); return Promise.resolve(true); } catch { return Promise.resolve(false); } } getConfigPath() { throw new Error('Not implemented'); } isServerInstalled(local) { const serverName = local ? 'posthog-local' : 'posthog'; try { const result = (0, node_child_process_1.spawnSync)('codex', ['mcp', 'list', '--json'], { encoding: 'utf-8', }); if (result.error || result.status !== 0) { return Promise.resolve(false); } const stdout = result.stdout?.trim(); if (!stdout) { return Promise.resolve(false); } const servers = JSON.parse(stdout); return Promise.resolve(servers.some((server) => server.name === serverName)); } catch { return Promise.resolve(false); } } addServer(apiKey, selectedFeatures, local, region) { const config = (0, defaults_1.getDefaultServerConfig)(apiKey, 'sse', selectedFeatures, local, region); const serverName = local ? 'posthog-local' : 'posthog'; const args = ['mcp', 'add', serverName]; if (config.env) { for (const [key, value] of Object.entries(config.env)) { args.push('--env', `${key}=${value}`); } } args.push('--', config.command, ...(config.args ?? [])); const result = (0, node_child_process_1.spawnSync)('codex', args, { stdio: 'ignore' }); if (result.error || result.status !== 0) { analytics_1.analytics.captureException(new Error('Failed to add server to Codex CLI.')); return Promise.resolve({ success: false }); } return Promise.resolve({ success: true }); } removeServer(local) { const serverName = local ? 'posthog-local' : 'posthog'; const result = (0, node_child_process_1.spawnSync)('codex', ['mcp', 'remove', serverName], { stdio: 'ignore', }); if (result.error || result.status !== 0) { analytics_1.analytics.captureException(new Error('Failed to remove server from Codex CLI.')); return Promise.resolve({ success: false }); } return Promise.resolve({ success: true }); } } exports.CodexMCPClient = CodexMCPClient; exports.default = CodexMCPClient; //# sourceMappingURL=codex.js.map