@nanocollective/nanocoder 1.22.4 → 1.23.0

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.
Files changed (308) hide show
  1. package/README.md +93 -30
  2. package/assets/nanocoder-vscode.vsix +0 -0
  3. package/dist/ai-sdk-client/chat/chat-handler.js +1 -1
  4. package/dist/ai-sdk-client/chat/chat-handler.js.map +1 -1
  5. package/dist/ai-sdk-client/chat/tool-processor.d.ts +1 -1
  6. package/dist/ai-sdk-client/chat/tool-processor.d.ts.map +1 -1
  7. package/dist/ai-sdk-client/chat/tool-processor.js +8 -3
  8. package/dist/ai-sdk-client/chat/tool-processor.js.map +1 -1
  9. package/dist/ai-sdk-client/error-handling/error-parser.d.ts.map +1 -1
  10. package/dist/ai-sdk-client/error-handling/error-parser.js +4 -1
  11. package/dist/ai-sdk-client/error-handling/error-parser.js.map +1 -1
  12. package/dist/app/App.d.ts.map +1 -1
  13. package/dist/app/App.js +106 -11
  14. package/dist/app/App.js.map +1 -1
  15. package/dist/app/components/chat-input.d.ts +6 -1
  16. package/dist/app/components/chat-input.d.ts.map +1 -1
  17. package/dist/app/components/chat-input.js +9 -7
  18. package/dist/app/components/chat-input.js.map +1 -1
  19. package/dist/app/utils/app-util.d.ts +5 -0
  20. package/dist/app/utils/app-util.d.ts.map +1 -1
  21. package/dist/app/utils/app-util.js +265 -0
  22. package/dist/app/utils/app-util.js.map +1 -1
  23. package/dist/client-factory.d.ts.map +1 -1
  24. package/dist/client-factory.js +3 -2
  25. package/dist/client-factory.js.map +1 -1
  26. package/dist/commands/context-max.d.ts +15 -0
  27. package/dist/commands/context-max.d.ts.map +1 -0
  28. package/dist/commands/context-max.js +22 -0
  29. package/dist/commands/context-max.js.map +1 -0
  30. package/dist/commands/custom-commands.d.ts.map +1 -1
  31. package/dist/commands/custom-commands.js +88 -4
  32. package/dist/commands/custom-commands.js.map +1 -1
  33. package/dist/commands/exit.d.ts.map +1 -1
  34. package/dist/commands/exit.js +5 -8
  35. package/dist/commands/exit.js.map +1 -1
  36. package/dist/commands/ide.d.ts +3 -0
  37. package/dist/commands/ide.d.ts.map +1 -0
  38. package/dist/commands/ide.js +10 -0
  39. package/dist/commands/ide.js.map +1 -0
  40. package/dist/commands/index.d.ts +3 -0
  41. package/dist/commands/index.d.ts.map +1 -1
  42. package/dist/commands/index.js +3 -0
  43. package/dist/commands/index.js.map +1 -1
  44. package/dist/commands/schedule.d.ts +3 -0
  45. package/dist/commands/schedule.d.ts.map +1 -0
  46. package/dist/commands/schedule.js +177 -0
  47. package/dist/commands/schedule.js.map +1 -0
  48. package/dist/commands/usage.d.ts.map +1 -1
  49. package/dist/commands/usage.js +4 -3
  50. package/dist/commands/usage.js.map +1 -1
  51. package/dist/components/development-mode-indicator.d.ts +3 -2
  52. package/dist/components/development-mode-indicator.d.ts.map +1 -1
  53. package/dist/components/development-mode-indicator.js +23 -9
  54. package/dist/components/development-mode-indicator.js.map +1 -1
  55. package/dist/components/ide-selector.d.ts +7 -0
  56. package/dist/components/ide-selector.d.ts.map +1 -0
  57. package/dist/components/ide-selector.js +17 -0
  58. package/dist/components/ide-selector.js.map +1 -0
  59. package/dist/components/question-prompt.d.ts +8 -0
  60. package/dist/components/question-prompt.d.ts.map +1 -0
  61. package/dist/components/question-prompt.js +58 -0
  62. package/dist/components/question-prompt.js.map +1 -0
  63. package/dist/components/scheduler-view.d.ts +14 -0
  64. package/dist/components/scheduler-view.d.ts.map +1 -0
  65. package/dist/components/scheduler-view.js +17 -0
  66. package/dist/components/scheduler-view.js.map +1 -0
  67. package/dist/components/text-input.d.ts +13 -0
  68. package/dist/components/text-input.d.ts.map +1 -0
  69. package/dist/components/text-input.js +175 -0
  70. package/dist/components/text-input.js.map +1 -0
  71. package/dist/components/user-input.d.ts +2 -1
  72. package/dist/components/user-input.d.ts.map +1 -1
  73. package/dist/components/user-input.js +8 -15
  74. package/dist/components/user-input.js.map +1 -1
  75. package/dist/config/themes.d.ts.map +1 -1
  76. package/dist/config/themes.js +20 -0
  77. package/dist/config/themes.js.map +1 -1
  78. package/dist/constants.d.ts +2 -0
  79. package/dist/constants.d.ts.map +1 -1
  80. package/dist/constants.js +55 -0
  81. package/dist/constants.js.map +1 -1
  82. package/dist/custom-commands/command-integration.d.ts +24 -0
  83. package/dist/custom-commands/command-integration.d.ts.map +1 -0
  84. package/dist/custom-commands/command-integration.js +68 -0
  85. package/dist/custom-commands/command-integration.js.map +1 -0
  86. package/dist/custom-commands/executor.d.ts.map +1 -1
  87. package/dist/custom-commands/executor.js +12 -2
  88. package/dist/custom-commands/executor.js.map +1 -1
  89. package/dist/custom-commands/loader.d.ts +33 -5
  90. package/dist/custom-commands/loader.d.ts.map +1 -1
  91. package/dist/custom-commands/loader.js +191 -18
  92. package/dist/custom-commands/loader.js.map +1 -1
  93. package/dist/custom-commands/parser.d.ts.map +1 -1
  94. package/dist/custom-commands/parser.js +115 -48
  95. package/dist/custom-commands/parser.js.map +1 -1
  96. package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts +1 -1
  97. package/dist/hooks/chat-handler/conversation/conversation-loop.d.ts.map +1 -1
  98. package/dist/hooks/chat-handler/conversation/conversation-loop.js +37 -5
  99. package/dist/hooks/chat-handler/conversation/conversation-loop.js.map +1 -1
  100. package/dist/hooks/chat-handler/conversation/tool-executor.js +1 -1
  101. package/dist/hooks/chat-handler/conversation/tool-executor.js.map +1 -1
  102. package/dist/hooks/chat-handler/types.d.ts +3 -1
  103. package/dist/hooks/chat-handler/types.d.ts.map +1 -1
  104. package/dist/hooks/chat-handler/useChatHandler.d.ts +1 -1
  105. package/dist/hooks/chat-handler/useChatHandler.d.ts.map +1 -1
  106. package/dist/hooks/chat-handler/useChatHandler.js +13 -5
  107. package/dist/hooks/chat-handler/useChatHandler.js.map +1 -1
  108. package/dist/hooks/useAppHandlers.d.ts +2 -0
  109. package/dist/hooks/useAppHandlers.d.ts.map +1 -1
  110. package/dist/hooks/useAppHandlers.js +5 -0
  111. package/dist/hooks/useAppHandlers.js.map +1 -1
  112. package/dist/hooks/useAppInitialization.d.ts.map +1 -1
  113. package/dist/hooks/useAppInitialization.js +4 -1
  114. package/dist/hooks/useAppInitialization.js.map +1 -1
  115. package/dist/hooks/useAppState.d.ts +15 -0
  116. package/dist/hooks/useAppState.d.ts.map +1 -1
  117. package/dist/hooks/useAppState.js +23 -0
  118. package/dist/hooks/useAppState.js.map +1 -1
  119. package/dist/hooks/useContextPercentage.d.ts +17 -0
  120. package/dist/hooks/useContextPercentage.d.ts.map +1 -0
  121. package/dist/hooks/useContextPercentage.js +71 -0
  122. package/dist/hooks/useContextPercentage.js.map +1 -0
  123. package/dist/hooks/useModeHandlers.d.ts +4 -1
  124. package/dist/hooks/useModeHandlers.d.ts.map +1 -1
  125. package/dist/hooks/useModeHandlers.js +11 -1
  126. package/dist/hooks/useModeHandlers.js.map +1 -1
  127. package/dist/hooks/useNonInteractiveMode.d.ts.map +1 -1
  128. package/dist/hooks/useNonInteractiveMode.js +3 -1
  129. package/dist/hooks/useNonInteractiveMode.js.map +1 -1
  130. package/dist/hooks/useSchedulerMode.d.ts +30 -0
  131. package/dist/hooks/useSchedulerMode.d.ts.map +1 -0
  132. package/dist/hooks/useSchedulerMode.js +99 -0
  133. package/dist/hooks/useSchedulerMode.js.map +1 -0
  134. package/dist/lsp/lsp-manager.d.ts.map +1 -1
  135. package/dist/lsp/lsp-manager.js +10 -0
  136. package/dist/lsp/lsp-manager.js.map +1 -1
  137. package/dist/mcp/mcp-client.d.ts.map +1 -1
  138. package/dist/mcp/mcp-client.js +20 -1
  139. package/dist/mcp/mcp-client.js.map +1 -1
  140. package/dist/models/index.d.ts +1 -1
  141. package/dist/models/index.d.ts.map +1 -1
  142. package/dist/models/index.js +1 -1
  143. package/dist/models/index.js.map +1 -1
  144. package/dist/models/models-dev-client.d.ts +8 -1
  145. package/dist/models/models-dev-client.d.ts.map +1 -1
  146. package/dist/models/models-dev-client.js +116 -88
  147. package/dist/models/models-dev-client.js.map +1 -1
  148. package/dist/schedule/cron.d.ts +14 -0
  149. package/dist/schedule/cron.d.ts.map +1 -0
  150. package/dist/schedule/cron.js +107 -0
  151. package/dist/schedule/cron.js.map +1 -0
  152. package/dist/schedule/index.d.ts +4 -0
  153. package/dist/schedule/index.d.ts.map +1 -0
  154. package/dist/schedule/index.js +4 -0
  155. package/dist/schedule/index.js.map +1 -0
  156. package/dist/schedule/runner.d.ts +42 -0
  157. package/dist/schedule/runner.d.ts.map +1 -0
  158. package/dist/schedule/runner.js +136 -0
  159. package/dist/schedule/runner.js.map +1 -0
  160. package/dist/schedule/storage.d.ts +9 -0
  161. package/dist/schedule/storage.d.ts.map +1 -0
  162. package/dist/schedule/storage.js +68 -0
  163. package/dist/schedule/storage.js.map +1 -0
  164. package/dist/schedule/types.d.ts +24 -0
  165. package/dist/schedule/types.d.ts.map +1 -0
  166. package/dist/schedule/types.js +2 -0
  167. package/dist/schedule/types.js.map +1 -0
  168. package/dist/services/bash-executor.d.ts.map +1 -1
  169. package/dist/services/bash-executor.js +5 -0
  170. package/dist/services/bash-executor.js.map +1 -1
  171. package/dist/tool-calling/json-parser.d.ts +7 -3
  172. package/dist/tool-calling/json-parser.d.ts.map +1 -1
  173. package/dist/tool-calling/json-parser.js +59 -23
  174. package/dist/tool-calling/json-parser.js.map +1 -1
  175. package/dist/tool-calling/tool-parser.d.ts +2 -2
  176. package/dist/tool-calling/tool-parser.d.ts.map +1 -1
  177. package/dist/tool-calling/tool-parser.js +27 -23
  178. package/dist/tool-calling/tool-parser.js.map +1 -1
  179. package/dist/tool-calling/xml-parser.d.ts +8 -4
  180. package/dist/tool-calling/xml-parser.d.ts.map +1 -1
  181. package/dist/tool-calling/xml-parser.js +15 -5
  182. package/dist/tool-calling/xml-parser.js.map +1 -1
  183. package/dist/tools/ask-question.d.ts +3 -0
  184. package/dist/tools/ask-question.d.ts.map +1 -0
  185. package/dist/tools/ask-question.js +66 -0
  186. package/dist/tools/ask-question.js.map +1 -0
  187. package/dist/tools/execute-bash.js +1 -1
  188. package/dist/tools/execute-bash.js.map +1 -1
  189. package/dist/tools/file-ops/copy-file.d.ts +3 -0
  190. package/dist/tools/file-ops/copy-file.d.ts.map +1 -0
  191. package/dist/tools/file-ops/copy-file.js +126 -0
  192. package/dist/tools/file-ops/copy-file.js.map +1 -0
  193. package/dist/tools/file-ops/create-directory.d.ts +3 -0
  194. package/dist/tools/file-ops/create-directory.d.ts.map +1 -0
  195. package/dist/tools/file-ops/create-directory.js +76 -0
  196. package/dist/tools/file-ops/create-directory.js.map +1 -0
  197. package/dist/tools/file-ops/delete-file.d.ts +3 -0
  198. package/dist/tools/file-ops/delete-file.d.ts.map +1 -0
  199. package/dist/tools/file-ops/delete-file.js +88 -0
  200. package/dist/tools/file-ops/delete-file.js.map +1 -0
  201. package/dist/tools/file-ops/index.d.ts +3 -0
  202. package/dist/tools/file-ops/index.d.ts.map +1 -0
  203. package/dist/tools/file-ops/index.js +8 -0
  204. package/dist/tools/file-ops/index.js.map +1 -0
  205. package/dist/tools/file-ops/move-file.d.ts +3 -0
  206. package/dist/tools/file-ops/move-file.d.ts.map +1 -0
  207. package/dist/tools/file-ops/move-file.js +126 -0
  208. package/dist/tools/file-ops/move-file.js.map +1 -0
  209. package/dist/tools/file-ops/string-replace.d.ts +3 -0
  210. package/dist/tools/file-ops/string-replace.d.ts.map +1 -0
  211. package/dist/tools/{string-replace.js → file-ops/string-replace.js} +17 -17
  212. package/dist/tools/file-ops/string-replace.js.map +1 -0
  213. package/dist/tools/file-ops/write-file.d.ts +3 -0
  214. package/dist/tools/file-ops/write-file.d.ts.map +1 -0
  215. package/dist/tools/{write-file.js → file-ops/write-file.js} +31 -17
  216. package/dist/tools/file-ops/write-file.js.map +1 -0
  217. package/dist/tools/git/git-reset.js +1 -1
  218. package/dist/tools/git/git-reset.js.map +1 -1
  219. package/dist/tools/git/index.js +3 -3
  220. package/dist/tools/git/index.js.map +1 -1
  221. package/dist/tools/git/utils.d.ts +4 -0
  222. package/dist/tools/git/utils.d.ts.map +1 -1
  223. package/dist/tools/git/utils.js +12 -0
  224. package/dist/tools/git/utils.js.map +1 -1
  225. package/dist/tools/index.d.ts.map +1 -1
  226. package/dist/tools/index.js +8 -2
  227. package/dist/tools/index.js.map +1 -1
  228. package/dist/tools/search-file-contents.d.ts.map +1 -1
  229. package/dist/tools/search-file-contents.js +59 -10
  230. package/dist/tools/search-file-contents.js.map +1 -1
  231. package/dist/tools/tool-manager.d.ts.map +1 -1
  232. package/dist/tools/tool-manager.js +9 -0
  233. package/dist/tools/tool-manager.js.map +1 -1
  234. package/dist/types/app.d.ts +2 -0
  235. package/dist/types/app.d.ts.map +1 -1
  236. package/dist/types/commands.d.ts +20 -0
  237. package/dist/types/commands.d.ts.map +1 -1
  238. package/dist/types/core.d.ts +2 -1
  239. package/dist/types/core.d.ts.map +1 -1
  240. package/dist/types/core.js +7 -0
  241. package/dist/types/core.js.map +1 -1
  242. package/dist/types/ui.d.ts +1 -1
  243. package/dist/types/ui.d.ts.map +1 -1
  244. package/dist/utils/auto-compact.d.ts.map +1 -1
  245. package/dist/utils/auto-compact.js +13 -7
  246. package/dist/utils/auto-compact.js.map +1 -1
  247. package/dist/utils/file-content-loader.d.ts.map +1 -1
  248. package/dist/utils/file-content-loader.js +58 -1
  249. package/dist/utils/file-content-loader.js.map +1 -1
  250. package/dist/utils/logging/index.d.ts.map +1 -1
  251. package/dist/utils/logging/index.js +18 -30
  252. package/dist/utils/logging/index.js.map +1 -1
  253. package/dist/utils/question-queue.d.ts +15 -0
  254. package/dist/utils/question-queue.d.ts.map +1 -0
  255. package/dist/utils/question-queue.js +25 -0
  256. package/dist/utils/question-queue.js.map +1 -0
  257. package/dist/utils/response-formatter.d.ts +108 -0
  258. package/dist/utils/response-formatter.d.ts.map +1 -0
  259. package/dist/utils/response-formatter.js +387 -0
  260. package/dist/utils/response-formatter.js.map +1 -0
  261. package/dist/utils/shutdown/index.d.ts +7 -0
  262. package/dist/utils/shutdown/index.d.ts.map +1 -0
  263. package/dist/utils/shutdown/index.js +6 -0
  264. package/dist/utils/shutdown/index.js.map +1 -0
  265. package/dist/utils/shutdown/shutdown-manager.d.ts +19 -0
  266. package/dist/utils/shutdown/shutdown-manager.d.ts.map +1 -0
  267. package/dist/utils/shutdown/shutdown-manager.js +100 -0
  268. package/dist/utils/shutdown/shutdown-manager.js.map +1 -0
  269. package/dist/utils/shutdown/types.d.ts +9 -0
  270. package/dist/utils/shutdown/types.d.ts.map +1 -0
  271. package/dist/utils/shutdown/types.js +2 -0
  272. package/dist/utils/shutdown/types.js.map +1 -0
  273. package/dist/utils/type-helpers.d.ts +140 -0
  274. package/dist/utils/type-helpers.d.ts.map +1 -0
  275. package/dist/utils/type-helpers.js +220 -0
  276. package/dist/utils/type-helpers.js.map +1 -0
  277. package/dist/utils/url-utils.d.ts +6 -0
  278. package/dist/utils/url-utils.d.ts.map +1 -0
  279. package/dist/utils/url-utils.js +22 -0
  280. package/dist/utils/url-utils.js.map +1 -0
  281. package/dist/vscode/vscode-server.d.ts.map +1 -1
  282. package/dist/vscode/vscode-server.js +10 -0
  283. package/dist/vscode/vscode-server.js.map +1 -1
  284. package/dist/wizards/steps/mcp-step.js +1 -1
  285. package/dist/wizards/steps/mcp-step.js.map +1 -1
  286. package/dist/wizards/steps/provider-step.js +1 -1
  287. package/dist/wizards/steps/provider-step.js.map +1 -1
  288. package/dist/wizards/templates/mcp-templates.d.ts.map +1 -1
  289. package/dist/wizards/templates/mcp-templates.js +8 -6
  290. package/dist/wizards/templates/mcp-templates.js.map +1 -1
  291. package/dist/wizards/templates/provider-templates.d.ts.map +1 -1
  292. package/dist/wizards/templates/provider-templates.js +35 -2
  293. package/dist/wizards/templates/provider-templates.js.map +1 -1
  294. package/dist/wizards/validation.d.ts.map +1 -1
  295. package/dist/wizards/validation.js +2 -3
  296. package/dist/wizards/validation.js.map +1 -1
  297. package/package.json +9 -18
  298. package/source/app/prompts/main-prompt.md +21 -3
  299. package/dist/hooks/chat-handler/utils/context-checker.d.ts +0 -15
  300. package/dist/hooks/chat-handler/utils/context-checker.d.ts.map +0 -1
  301. package/dist/hooks/chat-handler/utils/context-checker.js +0 -68
  302. package/dist/hooks/chat-handler/utils/context-checker.js.map +0 -1
  303. package/dist/tools/string-replace.d.ts +0 -3
  304. package/dist/tools/string-replace.d.ts.map +0 -1
  305. package/dist/tools/string-replace.js.map +0 -1
  306. package/dist/tools/write-file.d.ts +0 -3
  307. package/dist/tools/write-file.d.ts.map +0 -1
  308. package/dist/tools/write-file.js.map +0 -1
