From 5cb66fafac12c0366f67fdf7e5b682312b332859 Mon Sep 17 00:00:00 2001 From: Ismail Pelaseyed Date: Fri, 26 Sep 2025 14:44:08 +0200 Subject: [PATCH] fix issue with building for bun and npm (#87) --- package.json | 2 +- src/agent/grok-agent.ts | 16 ++++++++-------- src/agent/index.ts | 4 ++-- src/commands/mcp.ts | 6 +++--- src/grok/tools.ts | 6 +++--- src/hooks/use-enhanced-input.ts | 4 ++-- src/hooks/use-input-handler.ts | 10 +++++----- src/index.ts | 10 +++++----- src/mcp/config.ts | 4 ++-- src/tools/bash.ts | 4 ++-- src/tools/confirmation-tool.ts | 4 ++-- src/tools/index.ts | 12 ++++++------ src/tools/morph-editor.ts | 4 ++-- src/tools/search.ts | 4 ++-- src/tools/text-editor.ts | 4 ++-- src/tools/todo-tool.ts | 2 +- src/ui/app.tsx | 8 ++++---- src/ui/components/api-key-input.tsx | 4 ++-- src/ui/components/chat-history.tsx | 6 +++--- src/ui/components/chat-interface.tsx | 22 +++++++++++----------- src/ui/components/confirmation-dialog.tsx | 2 +- src/ui/components/diff-renderer.tsx | 6 +++--- src/ui/components/loading-spinner.tsx | 2 +- src/ui/components/mcp-status.tsx | 4 ++-- src/utils/model-config.ts | 2 +- src/utils/settings.ts | 4 ++-- 26 files changed, 78 insertions(+), 78 deletions(-) diff --git a/package.json b/package.json index 4f16f1a..2f2c239 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@vibe-kit/grok-cli", - "version": "0.0.29", + "version": "0.0.30", "description": "An open-source AI agent that brings the power of Grok directly into your terminal.", "type": "module", "main": "dist/index.js", diff --git a/src/agent/grok-agent.ts b/src/agent/grok-agent.ts index bf6a983..716cc1e 100644 --- a/src/agent/grok-agent.ts +++ b/src/agent/grok-agent.ts @@ -1,12 +1,12 @@ -import { GrokClient, GrokMessage, GrokToolCall } from "../grok/client"; +import { GrokClient, GrokMessage, GrokToolCall } from "../grok/client.js"; import { GROK_TOOLS, addMCPToolsToGrokTools, getAllGrokTools, getMCPManager, initializeMCPServers, -} from "../grok/tools"; -import { loadMCPConfig } from "../mcp/config"; +} from "../grok/tools.js"; +import { loadMCPConfig } from "../mcp/config.js"; import { TextEditorTool, MorphEditorTool, @@ -14,12 +14,12 @@ import { TodoTool, ConfirmationTool, SearchTool, -} from "../tools"; -import { ToolResult } from "../types"; +} from "../tools/index.js"; +import { ToolResult } from "../types/index.js"; import { EventEmitter } from "events"; -import { createTokenCounter, TokenCounter } from "../utils/token-counter"; -import { loadCustomInstructions } from "../utils/custom-instructions"; -import { getSettingsManager } from "../utils/settings-manager"; +import { createTokenCounter, TokenCounter } from "../utils/token-counter.js"; +import { loadCustomInstructions } from "../utils/custom-instructions.js"; +import { getSettingsManager } from "../utils/settings-manager.js"; export interface ChatEntry { type: "user" | "assistant" | "tool_result" | "tool_call"; diff --git a/src/agent/index.ts b/src/agent/index.ts index b1182b4..8b20d61 100644 --- a/src/agent/index.ts +++ b/src/agent/index.ts @@ -1,5 +1,5 @@ -import { TextEditorTool, BashTool } from '../tools'; -import { ToolResult, AgentState } from '../types'; +import { TextEditorTool, BashTool } from '../tools/index.js'; +import { ToolResult, AgentState } from '../types/index.js'; export class Agent { private textEditor: TextEditorTool; diff --git a/src/commands/mcp.ts b/src/commands/mcp.ts index c341efc..ffb4438 100644 --- a/src/commands/mcp.ts +++ b/src/commands/mcp.ts @@ -1,7 +1,7 @@ import { Command } from 'commander'; -import { addMCPServer, removeMCPServer, loadMCPConfig, PREDEFINED_SERVERS } from '../mcp/config'; -import { getMCPManager } from '../grok/tools'; -import { MCPServerConfig } from '../mcp/client'; +import { addMCPServer, removeMCPServer, loadMCPConfig, PREDEFINED_SERVERS } from '../mcp/config.js'; +import { getMCPManager } from '../grok/tools.js'; +import { MCPServerConfig } from '../mcp/client.js'; import chalk from 'chalk'; export function createMCPCommand(): Command { diff --git a/src/grok/tools.ts b/src/grok/tools.ts index 2b9a6e4..a050bca 100644 --- a/src/grok/tools.ts +++ b/src/grok/tools.ts @@ -1,6 +1,6 @@ -import { GrokTool } from "./client"; -import { MCPManager, MCPTool } from "../mcp/client"; -import { loadMCPConfig } from "../mcp/config"; +import { GrokTool } from "./client.js"; +import { MCPManager, MCPTool } from "../mcp/client.js"; +import { loadMCPConfig } from "../mcp/config.js"; const BASE_GROK_TOOLS: GrokTool[] = [ { diff --git a/src/hooks/use-enhanced-input.ts b/src/hooks/use-enhanced-input.ts index 299f27d..0184039 100644 --- a/src/hooks/use-enhanced-input.ts +++ b/src/hooks/use-enhanced-input.ts @@ -9,8 +9,8 @@ import { moveToLineEnd, moveToPreviousWord, moveToNextWord, -} from "../utils/text-utils"; -import { useInputHistory } from "./use-input-history"; +} from "../utils/text-utils.js"; +import { useInputHistory } from "./use-input-history.js"; export interface Key { name?: string; diff --git a/src/hooks/use-input-handler.ts b/src/hooks/use-input-handler.ts index 847d137..6feaf5f 100644 --- a/src/hooks/use-input-handler.ts +++ b/src/hooks/use-input-handler.ts @@ -1,11 +1,11 @@ import { useState, useMemo, useEffect } from "react"; import { useInput } from "ink"; -import { GrokAgent, ChatEntry } from "../agent/grok-agent"; -import { ConfirmationService } from "../utils/confirmation-service"; -import { useEnhancedInput, Key } from "./use-enhanced-input"; +import { GrokAgent, ChatEntry } from "../agent/grok-agent.js"; +import { ConfirmationService } from "../utils/confirmation-service.js"; +import { useEnhancedInput, Key } from "./use-enhanced-input.js"; -import { filterCommandSuggestions } from "../ui/components/command-suggestions"; -import { loadModelConfig, updateCurrentModel } from "../utils/model-config"; +import { filterCommandSuggestions } from "../ui/components/command-suggestions.js"; +import { loadModelConfig, updateCurrentModel } from "../utils/model-config.js"; interface UseInputHandlerProps { agent: GrokAgent; diff --git a/src/index.ts b/src/index.ts index 277537c..5c9ae17 100755 --- a/src/index.ts +++ b/src/index.ts @@ -4,11 +4,11 @@ import React from "react"; import { render } from "ink"; import { program } from "commander"; import * as dotenv from "dotenv"; -import { GrokAgent } from "./agent/grok-agent"; -import ChatInterface from "./ui/components/chat-interface"; -import { getSettingsManager } from "./utils/settings-manager"; -import { ConfirmationService } from "./utils/confirmation-service"; -import { createMCPCommand } from "./commands/mcp"; +import { GrokAgent } from "./agent/grok-agent.js"; +import ChatInterface from "./ui/components/chat-interface.js"; +import { getSettingsManager } from "./utils/settings-manager.js"; +import { ConfirmationService } from "./utils/confirmation-service.js"; +import { createMCPCommand } from "./commands/mcp.js"; import type { ChatCompletionMessageParam } from "openai/resources/chat"; // Load environment variables diff --git a/src/mcp/config.ts b/src/mcp/config.ts index 3633feb..3e319a8 100644 --- a/src/mcp/config.ts +++ b/src/mcp/config.ts @@ -1,5 +1,5 @@ -import { getSettingsManager } from "../utils/settings-manager"; -import { MCPServerConfig } from "./client"; +import { getSettingsManager } from "../utils/settings-manager.js"; +import { MCPServerConfig } from "./client.js"; export interface MCPConfig { servers: MCPServerConfig[]; diff --git a/src/tools/bash.ts b/src/tools/bash.ts index a780a72..5ff180a 100644 --- a/src/tools/bash.ts +++ b/src/tools/bash.ts @@ -1,7 +1,7 @@ import { exec } from 'child_process'; import { promisify } from 'util'; -import { ToolResult } from '../types'; -import { ConfirmationService } from '../utils/confirmation-service'; +import { ToolResult } from '../types/index.js'; +import { ConfirmationService } from '../utils/confirmation-service.js'; const execAsync = promisify(exec); diff --git a/src/tools/confirmation-tool.ts b/src/tools/confirmation-tool.ts index 1aea91c..8039a35 100644 --- a/src/tools/confirmation-tool.ts +++ b/src/tools/confirmation-tool.ts @@ -1,5 +1,5 @@ -import { ToolResult } from '../types'; -import { ConfirmationService, ConfirmationOptions } from '../utils/confirmation-service'; +import { ToolResult } from '../types/index.js'; +import { ConfirmationService, ConfirmationOptions } from '../utils/confirmation-service.js'; export interface ConfirmationRequest { operation: string; diff --git a/src/tools/index.ts b/src/tools/index.ts index 50084f4..5401ef6 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -1,6 +1,6 @@ -export { BashTool } from "./bash"; -export { TextEditorTool } from "./text-editor"; -export { MorphEditorTool } from "./morph-editor"; -export { TodoTool } from "./todo-tool"; -export { ConfirmationTool } from "./confirmation-tool"; -export { SearchTool } from "./search"; +export { BashTool } from "./bash.js"; +export { TextEditorTool } from "./text-editor.js"; +export { MorphEditorTool } from "./morph-editor.js"; +export { TodoTool } from "./todo-tool.js"; +export { ConfirmationTool } from "./confirmation-tool.js"; +export { SearchTool } from "./search.js"; diff --git a/src/tools/morph-editor.ts b/src/tools/morph-editor.ts index e84201c..e6585e6 100644 --- a/src/tools/morph-editor.ts +++ b/src/tools/morph-editor.ts @@ -1,8 +1,8 @@ import * as fs from "fs-extra"; import * as path from "path"; import axios from "axios"; -import { ToolResult } from "../types"; -import { ConfirmationService } from "../utils/confirmation-service"; +import { ToolResult } from "../types/index.js"; +import { ConfirmationService } from "../utils/confirmation-service.js"; export class MorphEditorTool { private confirmationService = ConfirmationService.getInstance(); diff --git a/src/tools/search.ts b/src/tools/search.ts index be76806..a125fac 100644 --- a/src/tools/search.ts +++ b/src/tools/search.ts @@ -1,6 +1,6 @@ import { spawn } from "child_process"; -import { ToolResult } from "../types"; -import { ConfirmationService } from "../utils/confirmation-service"; +import { ToolResult } from "../types/index.js"; +import { ConfirmationService } from "../utils/confirmation-service.js"; import * as fs from "fs-extra"; import * as path from "path"; diff --git a/src/tools/text-editor.ts b/src/tools/text-editor.ts index df57e49..43e53e4 100644 --- a/src/tools/text-editor.ts +++ b/src/tools/text-editor.ts @@ -1,7 +1,7 @@ import * as fs from "fs-extra"; import * as path from "path"; -import { ToolResult, EditorCommand } from "../types"; -import { ConfirmationService } from "../utils/confirmation-service"; +import { ToolResult, EditorCommand } from "../types/index.js"; +import { ConfirmationService } from "../utils/confirmation-service.js"; export class TextEditorTool { private editHistory: EditorCommand[] = []; diff --git a/src/tools/todo-tool.ts b/src/tools/todo-tool.ts index d54b040..4895630 100644 --- a/src/tools/todo-tool.ts +++ b/src/tools/todo-tool.ts @@ -1,4 +1,4 @@ -import { ToolResult } from '../types'; +import { ToolResult } from '../types/index.js'; interface TodoItem { id: string; diff --git a/src/ui/app.tsx b/src/ui/app.tsx index 61310ad..e595a5c 100644 --- a/src/ui/app.tsx +++ b/src/ui/app.tsx @@ -1,9 +1,9 @@ import React, { useState, useEffect } from 'react'; import { Box, Text, useInput } from 'ink'; -import { Agent } from '../agent'; -import { ToolResult } from '../types'; -import { ConfirmationService, ConfirmationOptions } from '../utils/confirmation-service'; -import ConfirmationDialog from './components/confirmation-dialog'; +import { Agent } from '../agent/index.js'; +import { ToolResult } from '../types/index.js'; +import { ConfirmationService, ConfirmationOptions } from '../utils/confirmation-service.js'; +import ConfirmationDialog from './components/confirmation-dialog.js'; import chalk from 'chalk'; interface Props { diff --git a/src/ui/components/api-key-input.tsx b/src/ui/components/api-key-input.tsx index 19376cd..ab4d881 100644 --- a/src/ui/components/api-key-input.tsx +++ b/src/ui/components/api-key-input.tsx @@ -1,7 +1,7 @@ import React, { useState } from "react"; import { Box, Text, useInput, useApp } from "ink"; -import { GrokAgent } from "../../agent/grok-agent"; -import { getSettingsManager } from "../../utils/settings-manager"; +import { GrokAgent } from "../../agent/grok-agent.js"; +import { getSettingsManager } from "../../utils/settings-manager.js"; interface ApiKeyInputProps { onApiKeySet: (agent: GrokAgent) => void; diff --git a/src/ui/components/chat-history.tsx b/src/ui/components/chat-history.tsx index 9119f11..7bd225a 100644 --- a/src/ui/components/chat-history.tsx +++ b/src/ui/components/chat-history.tsx @@ -1,8 +1,8 @@ import React from "react"; import { Box, Text } from "ink"; -import { ChatEntry } from "../../agent/grok-agent"; -import { DiffRenderer } from "./diff-renderer"; -import { MarkdownRenderer } from "../utils/markdown-renderer"; +import { ChatEntry } from "../../agent/grok-agent.js"; +import { DiffRenderer } from "./diff-renderer.js"; +import { MarkdownRenderer } from "../utils/markdown-renderer.js"; interface ChatHistoryProps { entries: ChatEntry[]; diff --git a/src/ui/components/chat-interface.tsx b/src/ui/components/chat-interface.tsx index abf841d..fd4f9b1 100644 --- a/src/ui/components/chat-interface.tsx +++ b/src/ui/components/chat-interface.tsx @@ -1,19 +1,19 @@ import React, { useState, useEffect, useRef } from "react"; import { Box, Text } from "ink"; -import { GrokAgent, ChatEntry } from "../../agent/grok-agent"; -import { useInputHandler } from "../../hooks/use-input-handler"; -import { LoadingSpinner } from "./loading-spinner"; -import { CommandSuggestions } from "./command-suggestions"; -import { ModelSelection } from "./model-selection"; -import { ChatHistory } from "./chat-history"; -import { ChatInput } from "./chat-input"; -import { MCPStatus } from "./mcp-status"; -import ConfirmationDialog from "./confirmation-dialog"; +import { GrokAgent, ChatEntry } from "../../agent/grok-agent.js"; +import { useInputHandler } from "../../hooks/use-input-handler.js"; +import { LoadingSpinner } from "./loading-spinner.js"; +import { CommandSuggestions } from "./command-suggestions.js"; +import { ModelSelection } from "./model-selection.js"; +import { ChatHistory } from "./chat-history.js"; +import { ChatInput } from "./chat-input.js"; +import { MCPStatus } from "./mcp-status.js"; +import ConfirmationDialog from "./confirmation-dialog.js"; import { ConfirmationService, ConfirmationOptions, -} from "../../utils/confirmation-service"; -import ApiKeyInput from "./api-key-input"; +} from "../../utils/confirmation-service.js"; +import ApiKeyInput from "./api-key-input.js"; import cfonts from "cfonts"; interface ChatInterfaceProps { diff --git a/src/ui/components/confirmation-dialog.tsx b/src/ui/components/confirmation-dialog.tsx index d9664d2..65ee1a3 100644 --- a/src/ui/components/confirmation-dialog.tsx +++ b/src/ui/components/confirmation-dialog.tsx @@ -1,6 +1,6 @@ import React, { useState } from "react"; import { Box, Text, useInput } from "ink"; -import { DiffRenderer } from "./diff-renderer"; +import { DiffRenderer } from "./diff-renderer.js"; interface ConfirmationDialogProps { operation: string; diff --git a/src/ui/components/diff-renderer.tsx b/src/ui/components/diff-renderer.tsx index 7eb4ccc..79556d5 100644 --- a/src/ui/components/diff-renderer.tsx +++ b/src/ui/components/diff-renderer.tsx @@ -4,10 +4,10 @@ import React from 'react'; import { Box, Text } from 'ink'; -import { Colors } from '../utils/colors'; +import { Colors } from '../utils/colors.js'; import crypto from 'crypto'; -import { colorizeCode } from '../utils/code-colorizer'; -import { MaxSizedBox } from '../shared/max-sized-box'; +import { colorizeCode } from '../utils/code-colorizer.js'; +import { MaxSizedBox } from '../shared/max-sized-box.js'; interface DiffLine { type: 'add' | 'del' | 'context' | 'hunk' | 'other'; diff --git a/src/ui/components/loading-spinner.tsx b/src/ui/components/loading-spinner.tsx index 9b34151..ffe04aa 100644 --- a/src/ui/components/loading-spinner.tsx +++ b/src/ui/components/loading-spinner.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect } from "react"; import { Box, Text } from "ink"; -import { formatTokenCount } from "../../utils/token-counter"; +import { formatTokenCount } from "../../utils/token-counter.js"; interface LoadingSpinnerProps { isActive: boolean; diff --git a/src/ui/components/mcp-status.tsx b/src/ui/components/mcp-status.tsx index 5b30eaf..f2f247b 100644 --- a/src/ui/components/mcp-status.tsx +++ b/src/ui/components/mcp-status.tsx @@ -1,7 +1,7 @@ import React, { useState, useEffect } from "react"; import { Box, Text } from "ink"; -import { getMCPManager } from "../../grok/tools"; -import { MCPTool } from "../../mcp/client"; +import { getMCPManager } from "../../grok/tools.js"; +import { MCPTool } from "../../mcp/client.js"; interface MCPStatusProps {} diff --git a/src/utils/model-config.ts b/src/utils/model-config.ts index c08ab87..459198b 100644 --- a/src/utils/model-config.ts +++ b/src/utils/model-config.ts @@ -1,4 +1,4 @@ -import { getSettingsManager, UserSettings, ProjectSettings } from './settings-manager'; +import { getSettingsManager, UserSettings, ProjectSettings } from './settings-manager.js'; export interface ModelOption { model: string; diff --git a/src/utils/settings.ts b/src/utils/settings.ts index 88cff05..392ec25 100644 --- a/src/utils/settings.ts +++ b/src/utils/settings.ts @@ -1,4 +1,4 @@ // This file is kept for potential future convenience functions -// All settings management should use getSettingsManager() from './settings-manager' +// All settings management should use getSettingsManager() from './settings-manager.js' -export { getSettingsManager, UserSettings, ProjectSettings } from './settings-manager'; +export { getSettingsManager, UserSettings, ProjectSettings } from './settings-manager.js';