@@ -0,0 +1,88 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { constants } from 'node:fs';
3
+ import { access, rm, stat } from 'node:fs/promises';
4
+ import { resolve } from 'node:path';
5
+ import { Box, Text } from 'ink';
6
+ import React from 'react';
7
+ import ToolMessage from '../../components/tool-message.js';
8
+ import { ThemeContext } from '../../hooks/useTheme.js';
9
+ import { jsonSchema, tool } from '../../types/core.js';
10
+ import { invalidateCache } from '../../utils/file-cache.js';
11
+ import { isValidFilePath, resolveFilePath } from '../../utils/path-validation.js';
12
+ const executeDeleteFile = async (args) => {
13
+ const absPath = resolve(args.path);
14
+ const fileStat = await stat(absPath);
15
+ if (fileStat.isDirectory()) {
16
+ return `Error: "${args.path}" is a directory. Use execute_bash with rm -r for directory removal.`;
17
+ }
18
+ await rm(absPath);
19
+ invalidateCache(absPath);
20
+ return `File deleted: ${args.path}`;
21
+ };
22
+ const deleteFileCoreTool = tool({
23
+ description: 'Delete a file. Only deletes single files, not directories. Always requires user approval.',
24
+ inputSchema: jsonSchema({
25
+ type: 'object',
26
+ properties: {
27
+ path: {
28
+ type: 'string',
29
+ description: 'The relative path to the file to delete.',
30
+ },
31
+ },
32
+ required: ['path'],
33
+ }),
34
+ // High risk: destructive operation, always requires approval
35
+ needsApproval: true,
36
+ execute: async (args, _options) => {
37
+ return await executeDeleteFile(args);
38
+ },
39
+ });
40
+ const DeleteFileFormatter = React.memo(({ args, result }) => {
41
+ const themeContext = React.useContext(ThemeContext);
42
+ if (!themeContext) {
43
+ throw new Error('ThemeContext is required');
44
+ }
45
+ const { colors } = themeContext;
46
+ const messageContent = (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.tool, children: "\u2692 delete_file" }), _jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Path: " }), _jsx(Text, { color: colors.text, children: args.path })] }), result && (_jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Result: " }), _jsx(Text, { color: colors.text, children: result })] }))] }));
47
+ return _jsx(ToolMessage, { message: messageContent, hideBox: true });
48
+ });
49
+ const deleteFileFormatter = (args, result) => {
50
+ return _jsx(DeleteFileFormatter, { args: args, result: result });
51
+ };
52
+ const deleteFileValidator = async (args) => {
53
+ if (!isValidFilePath(args.path)) {
54
+ return {
55
+ valid: false,
56
+ error: `⚒ Invalid file path: "${args.path}". Path must be relative and within the project directory.`,
57
+ };
58
+ }
59
+ try {
60
+ const cwd = process.cwd();
61
+ resolveFilePath(args.path, cwd);
62
+ }
63
+ catch (error) {
64
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
65
+ return {
66
+ valid: false,
67
+ error: `⚒ Path validation failed: ${errorMessage}`,
68
+ };
69
+ }
70
+ const absPath = resolve(args.path);
71
+ try {
72
+ await access(absPath, constants.F_OK);
73
+ }
74
+ catch {
75
+ return {
76
+ valid: false,
77
+ error: `⚒ File does not exist: "${args.path}"`,
78
+ };
79
+ }
80
+ return { valid: true };
81
+ };
82
+ export const deleteFileTool = {
83
+ name: 'delete_file',
84
+ tool: deleteFileCoreTool,
85
+ formatter: deleteFileFormatter,
86
+ validator: deleteFileValidator,
87
+ };
88
+ //# sourceMappingURL=delete-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-file.js","sourceRoot":"","sources":["../../../source/tools/file-ops/delete-file.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { NanocoderToolExport } from '../../types/core.js';
2
+ export declare function getFileOpTools(): NanocoderToolExport[];
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../source/tools/file-ops/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAMtD,wBAAgB,cAAc,IAAI,mBAAmB,EAAE,CAEtD"}
@@ -0,0 +1,8 @@
1
+ import { copyFileTool } from './copy-file.js';
2
+ import { createDirectoryTool } from './create-directory.js';
3
+ import { deleteFileTool } from './delete-file.js';
4
+ import { moveFileTool } from './move-file.js';
5
+ export function getFileOpTools() {
6
+ return [deleteFileTool, moveFileTool, createDirectoryTool, copyFileTool];
7
+ }
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/tools/file-ops/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAEzC,MAAM,UAAU,cAAc;IAC7B,OAAO,CAAC,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { NanocoderToolExport } from '../../types/core.js';
2
+ export declare const moveFileTool: NanocoderToolExport;
3
+ //# sourceMappingURL=move-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-file.d.ts","sourceRoot":"","sources":["../../../source/tools/file-ops/move-file.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AA8JtD,eAAO,MAAM,YAAY,EAAE,mBAK1B,CAAC"}
@@ -0,0 +1,126 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { constants } from 'node:fs';
3
+ import { access, rename, stat } from 'node:fs/promises';
4
+ import { dirname, resolve } from 'node:path';
5
+ import { Box, Text } from 'ink';
6
+ import React from 'react';
7
+ import ToolMessage from '../../components/tool-message.js';
8
+ import { isNanocoderToolAlwaysAllowed } from '../../config/nanocoder-tools-config.js';
9
+ import { getCurrentMode } from '../../context/mode-context.js';
10
+ import { ThemeContext } from '../../hooks/useTheme.js';
11
+ import { jsonSchema, tool } from '../../types/core.js';
12
+ import { invalidateCache } from '../../utils/file-cache.js';
13
+ import { isValidFilePath, resolveFilePath } from '../../utils/path-validation.js';
14
+ const executeMoveFile = async (args) => {
15
+ const srcAbsPath = resolve(args.source);
16
+ const destAbsPath = resolve(args.destination);
17
+ await rename(srcAbsPath, destAbsPath);
18
+ invalidateCache(srcAbsPath);
19
+ return `File moved: ${args.source} → ${args.destination}`;
20
+ };
21
+ const moveFileCoreTool = tool({
22
+ description: 'Move or rename a file. Use this instead of execute_bash with mv.',
23
+ inputSchema: jsonSchema({
24
+ type: 'object',
25
+ properties: {
26
+ source: {
27
+ type: 'string',
28
+ description: 'The current relative path of the file.',
29
+ },
30
+ destination: {
31
+ type: 'string',
32
+ description: 'The new relative path for the file.',
33
+ },
34
+ },
35
+ required: ['source', 'destination'],
36
+ }),
37
+ needsApproval: () => {
38
+ if (isNanocoderToolAlwaysAllowed('move_file')) {
39
+ return false;
40
+ }
41
+ const mode = getCurrentMode();
42
+ return mode !== 'auto-accept';
43
+ },
44
+ execute: async (args, _options) => {
45
+ return await executeMoveFile(args);
46
+ },
47
+ });
48
+ const MoveFileFormatter = React.memo(({ args, result }) => {
49
+ const themeContext = React.useContext(ThemeContext);
50
+ if (!themeContext) {
51
+ throw new Error('ThemeContext is required');
52
+ }
53
+ const { colors } = themeContext;
54
+ const messageContent = (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.tool, children: "\u2692 move_file" }), _jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Source: " }), _jsx(Text, { color: colors.text, children: args.source })] }), _jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Destination: " }), _jsx(Text, { color: colors.text, children: args.destination })] }), result && (_jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Result: " }), _jsx(Text, { color: colors.text, children: result })] }))] }));
55
+ return _jsx(ToolMessage, { message: messageContent, hideBox: true });
56
+ });
57
+ const moveFileFormatter = (args, result) => {
58
+ return _jsx(MoveFileFormatter, { args: args, result: result });
59
+ };
60
+ const moveFileValidator = async (args) => {
61
+ // Validate source path
62
+ if (!isValidFilePath(args.source)) {
63
+ return {
64
+ valid: false,
65
+ error: `⚒ Invalid source path: "${args.source}". Path must be relative and within the project directory.`,
66
+ };
67
+ }
68
+ // Validate destination path
69
+ if (!isValidFilePath(args.destination)) {
70
+ return {
71
+ valid: false,
72
+ error: `⚒ Invalid destination path: "${args.destination}". Path must be relative and within the project directory.`,
73
+ };
74
+ }
75
+ try {
76
+ const cwd = process.cwd();
77
+ resolveFilePath(args.source, cwd);
78
+ resolveFilePath(args.destination, cwd);
79
+ }
80
+ catch (error) {
81
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
82
+ return {
83
+ valid: false,
84
+ error: `⚒ Path validation failed: ${errorMessage}`,
85
+ };
86
+ }
87
+ // Check source exists
88
+ const srcAbsPath = resolve(args.source);
89
+ try {
90
+ await access(srcAbsPath, constants.F_OK);
91
+ }
92
+ catch {
93
+ return {
94
+ valid: false,
95
+ error: `⚒ Source file does not exist: "${args.source}"`,
96
+ };
97
+ }
98
+ // Check source is a file
99
+ const fileStat = await stat(srcAbsPath);
100
+ if (fileStat.isDirectory()) {
101
+ return {
102
+ valid: false,
103
+ error: `⚒ Source is a directory, not a file: "${args.source}"`,
104
+ };
105
+ }
106
+ // Check destination parent directory exists
107
+ const destAbsPath = resolve(args.destination);
108
+ const parentDir = dirname(destAbsPath);
109
+ try {
110
+ await access(parentDir, constants.F_OK);
111
+ }
112
+ catch {
113
+ return {
114
+ valid: false,
115
+ error: `⚒ Destination parent directory does not exist: "${parentDir}"`,
116
+ };
117
+ }
118
+ return { valid: true };
119
+ };
120
+ export const moveFileTool = {
121
+ name: 'move_file',
122
+ tool: moveFileCoreTool,
123
+ formatter: moveFileFormatter,
124
+ validator: moveFileValidator,
125
+ };
126
+ //# sourceMappingURL=move-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-file.js","sourceRoot":"","sources":["../../../source/tools/file-ops/move-file.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { NanocoderToolExport } from '../../types/core.js';
2
+ export declare const stringReplaceTool: NanocoderToolExport;
3
+ //# sourceMappingURL=string-replace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-replace.d.ts","sourceRoot":"","sources":["../../../source/tools/file-ops/string-replace.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAquBtD,eAAO,MAAM,iBAAiB,EAAE,mBAK/B,CAAC"}
@@ -6,18 +6,18 @@ import { highlight } from 'cli-highlight';
6
6
  import { Box, Text } from 'ink';
7
7
  import React from 'react';
8
8
  import stripAnsi from 'strip-ansi';
9
- import ToolMessage from '../components/tool-message.js';
10
- import { getColors } from '../config/index.js';
11
- import { isNanocoderToolAlwaysAllowed } from '../config/nanocoder-tools-config.js';
12
- import { DEFAULT_TERMINAL_COLUMNS } from '../constants.js';
13
- import { getCurrentMode } from '../context/mode-context.js';
14
- import { jsonSchema, tool } from '../types/core.js';
15
- import { getCachedFileContent, invalidateCache } from '../utils/file-cache.js';
16
- import { normalizeIndentation } from '../utils/indentation-normalizer.js';
17
- import { areLinesSimlar, computeInlineDiff } from '../utils/inline-diff.js';
18
- import { isValidFilePath, resolveFilePath } from '../utils/path-validation.js';
19
- import { getLanguageFromExtension } from '../utils/programming-language-helper.js';
20
- import { closeDiffInVSCode, isVSCodeConnected, sendFileChangeToVSCode, } from '../vscode/index.js';
9
+ import ToolMessage from '../../components/tool-message.js';
10
+ import { getColors } from '../../config/index.js';
11
+ import { isNanocoderToolAlwaysAllowed } from '../../config/nanocoder-tools-config.js';
12
+ import { DEFAULT_TERMINAL_COLUMNS } from '../../constants.js';
13
+ import { getCurrentMode } from '../../context/mode-context.js';
14
+ import { jsonSchema, tool } from '../../types/core.js';
15
+ import { getCachedFileContent, invalidateCache } from '../../utils/file-cache.js';
16
+ import { normalizeIndentation } from '../../utils/indentation-normalizer.js';
17
+ import { areLinesSimlar, computeInlineDiff } from '../../utils/inline-diff.js';
18
+ import { isValidFilePath, resolveFilePath } from '../../utils/path-validation.js';
19
+ import { getLanguageFromExtension } from '../../utils/programming-language-helper.js';
20
+ import { closeDiffInVSCode, isVSCodeConnected, sendFileChangeToVSCode, } from '../../vscode/index.js';
21
21
  const executeStringReplace = async (args) => {
22
22
  const { path, old_str, new_str } = args;
23
23
  // Validate old_str is not empty
@@ -101,7 +101,7 @@ const stringReplaceCoreTool = tool({
101
101
  return false;
102
102
  }
103
103
  const mode = getCurrentMode();
104
- return mode !== 'auto-accept'; // true in normal/plan, false in auto-accept
104
+ return mode !== 'auto-accept' && mode !== 'scheduler';
105
105
  },
106
106
  execute: async (args, _options) => {
107
107
  return await executeStringReplace(args);
@@ -169,11 +169,11 @@ async function formatStringReplacePreview(args, result, colors) {
169
169
  if (!isResult) {
170
170
  const occurrences = fileContent.split(old_str).length - 1;
171
171
  if (occurrences === 0) {
172
- const errorContent = (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: themeColors.tool, children: "\u2692 string_replace" }), _jsxs(Box, { children: [_jsx(Text, { color: themeColors.secondary, children: "Path: " }), _jsx(Text, { color: themeColors.primary, children: path })] }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: _jsx(Text, { color: themeColors.error, children: "\u2717 Error: Content not found in file. The file may have changed since you last read it." }) }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: themeColors.secondary, children: "Searching for:" }), old_str.split('\n').map((line, i) => (_jsx(Text, { color: themeColors.text, children: truncateLine(line, availableWidth) }, i)))] })] }));
172
+ const errorContent = (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: themeColors.tool, children: "\u2692 string_replace" }), _jsxs(Box, { children: [_jsx(Text, { color: themeColors.secondary, children: "Path: " }), _jsx(Text, { color: themeColors.primary, children: path })] }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: _jsx(Text, { color: themeColors.error, children: "\u2717 Error: Content not found in file. The file may have changed since you last read it." }) })] }));
173
173
  return _jsx(ToolMessage, { message: errorContent, hideBox: true });
174
174
  }
175
175
  if (occurrences > 1) {
176
- const errorContent = (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: themeColors.tool, children: "\u2692 string_replace" }), _jsxs(Box, { children: [_jsx(Text, { color: themeColors.secondary, children: "Path: " }), _jsx(Text, { color: themeColors.primary, children: path })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { color: themeColors.error, children: ["\u2717 Error: Found ", occurrences, " matches"] }), _jsx(Text, { color: themeColors.secondary, children: "Add more surrounding context to make the match unique." })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: themeColors.secondary, children: "Searching for:" }), old_str.split('\n').map((line, i) => (_jsx(Text, { color: themeColors.text, children: truncateLine(line, availableWidth) }, i)))] })] }));
176
+ const errorContent = (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: themeColors.tool, children: "\u2692 string_replace" }), _jsxs(Box, { children: [_jsx(Text, { color: themeColors.secondary, children: "Path: " }), _jsx(Text, { color: themeColors.primary, children: path })] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { color: themeColors.error, children: ["\u2717 Error: Found ", occurrences, " matches"] }), _jsx(Text, { color: themeColors.secondary, children: "Add more surrounding context to make the match unique." })] })] }));
177
177
  return _jsx(ToolMessage, { message: errorContent, hideBox: true });
178
178
  }
179
179
  }
@@ -433,13 +433,13 @@ const stringReplaceValidator = async (args) => {
433
433
  if (occurrences === 0) {
434
434
  return {
435
435
  valid: false,
436
- error: `⚒ Content not found in file. The file may have changed since you last read it.\n\nSearching for:\n${old_str}\n\nSuggestion: Read the file again to see current contents.`,
436
+ error: `⚒ Content not found in file. The file may have changed since you last read it. Suggestion: Read the file again to see current contents.`,
437
437
  };
438
438
  }
439
439
  if (occurrences > 1) {
440
440
  return {
441
441
  valid: false,
442
- error: `⚒ Found ${occurrences} matches for the search string. Please provide more surrounding context to make the match unique.\n\nSearching for:\n${old_str}`,
442
+ error: `⚒ Found ${occurrences} matches for the search string. Please provide more surrounding context to make the match unique.`,
443
443
  };
444
444
  }
445
445
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-replace.js","sourceRoot":"","sources":["../../../source/tools/file-ops/string-replace.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { NanocoderToolExport } from '../../types/core.js';
2
+ export declare const writeFileTool: NanocoderToolExport;
3
+ //# sourceMappingURL=write-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../../source/tools/file-ops/write-file.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAiVtD,eAAO,MAAM,aAAa,EAAE,mBAK3B,CAAC"}
@@ -6,22 +6,26 @@ import { highlight } from 'cli-highlight';
6
6
  import { Box, Text } from 'ink';
7
7
  import React from 'react';
8
8
  import stripAnsi from 'strip-ansi';
9
- import ToolMessage from '../components/tool-message.js';
10
- import { isNanocoderToolAlwaysAllowed } from '../config/nanocoder-tools-config.js';
11
- import { DEFAULT_TERMINAL_COLUMNS } from '../constants.js';
12
- import { getCurrentMode } from '../context/mode-context.js';
13
- import { ThemeContext } from '../hooks/useTheme.js';
14
- import { jsonSchema, tool } from '../types/core.js';
15
- import { getCachedFileContent, invalidateCache } from '../utils/file-cache.js';
16
- import { normalizeIndentation } from '../utils/indentation-normalizer.js';
17
- import { isValidFilePath, resolveFilePath } from '../utils/path-validation.js';
18
- import { getLanguageFromExtension } from '../utils/programming-language-helper.js';
19
- import { calculateTokens } from '../utils/token-calculator.js';
20
- import { closeDiffInVSCode, isVSCodeConnected, sendFileChangeToVSCode, } from '../vscode/index.js';
9
+ import ToolMessage from '../../components/tool-message.js';
10
+ import { isNanocoderToolAlwaysAllowed } from '../../config/nanocoder-tools-config.js';
11
+ import { DEFAULT_TERMINAL_COLUMNS } from '../../constants.js';
12
+ import { getCurrentMode } from '../../context/mode-context.js';
13
+ import { ThemeContext } from '../../hooks/useTheme.js';
14
+ import { jsonSchema, tool } from '../../types/core.js';
15
+ import { getCachedFileContent, invalidateCache } from '../../utils/file-cache.js';
16
+ import { normalizeIndentation } from '../../utils/indentation-normalizer.js';
17
+ import { isValidFilePath, resolveFilePath } from '../../utils/path-validation.js';
18
+ import { getLanguageFromExtension } from '../../utils/programming-language-helper.js';
19
+ import { calculateTokens } from '../../utils/token-calculator.js';
20
+ import { ensureString } from '../../utils/type-helpers.js';
21
+ import { closeDiffInVSCode, isVSCodeConnected, sendFileChangeToVSCode, } from '../../vscode/index.js';
21
22
  const executeWriteFile = async (args) => {
22
23
  const absPath = resolve(args.path);
23
24
  const fileExists = existsSync(absPath);
24
- await writeFile(absPath, args.content, 'utf-8');
25
+ // Type guard: ensure content is string for write operation
26
+ // Storage is safe (fs.writeFile ensures string-only), but we need to convert for safety
27
+ const contentStr = ensureString(args.content);
28
+ await writeFile(absPath, contentStr, 'utf-8');
25
29
  // Invalidate cache after write
26
30
  invalidateCache(absPath);
27
31
  // Read back to verify and show actual content
@@ -43,6 +47,7 @@ const executeWriteFile = async (args) => {
43
47
  const writeFileCoreTool = tool({
44
48
  description: 'Write content to a file (creates new file or overwrites existing file). Use this for complete file rewrites, generated code, or when most of the file needs to change. For small targeted edits, use string_replace instead.',
45
49
  inputSchema: jsonSchema({
50
+ // Note: change to unknown
46
51
  type: 'object',
47
52
  properties: {
48
53
  path: {
@@ -50,8 +55,8 @@ const writeFileCoreTool = tool({
50
55
  description: 'The path to the file to write.',
51
56
  },
52
57
  content: {
53
- type: 'string',
54
- description: 'The complete content to write to the file.',
58
+ type: 'string', // Guide LLM to send strings
59
+ description: 'The complete content to write to the file. Objects/arrays will be converted to JSON strings for storage.',
55
60
  },
56
61
  },
57
62
  required: ['path', 'content'],
@@ -63,7 +68,7 @@ const writeFileCoreTool = tool({
63
68
  return false;
64
69
  }
65
70
  const mode = getCurrentMode();
66
- return mode !== 'auto-accept'; // true in normal/plan, false in auto-accept
71
+ return mode !== 'auto-accept' && mode !== 'scheduler';
67
72
  },
68
73
  execute: async (args, _options) => {
69
74
  return await executeWriteFile(args);
@@ -111,7 +116,7 @@ const WriteFileFormatter = React.memo(({ args }) => {
111
116
  }
112
117
  const { colors } = themeContext;
113
118
  const path = args.path || args.file_path || 'unknown';
114
- const newContent = args.content || '';
119
+ const newContent = ensureString(args.content);
115
120
  const lineCount = newContent.split('\n').length;
116
121
  const charCount = newContent.length;
117
122
  // Estimate tokens (rough approximation: ~4 characters per token)
@@ -219,6 +224,15 @@ const writeFileValidator = async (args) => {
219
224
  error: `⚒ Cannot access parent directory "${parentDir}": ${errorMessage}`,
220
225
  };
221
226
  }
227
+ // Check if content is valid (not null/undefined)
228
+ if (args.content === null || args.content === undefined) {
229
+ return {
230
+ valid: false,
231
+ error: `⚒ Invalid content: content cannot be null or undefined.`,
232
+ };
233
+ }
234
+ // Allow empty strings (intentional file creation)
235
+ // Only reject null/undefined, which we already checked above
222
236
  // Check for invalid path characters or attempts to write to system directories
223
237
  const invalidPatterns = [
224
238
  /^\/etc\//i,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../source/tools/file-ops/write-file.tsx"],"names":[],"mappings":"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"}
@@ -167,7 +167,7 @@ function GitResetFormatter({ args, result, }) {
167
167
  mixed: 'Unstage changes, keep in working tree',
168
168
  hard: 'Discard all changes permanently',
169
169
  };
170
- return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: colors.tool, children: "\u2692 git_reset" }), args.mode === 'hard' && (_jsx(Box, { children: _jsx(Text, { color: colors.error, children: "\u26A0\uFE0F WARNING: This will permanently discard uncommitted work!" }) })), _jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Mode: " }), _jsx(Text, { color: args.mode === 'hard' ? colors.error : colors.text, children: args.mode }), _jsxs(Text, { color: colors.secondary, children: [" - ", modeDescriptions[args.mode]] })] }), _jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Target: " }), _jsx(Text, { color: colors.primary, children: target })] }), args.file && (_jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "File: " }), _jsx(Text, { color: colors.text, children: args.file })] })), preview && !args.file && (_jsxs(_Fragment, { children: [preview.commitsAffected.length > 0 && (_jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Commits affected: " }), _jsx(Text, { color: colors.warning, children: preview.commitsAffected.length })] })), preview.filesAffected > 0 && (_jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Files affected: " }), _jsxs(Text, { color: colors.text, children: [preview.filesAffected, " "] }), _jsxs(Text, { color: colors.success, children: ["(+", preview.additions] }), _jsx(Text, { color: colors.text, children: ", " }), _jsxs(Text, { color: colors.error, children: ["-", preview.deletions] }), _jsx(Text, { color: colors.text, children: ")" })] }))] })), result?.includes('Reset to') && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.success, children: "\u2713 Reset completed" }) })), result?.includes('Error:') && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.error, children: ["\u2717 ", result] }) }))] }));
170
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: colors.tool, children: "\u2692 git_reset" }), args.mode === 'hard' && (_jsx(Box, { children: _jsx(Text, { color: colors.error, children: "This will permanently discard uncommitted work!" }) })), _jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Mode: " }), _jsx(Text, { color: args.mode === 'hard' ? colors.error : colors.text, children: args.mode }), _jsxs(Text, { color: colors.secondary, children: [" - ", modeDescriptions[args.mode]] })] }), _jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Target: " }), _jsx(Text, { color: colors.primary, children: target })] }), args.file && (_jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "File: " }), _jsx(Text, { color: colors.text, children: args.file })] })), preview && !args.file && (_jsxs(_Fragment, { children: [preview.commitsAffected.length > 0 && (_jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Commits affected: " }), _jsx(Text, { color: colors.warning, children: preview.commitsAffected.length })] })), preview.filesAffected > 0 && (_jsxs(Box, { children: [_jsx(Text, { color: colors.secondary, children: "Files affected: " }), _jsxs(Text, { color: colors.text, children: [preview.filesAffected, " "] }), _jsxs(Text, { color: colors.success, children: ["(+", preview.additions] }), _jsx(Text, { color: colors.text, children: ", " }), _jsxs(Text, { color: colors.error, children: ["-", preview.deletions] }), _jsx(Text, { color: colors.text, children: ")" })] }))] })), result?.includes('Reset to') && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.success, children: "\u2713 Reset completed" }) })), result?.includes('Error:') && (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.error, children: ["\u2717 ", result] }) }))] }));
171
171
  }
172
172
  const formatter = (args, result) => {
173
173
  return _jsx(GitResetFormatter, { args: args, result: result });
@@ -1 +1 @@
1
- {"version":3,"file":"git-reset.js","sourceRoot":"","sources":["../../../source/tools/git/git-reset.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-reset.js","sourceRoot":"","sources":["../../../source/tools/git/git-reset.tsx"],"names":[],"mappings":"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"}
@@ -15,14 +15,14 @@ import { gitPushTool } from './git-push.js';
15
15
  import { gitResetTool } from './git-reset.js';
16
16
  import { gitStashTool } from './git-stash.js';
17
17
  import { gitStatusTool } from './git-status.js';
18
- import { isGhAvailable, isGitAvailable } from './utils.js';
18
+ import { isGhAvailable, isGitAvailable, isInsideGitRepo } from './utils.js';
19
19
  /**
20
20
  * Get all available git tools based on system capabilities.
21
21
  * Returns empty array if git is not installed.
22
22
  */
23
23
  export function getGitTools() {
24
- // No git, no git tools
25
- if (!isGitAvailable()) {
24
+ // No git or not in a git repo, no git tools
25
+ if (!isGitAvailable() || !isInsideGitRepo()) {
26
26
  return [];
27
27
  }
28
28
  // Core git tools (always available if git is installed)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/tools/git/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AACrC,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AACrC,OAAO,EAAC,SAAS,EAAC,MAAM,UAAU,CAAC;AACnC,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,SAAS,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,WAAW;IAC1B,uBAAuB;IACvB,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,wDAAwD;IACxD,MAAM,KAAK,GAA0B;QACpC,aAAa;QACb,WAAW;QACX,UAAU;QACV,UAAU;QACV,aAAa;QACb,WAAW;QACX,WAAW;QACX,aAAa;QACb,YAAY;QACZ,YAAY;KACZ,CAAC;IAEF,0BAA0B;IAC1B,IAAI,aAAa,EAAE,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/tools/git/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AACrC,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AACrC,OAAO,EAAC,SAAS,EAAC,MAAM,UAAU,CAAC;AACnC,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAE,cAAc,EAAE,eAAe,EAAC,MAAM,SAAS,CAAC;AAEvE;;;GAGG;AACH,MAAM,UAAU,WAAW;IAC1B,4CAA4C;IAC5C,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAC;IACX,CAAC;IAED,wDAAwD;IACxD,MAAM,KAAK,GAA0B;QACpC,aAAa;QACb,WAAW;QACX,UAAU;QACV,UAAU;QACV,aAAa;QACb,WAAW;QACX,WAAW;QACX,aAAa;QACb,YAAY;QACZ,YAAY;KACZ,CAAC;IAEF,0BAA0B;IAC1B,IAAI,aAAa,EAAE,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC"}
@@ -57,6 +57,10 @@ export interface StashEntry {
57
57
  * Check if git is available on the system (synchronous)
58
58
  */
59
59
  export declare function isGitAvailable(): boolean;
60
+ /**
61
+ * Check if the current directory is inside a git repository (synchronous)
62
+ */
63
+ export declare function isInsideGitRepo(): boolean;
60
64
  /**
61
65
  * Check if gh CLI is available on the system (synchronous)
62
66
  */