@nanocollective/nanocoder 1.16.3 → 1.16.5

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 (126) hide show
  1. package/README.md +17 -1
  2. package/dist/commands/init.d.ts.map +1 -1
  3. package/dist/commands/init.js +4 -29
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/commands/update.d.ts +6 -0
  6. package/dist/commands/update.d.ts.map +1 -1
  7. package/dist/commands/update.js +104 -10
  8. package/dist/commands/update.js.map +1 -1
  9. package/dist/components/status.d.ts +1 -6
  10. package/dist/components/status.d.ts.map +1 -1
  11. package/dist/components/status.js +3 -2
  12. package/dist/components/status.js.map +1 -1
  13. package/dist/components/tool-confirmation.d.ts.map +1 -1
  14. package/dist/components/tool-confirmation.js +5 -19
  15. package/dist/components/tool-confirmation.js.map +1 -1
  16. package/dist/components/user-input.d.ts.map +1 -1
  17. package/dist/components/user-input.js +61 -19
  18. package/dist/components/user-input.js.map +1 -1
  19. package/dist/components/warning-message.d.ts +7 -0
  20. package/dist/components/warning-message.d.ts.map +1 -0
  21. package/dist/components/warning-message.js +12 -0
  22. package/dist/components/warning-message.js.map +1 -0
  23. package/dist/config/index.js +6 -6
  24. package/dist/config/index.js.map +1 -1
  25. package/dist/config/paths.d.ts +1 -0
  26. package/dist/config/paths.d.ts.map +1 -1
  27. package/dist/config/paths.js +28 -3
  28. package/dist/config/paths.js.map +1 -1
  29. package/dist/config/paths.spec.d.ts +2 -0
  30. package/dist/config/paths.spec.d.ts.map +1 -0
  31. package/dist/config/paths.spec.js +114 -0
  32. package/dist/config/paths.spec.js.map +1 -0
  33. package/dist/config/themes.d.ts.map +1 -1
  34. package/dist/config/themes.js +19 -0
  35. package/dist/config/themes.js.map +1 -1
  36. package/dist/hooks/useChatHandler.d.ts.map +1 -1
  37. package/dist/hooks/useChatHandler.js +10 -71
  38. package/dist/hooks/useChatHandler.js.map +1 -1
  39. package/dist/hooks/useDirectoryTrust.d.ts.map +1 -1
  40. package/dist/hooks/useDirectoryTrust.js +4 -4
  41. package/dist/hooks/useDirectoryTrust.js.map +1 -1
  42. package/dist/hooks/useInputState.d.ts.map +1 -1
  43. package/dist/hooks/useInputState.js +95 -8
  44. package/dist/hooks/useInputState.js.map +1 -1
  45. package/dist/hooks/useToolHandler.d.ts +0 -1
  46. package/dist/hooks/useToolHandler.d.ts.map +1 -1
  47. package/dist/hooks/useToolHandler.js +9 -75
  48. package/dist/hooks/useToolHandler.js.map +1 -1
  49. package/dist/message-handler.d.ts.map +1 -1
  50. package/dist/message-handler.js +6 -11
  51. package/dist/message-handler.js.map +1 -1
  52. package/dist/models/models-dev-client.spec.js +1 -0
  53. package/dist/models/models-dev-client.spec.js.map +1 -1
  54. package/dist/tools/execute-bash.d.ts.map +1 -1
  55. package/dist/tools/execute-bash.js +5 -3
  56. package/dist/tools/execute-bash.js.map +1 -1
  57. package/dist/types/ui.d.ts +1 -1
  58. package/dist/types/ui.d.ts.map +1 -1
  59. package/dist/types/utils.d.ts +2 -1
  60. package/dist/types/utils.d.ts.map +1 -1
  61. package/dist/usage/storage.d.ts +1 -1
  62. package/dist/usage/storage.d.ts.map +1 -1
  63. package/dist/usage/storage.js +55 -9
  64. package/dist/usage/storage.js.map +1 -1
  65. package/dist/usage/storage.spec.js +136 -2
  66. package/dist/usage/storage.spec.js.map +1 -1
  67. package/dist/utils/error-formatter.d.ts +22 -0
  68. package/dist/utils/error-formatter.d.ts.map +1 -0
  69. package/dist/utils/error-formatter.js +27 -0
  70. package/dist/utils/error-formatter.js.map +1 -0
  71. package/dist/utils/error-formatter.spec.d.ts +2 -0
  72. package/dist/utils/error-formatter.spec.d.ts.map +1 -0
  73. package/dist/utils/error-formatter.spec.js +147 -0
  74. package/dist/utils/error-formatter.spec.js.map +1 -0
  75. package/dist/utils/fuzzy-matching.spec.js +1 -0
  76. package/dist/utils/fuzzy-matching.spec.js.map +1 -1
  77. package/dist/utils/installation-detector.d.ts +16 -0
  78. package/dist/utils/installation-detector.d.ts.map +1 -0
  79. package/dist/utils/installation-detector.js +118 -0
  80. package/dist/utils/installation-detector.js.map +1 -0
  81. package/dist/utils/installation-detector.spec.d.ts +2 -0
  82. package/dist/utils/installation-detector.spec.d.ts.map +1 -0
  83. package/dist/utils/installation-detector.spec.js +141 -0
  84. package/dist/utils/installation-detector.spec.js.map +1 -0
  85. package/dist/utils/message-queue.d.ts +2 -0
  86. package/dist/utils/message-queue.d.ts.map +1 -1
  87. package/dist/utils/message-queue.js +11 -0
  88. package/dist/utils/message-queue.js.map +1 -1
  89. package/dist/utils/paste-detection.d.ts.map +1 -1
  90. package/dist/utils/paste-detection.js +8 -3
  91. package/dist/utils/paste-detection.js.map +1 -1
  92. package/dist/utils/paste-detection.spec.js +15 -8
  93. package/dist/utils/paste-detection.spec.js.map +1 -1
  94. package/dist/utils/paste-utils.d.ts.map +1 -1
  95. package/dist/utils/paste-utils.js +4 -2
  96. package/dist/utils/paste-utils.js.map +1 -1
  97. package/dist/utils/paste-utils.spec.js +19 -3
  98. package/dist/utils/paste-utils.spec.js.map +1 -1
  99. package/dist/utils/tool-args-parser.d.ts +37 -0
  100. package/dist/utils/tool-args-parser.d.ts.map +1 -0
  101. package/dist/utils/tool-args-parser.js +50 -0
  102. package/dist/utils/tool-args-parser.js.map +1 -0
  103. package/dist/utils/tool-args-parser.spec.d.ts +2 -0
  104. package/dist/utils/tool-args-parser.spec.d.ts.map +1 -0
  105. package/dist/utils/tool-args-parser.spec.js +111 -0
  106. package/dist/utils/tool-args-parser.spec.js.map +1 -0
  107. package/dist/utils/tool-cancellation.d.ts +21 -0
  108. package/dist/utils/tool-cancellation.d.ts.map +1 -0
  109. package/dist/utils/tool-cancellation.js +27 -0
  110. package/dist/utils/tool-cancellation.js.map +1 -0
  111. package/dist/utils/tool-cancellation.spec.d.ts +2 -0
  112. package/dist/utils/tool-cancellation.spec.d.ts.map +1 -0
  113. package/dist/utils/tool-cancellation.spec.js +186 -0
  114. package/dist/utils/tool-cancellation.spec.js.map +1 -0
  115. package/dist/utils/tool-result-display.d.ts +15 -0
  116. package/dist/utils/tool-result-display.d.ts.map +1 -0
  117. package/dist/utils/tool-result-display.js +51 -0
  118. package/dist/utils/tool-result-display.js.map +1 -0
  119. package/dist/utils/update-checker.d.ts.map +1 -1
  120. package/dist/utils/update-checker.js +31 -3
  121. package/dist/utils/update-checker.js.map +1 -1
  122. package/dist/utils/update-checker.spec.js +68 -18
  123. package/dist/utils/update-checker.spec.js.map +1 -1
  124. package/dist/wizard/steps/location-step.js +2 -2
  125. package/dist/wizard/steps/location-step.js.map +1 -1
  126. package/package.json +1 -1
package/README.md CHANGED
@@ -14,6 +14,7 @@ A local-first CLI coding agent that brings the power of agentic coding tools lik
14
14
  - [AI Provider Setup](#ai-provider-setup)
15
15
  - [MCP (Model Context Protocol) Servers](#mcp-model-context-protocol-servers)
16
16
  - [User Preferences](#user-preferences)
17
+ - [Application Data Directory](#application-data-directory)
17
18
  - [Commands](#commands)
18
19
  - [Built-in Commands](#built-in-commands)
19
20
  - [Custom Commands](#custom-commands)
@@ -183,7 +184,7 @@ Nanocoder looks for configuration in the following order (first found wins):
183
184
  - Use this for project-specific providers, models, or API keys
184
185
  - Perfect for team sharing or repository-specific configurations
185
186
 
186
- 2. **User-level (preferred)**: Platform-specific application data directory
187
+ 2. **User-level (preferred)**: Platform-specific configuration directory
187
188
 
188
189
  - **macOS**: `~/Library/Preferences/nanocoder/agents.config.json`
189
190
  - **Linux/Unix**: `~/.config/nanocoder/agents.config.json`
@@ -191,6 +192,8 @@ Nanocoder looks for configuration in the following order (first found wins):
191
192
  - Your global default configuration
192
193
  - Used when no project-level config exists
193
194
 
195
+ You can override this global configuration directory by setting `NANOCODER_CONFIG_DIR`. When set, Nanocoder will look for `agents.config.json` and related config files directly in this directory.
196
+
194
197
  3. **User-level (legacy)**: `~/.agents.config.json`
195
198
  - Supported for backward compatibility
196
199
  - Recommended to migrate to platform-specific location above
@@ -263,6 +266,9 @@ Nanocoder looks for configuration in the following order (first found wins):
263
266
 
264
267
  Keep API keys out of version control using environment variables. Variables are loaded from shell environment (`.bashrc`, `.zshrc`) or `.env` file in your working directory.
265
268
 
269
+ - `NANOCODER_CONFIG_DIR`: Override the global configuration directory.
270
+ - `NANOCODER_DATA_DIR`: Override the application data directory used for internal data like usage statistics.
271
+
266
272
  **Syntax:** `$VAR_NAME`, `${VAR_NAME}`, or `${VAR_NAME:-default}`
267
273
  **Supported in:** `baseUrl`, `apiKey`, `models`, MCP server `command`, `args`, `env`
268
274
 
@@ -402,6 +408,16 @@ Preferences follow the same location hierarchy as configuration files:
402
408
  - View current preferences: The file is human-readable JSON
403
409
  - Reset preferences: Delete any `nanocoder-preferences.json` to start fresh
404
410
 
411
+ ### Application Data Directory
412
+
413
+ Nanocoder stores internal application data (such as usage statistics) in a separate application data directory:
414
+
415
+ - **macOS**: `~/Library/Application Support/nanocoder`
416
+ - **Linux/Unix**: `$XDG_DATA_HOME/nanocoder` or `~/.local/share/nanocoder`
417
+ - **Windows**: `%APPDATA%\nanocoder`
418
+
419
+ You can override this directory using `NANOCODER_DATA_DIR`.
420
+
405
421
  ### Commands
406
422
 
407
423
  #### Built-in Commands
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../source/commands/init.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAmNtC,eAAO,MAAM,WAAW,EAAE,OAqHzB,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../source/commands/init.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAkMtC,eAAO,MAAM,WAAW,EAAE,OA6GzB,CAAC"}
@@ -12,29 +12,11 @@ import { AgentsTemplateGenerator } from '../init/agents-template-generator.js';
12
12
  import { ExistingRulesExtractor } from '../init/existing-rules-extractor.js';
13
13
  function InitSuccess({ created, analysis, }) {
14
14
  const boxWidth = useTerminalWidth();
15
- return (_jsxs(TitledBox, { borderStyle: "round", titles: ['Project Initialized'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.primary, paddingX: 2, paddingY: 1, flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.primary, bold: true, children: "\u2713 Nanocoder project initialized successfully!" }) }), analysis && (_jsxs(_Fragment, { children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.white, bold: true, children: "Project Analysis:" }) }), _jsxs(Text, { color: colors.secondary, children: ["\u2022 Type: ", analysis.projectType] }), _jsxs(Text, { color: colors.secondary, children: ["\u2022 Primary Language: ", analysis.primaryLanguage] }), analysis.frameworks.length > 0 && (_jsxs(Text, { color: colors.secondary, children: ["\u2022 Frameworks: ", analysis.frameworks.slice(0, 3).join(', ')] })), _jsxs(Text, { color: colors.secondary, children: ["\u2022 Files Analyzed: ", analysis.totalFiles] }), _jsx(Box, { marginBottom: 1 })] })), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.white, bold: true, children: "Files Created:" }) }), created.map((item, index) => (_jsxs(Text, { color: colors.secondary, children: ["\u2022 ", item] }, index))), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: colors.white, children: "Your project is now ready for AI-assisted development!" }), _jsx(Text, { color: colors.secondary, children: "The AGENTS.md file will help AI understand your project context." })] })] }));
15
+ return (_jsxs(TitledBox, { borderStyle: "round", titles: ['Project Initialized'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.primary, paddingX: 2, paddingY: 1, flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.primary, bold: true, children: "\u2713 Nanocoder project initialized successfully!" }) }), analysis && (_jsxs(_Fragment, { children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.white, bold: true, children: "Project Analysis:" }) }), _jsxs(Text, { color: colors.secondary, children: ["\u2022 Type: ", analysis.projectType] }), _jsxs(Text, { color: colors.secondary, children: ["\u2022 Primary Language: ", analysis.primaryLanguage] }), analysis.frameworks.length > 0 && (_jsxs(Text, { color: colors.secondary, children: ["\u2022 Frameworks: ", analysis.frameworks.slice(0, 3).join(', ')] })), _jsxs(Text, { color: colors.secondary, children: ["\u2022 Files Analyzed: ", analysis.totalFiles] }), _jsx(Box, { marginBottom: 1 })] })), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.white, bold: true, children: "Files Created:" }) }), created.map((item, index) => (_jsxs(Text, { color: colors.secondary, children: ["\u2022 ", item] }, index))), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.white, children: "Your project is now ready for AI-assisted development!" }) }), _jsx(Text, { color: colors.secondary, children: "The AGENTS.md file will help AI understand your project context." })] })] }));
16
16
  }
17
17
  function InitError({ message }) {
18
- return _jsx(ErrorMessage, { message: `✗ ${message}` });
18
+ return _jsx(ErrorMessage, { hideBox: true, message: `✗ ${message}` });
19
19
  }
20
- const DEFAULT_CONFIG = {
21
- nanocoder: {
22
- providers: [
23
- {
24
- name: 'OpenRouter',
25
- baseUrl: 'https://openrouter.ai/api/v1',
26
- apiKey: 'your-openrouter-api-key-here',
27
- models: ['openai/gpt-4o-mini', 'anthropic/claude-3-haiku'],
28
- },
29
- {
30
- name: 'Local Ollama',
31
- baseUrl: 'http://localhost:11434/v1',
32
- models: ['llama3.2', 'qwen2.5-coder'],
33
- },
34
- ],
35
- mcpServers: [],
36
- },
37
- };
38
20
  // Enhanced example commands based on detected project type
39
21
  const getExampleCommands = (projectType, primaryLanguage) => {
40
22
  const baseCommands = {
@@ -133,17 +115,15 @@ export const initCommand = {
133
115
  const created = [];
134
116
  try {
135
117
  // Check if already initialized
136
- const configPath = join(cwd, 'agents.config.json');
137
118
  const agentsPath = join(cwd, 'AGENTS.md');
138
119
  const nanocoderDir = join(cwd, '.nanocoder');
139
120
  // Check for existing initialization
140
- const hasConfig = existsSync(configPath);
141
121
  const hasAgents = existsSync(agentsPath);
142
122
  const hasNanocoder = existsSync(nanocoderDir);
143
- if (hasConfig && hasAgents && hasNanocoder) {
123
+ if (hasAgents && hasNanocoder) {
144
124
  return Promise.resolve(React.createElement(InitError, {
145
125
  key: `init-error-${Date.now()}`,
146
- message: 'Project already fully initialized. Found agents.config.json, AGENTS.md, and .nanocoder/ directory.',
126
+ message: 'Project already initialized. Found AGENTS.md and .nanocoder/ directory.',
147
127
  }));
148
128
  }
149
129
  // Show progress indicator for analysis
@@ -155,11 +135,6 @@ export const initCommand = {
155
135
  // Extract existing AI configuration files
156
136
  const rulesExtractor = new ExistingRulesExtractor(cwd);
157
137
  const existingRules = rulesExtractor.extractExistingRules();
158
- // Create agents.config.json if it doesn't exist
159
- if (!hasConfig) {
160
- writeFileSync(configPath, JSON.stringify(DEFAULT_CONFIG, null, 2));
161
- created.push('agents.config.json');
162
- }
163
138
  // Create AGENTS.md based on analysis and existing rules
164
139
  if (!hasAgents) {
165
140
  const agentsContent = AgentsTemplateGenerator.generateAgentsMd(analysis, existingRules);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../source/commands/init.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../source/commands/init.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC1D,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAC,MAAM,IAAI,CAAC;AACxD,OAAO,EAAC,IAAI,EAAC,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAC,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAC,uBAAuB,EAAC,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAC,sBAAsB,EAAC,MAAM,iCAAiC,CAAC;AAEvE,SAAS,WAAW,CAAC,EACpB,OAAO,EACP,QAAQ,GASR;IACA,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,OAAO,CACN,MAAC,SAAS,IACT,WAAW,EAAC,OAAO,EACnB,MAAM,EAAE,CAAC,qBAAqB,CAAC,EAC/B,WAAW,EAAE,WAAW,CAAC,IAAI,EAC7B,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,MAAM,CAAC,OAAO,EAC3B,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,aAAa,EAAC,QAAQ,EACtB,YAAY,EAAE,CAAC,aAEf,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YACnB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,yEAE1B,GACF,EAEL,QAAQ,IAAI,CACZ,8BACC,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YACnB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,wCAExB,GACF,EACN,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,8BAAW,QAAQ,CAAC,WAAW,IAAQ,EACpE,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,0CACP,QAAQ,CAAC,eAAe,IACvC,EACN,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAClC,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,oCACb,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IACnD,CACP,EACD,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,wCACT,QAAQ,CAAC,UAAU,IAChC,EACP,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,GAAI,IACtB,CACH,EAED,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YACnB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,qCAExB,GACF,EAEL,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC7B,MAAC,IAAI,IAAa,KAAK,EAAE,MAAM,CAAC,SAAS,wBACrC,IAAI,KADG,KAAK,CAET,CACP,CAAC,EAEF,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACxC,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YACnB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,uEAElB,GACF,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,iFAEtB,IACF,IACK,CACZ,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAC,OAAO,EAAoB;IAC9C,OAAO,KAAC,YAAY,IAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,GAAI,CAAC;AACjE,CAAC;AAED,2DAA2D;AAC3D,MAAM,kBAAkB,GAAG,CAAC,WAAmB,EAAE,eAAuB,EAAE,EAAE;IAC3E,MAAM,YAAY,GAAG;QACpB,WAAW,EAAE;;;;;;;;;;;;;;0DAc2C;QAExD,SAAS,EAAE;;;;;;;;;;;;;;;yDAe4C;KACvD,CAAC;IAEF,2CAA2C;IAC3C,MAAM,kBAAkB,GAA4B,EAAE,CAAC;IAEvD,IAAI,eAAe,KAAK,YAAY,IAAI,eAAe,KAAK,YAAY,EAAE,CAAC;QAC1E,kBAAkB,CAAC,aAAa,CAAC,GAAG;;;;;;;;;;;;;;iDAcW,CAAC;IACjD,CAAC;IAED,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;QAClC,kBAAkB,CAAC,aAAa,CAAC,GAAG;;;;;;;;;;;;;;sCAcA,CAAC;IACtC,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,kBAAkB,CAAC,cAAc,CAAC,GAAG;;;;;;;;;;;;;;sCAcD,CAAC;IACtC,CAAC;IAED,OAAO,EAAC,GAAG,YAAY,EAAE,GAAG,kBAAkB,EAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAY;IACnC,IAAI,EAAE,MAAM;IACZ,WAAW,EACV,kEAAkE;IACnE,OAAO,EAAE,CAAC,KAAe,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE;QAClD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,IAAI,CAAC;YACJ,+BAA+B;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAE7C,oCAAoC;YACpC,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;YAE9C,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;gBAC/B,OAAO,OAAO,CAAC,OAAO,CACrB,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;oBAC9B,GAAG,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE;oBAC/B,OAAO,EACN,yEAAyE;iBAC1E,CAAC,CACF,CAAC;YACH,CAAC;YAED,uCAAuC;YACvC,4EAA4E;YAC5E,+CAA+C;YAE/C,sBAAsB;YACtB,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YAEpC,0CAA0C;YAC1C,MAAM,cAAc,GAAG,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC;YACvD,MAAM,aAAa,GAAG,cAAc,CAAC,oBAAoB,EAAE,CAAC;YAE5D,wDAAwD;YACxD,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,MAAM,aAAa,GAAG,uBAAuB,CAAC,gBAAgB,CAC7D,QAAQ,EACR,aAAa,CACb,CAAC;gBACF,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE1B,8BAA8B;gBAC9B,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChE,OAAO,CAAC,IAAI,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAC;gBACvD,CAAC;YACF,CAAC;YAED,wCAAwC;YACxC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnB,SAAS,CAAC,YAAY,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7B,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC9B,SAAS,CAAC,WAAW,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACtC,CAAC;YAED,2DAA2D;YAC3D,MAAM,eAAe,GAAG,kBAAkB,CACzC,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,IAAI,SAAS,CAC7C,CAAC;YAEF,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC7C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3B,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACjC,OAAO,CAAC,IAAI,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;gBACjD,CAAC;YACF,CAAC;YAED,uCAAuC;YACvC,MAAM,eAAe,GAAG;gBACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,eAAe,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,IAAI,SAAS;gBAC9D,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAC/C,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAC7B;gBACD,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,YAAY;aAC3C,CAAC;YAEF,OAAO,OAAO,CAAC,OAAO,CACrB,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;gBAChC,GAAG,EAAE,gBAAgB,IAAI,CAAC,GAAG,EAAE,EAAE;gBACjC,OAAO;gBACP,QAAQ,EAAE,eAAe;aACzB,CAAC,CACF,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACzB,MAAM,YAAY,GACjB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC1D,OAAO,OAAO,CAAC,OAAO,CACrB,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE;gBAC9B,GAAG,EAAE,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE;gBAC/B,OAAO,EAAE,iCAAiC,YAAY,EAAE;aACxD,CAAC,CACF,CAAC;QACH,CAAC;IACF,CAAC;CACD,CAAC"}
@@ -1,3 +1,9 @@
1
1
  import { Command } from '../types/index.js';
2
+ /**
3
+ * Determines if a command execution failed based on multiple signals.
4
+ * Checks exit code first (most reliable), then looks for specific error patterns.
5
+ * Exported for testing purposes.
6
+ */
7
+ export declare function hasCommandFailed(output: string): boolean;
2
8
  export declare const updateCommand: Command;
3
9
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../source/commands/update.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAOtC,eAAO,MAAM,aAAa,EAAE,OA0C3B,CAAC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../source/commands/update.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAStC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAyDxD;AAED,eAAO,MAAM,aAAa,EAAE,OAiF3B,CAAC"}
@@ -3,6 +3,65 @@ import { logInfo, logError } from '../utils/message-queue.js';
3
3
  import { toolRegistry } from '../tools/index.js';
4
4
  import React from 'react';
5
5
  import SuccessMessage from '../components/success-message.js';
6
+ import InfoMessage from '../components/info-message.js';
7
+ import ErrorMessage from '../components/error-message.js';
8
+ /**
9
+ * Determines if a command execution failed based on multiple signals.
10
+ * Checks exit code first (most reliable), then looks for specific error patterns.
11
+ * Exported for testing purposes.
12
+ */
13
+ export function hasCommandFailed(output) {
14
+ const outputStr = String(output || '');
15
+ // Strategy 1: Check exit code (most reliable)
16
+ const exitCodeMatch = outputStr.match(/^EXIT_CODE:\s*(\d+)/m);
17
+ if (exitCodeMatch) {
18
+ const exitCode = parseInt(exitCodeMatch[1], 10);
19
+ // Non-zero exit code indicates failure
20
+ if (exitCode !== 0) {
21
+ return true;
22
+ }
23
+ }
24
+ // Strategy 2: Check for critical error patterns
25
+ // Use word boundaries and case-sensitive matching to avoid false positives
26
+ const normalized = outputStr.toLowerCase();
27
+ // Critical errors that definitively indicate failure
28
+ const criticalErrors = [
29
+ /\bcommand not found\b/i,
30
+ /\bno such file or directory\b/i,
31
+ /\bpermission denied\b/i,
32
+ /^error:/im, // Error at start of line
33
+ /\berror:\s*(?!0\b)/i, // "error:" not followed by 0
34
+ /\bfatal\b/i,
35
+ /\bfailed\b/i,
36
+ /\bcannot\b/i,
37
+ ];
38
+ for (const pattern of criticalErrors) {
39
+ if (pattern.test(normalized)) {
40
+ // Additional check: avoid false positives for success messages
41
+ // like "0 errors", "error-free", "no errors found"
42
+ if (/0\s*errors?|error-?free|no\s*errors?\s*found/i.test(normalized)) {
43
+ continue;
44
+ }
45
+ return true;
46
+ }
47
+ }
48
+ // Strategy 3: Check if STDERR has content (warning: not always an error)
49
+ // Some tools write progress to stderr, so this is a weak signal
50
+ // Only use this if no other signals present
51
+ const hasStderr = /^STDERR:\s*\S/m.test(outputStr);
52
+ if (hasStderr) {
53
+ // Check if stderr contains actual error indicators, not just warnings/info
54
+ const stderrMatch = outputStr.match(/^STDERR:\s*([\s\S]*?)(?:^STDOUT:|$)/m);
55
+ if (stderrMatch) {
56
+ const stderrContent = stderrMatch[1].toLowerCase();
57
+ // Only treat as error if stderr contains error-like content
58
+ if (/\berror\b|\bfatal\b|\bfailed\b|\bcannot\b/i.test(stderrContent)) {
59
+ return true;
60
+ }
61
+ }
62
+ }
63
+ return false;
64
+ }
6
65
  export const updateCommand = {
7
66
  name: 'update',
8
67
  description: 'Update Nanocoder to the latest version',
@@ -14,20 +73,52 @@ export const updateCommand = {
14
73
  if (updateInfo.hasUpdate) {
15
74
  // Show updating message
16
75
  logInfo('Downloading and installing the latest Nanocoder update...', true);
17
- // Run the update command
18
- await toolRegistry.execute_bash({
19
- command: 'npm update -g @nanocollective/nanocoder',
20
- });
21
- // Show success message
22
- return React.createElement(SuccessMessage, {
23
- message: 'Nanocoder has been updated to the latest version. Please restart your session to apply the update.',
76
+ // Run update command if provided; otherwise show informative message
77
+ if (updateInfo.updateCommand) {
78
+ try {
79
+ const result = await toolRegistry.execute_bash({
80
+ command: updateInfo.updateCommand,
81
+ });
82
+ // Check for command failure using multiple strategies
83
+ if (hasCommandFailed(result)) {
84
+ logError('Update command executed but returned an error', true);
85
+ return React.createElement(ErrorMessage, {
86
+ message: `Update command failed. Output: ${String(result)}`,
87
+ hideBox: true,
88
+ });
89
+ }
90
+ // Show success message
91
+ return React.createElement(SuccessMessage, {
92
+ message: 'Nanocoder has been updated to the latest version. Please restart your session to apply the update.',
93
+ hideBox: true,
94
+ });
95
+ }
96
+ catch (err) {
97
+ const errorMessage = err instanceof Error ? err.message : String(err);
98
+ logError(`Failed to execute update command: ${errorMessage}`, true);
99
+ return React.createElement(ErrorMessage, {
100
+ message: `Failed to execute update command: ${errorMessage}`,
101
+ hideBox: true,
102
+ });
103
+ }
104
+ }
105
+ if (updateInfo.updateMessage) {
106
+ // We cannot run an automated update; show instructions to user
107
+ return React.createElement(InfoMessage, {
108
+ message: updateInfo.updateMessage,
109
+ hideBox: true,
110
+ });
111
+ }
112
+ // Fallback for unknown installation method
113
+ return React.createElement(InfoMessage, {
114
+ message: 'A new version is available. Please update using your package manager.',
24
115
  hideBox: true,
25
116
  });
26
117
  }
27
118
  else {
28
119
  // Already up to date
29
- return React.createElement(SuccessMessage, {
30
- message: 'Nanocoder is already up to date.',
120
+ return React.createElement(InfoMessage, {
121
+ message: 'You are already on the latest version.',
31
122
  hideBox: true,
32
123
  });
33
124
  }
@@ -35,7 +126,10 @@ export const updateCommand = {
35
126
  catch (error) {
36
127
  const errorMessage = error instanceof Error ? error.message : String(error);
37
128
  logError(`Failed to update Nanocoder: ${errorMessage}`, true);
38
- return React.createElement(React.Fragment);
129
+ return React.createElement(ErrorMessage, {
130
+ message: `Failed to check for updates: ${errorMessage}`,
131
+ hideBox: true,
132
+ });
39
133
  }
40
134
  },
41
135
  };
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../source/commands/update.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAE1D,MAAM,CAAC,MAAM,aAAa,GAAY;IACrC,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,wCAAwC;IACrD,OAAO,EAAE,KAAK,EAAE,KAAe,EAAE,EAAE;QAClC,gCAAgC;QAChC,OAAO,CAAC,mCAAmC,EAAE,IAAI,CAAC,CAAC;QAEnD,IAAI,CAAC;YACJ,MAAM,UAAU,GAAG,MAAM,eAAe,EAAE,CAAC;YAE3C,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBAC1B,wBAAwB;gBACxB,OAAO,CACN,2DAA2D,EAC3D,IAAI,CACJ,CAAC;gBAEF,yBAAyB;gBACzB,MAAM,YAAY,CAAC,YAAY,CAAC;oBAC/B,OAAO,EAAE,yCAAyC;iBAClD,CAAC,CAAC;gBAEH,uBAAuB;gBACvB,OAAO,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE;oBAC1C,OAAO,EACN,oGAAoG;oBACrG,OAAO,EAAE,IAAI;iBACb,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACP,qBAAqB;gBACrB,OAAO,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE;oBAC1C,OAAO,EAAE,kCAAkC;oBAC3C,OAAO,EAAE,IAAI;iBACb,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,YAAY,GACjB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxD,QAAQ,CAAC,+BAA+B,YAAY,EAAE,EAAE,IAAI,CAAC,CAAC;YAC9D,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;IACF,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../source/commands/update.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,5 @@
1
1
  import type { ThemePreset } from '../types/ui.js';
2
- interface UpdateInfo {
3
- hasUpdate: boolean;
4
- currentVersion: string;
5
- latestVersion?: string;
6
- updateCommand?: string;
7
- }
2
+ import type { UpdateInfo } from '../types/utils.js';
8
3
  declare const _default: import("react").NamedExoticComponent<{
9
4
  provider: string;
10
5
  model: string;
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../source/components/status.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAK5C,UAAU,UAAU;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;;cASU,MAAM;WACT,MAAM;WACN,WAAW;iBACL,UAAU,GAAG,IAAI;qBACb,OAAO;;AAXzB,wBAuHG"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../source/components/status.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;;cAcnC,MAAM;WACT,MAAM;WACN,WAAW;iBACL,UAAU,GAAG,IAAI;qBACb,OAAO;;AAXzB,wBAkIG"}
@@ -8,6 +8,7 @@ import { confDirMap } from '../config/index.js';
8
8
  import { themes, getThemeColors } from '../config/themes.js';
9
9
  // Get CWD once at module load time
10
10
  const cwd = process.cwd();
11
+ // Using UpdateInfo from '../types/utils.js' for type consistency
11
12
  export default memo(function Status({ provider, model, theme, updateInfo, agentsMdLoaded, }) {
12
13
  const { boxWidth, isNarrow, truncatePath } = useResponsiveTerminal();
13
14
  const colors = getThemeColors(theme);
@@ -15,8 +16,8 @@ export default memo(function Status({ provider, model, theme, updateInfo, agents
15
16
  const hasAgentsMd = agentsMdLoaded ?? existsSync(`${cwd}/AGENTS.md`);
16
17
  // Calculate max path length based on terminal size
17
18
  const maxPathLength = isNarrow ? 30 : 60;
18
- return (_jsx(_Fragment, { children: isNarrow ? (_jsxs(Box, { flexDirection: "column", marginBottom: 1, borderStyle: "round", borderColor: colors.info, paddingY: 1, paddingX: 2, children: [_jsxs(Text, { color: colors.info, children: [_jsx(Text, { bold: true, children: "CWD: " }), truncatePath(cwd, maxPathLength)] }), _jsxs(Text, { color: colors.success, children: [_jsx(Text, { bold: true, children: "Model: " }), model] }), _jsxs(Text, { color: colors.primary, children: [_jsx(Text, { bold: true, children: "Theme: " }), themes[theme].displayName] }), hasAgentsMd ? (_jsx(Text, { color: colors.secondary, italic: true, children: "\u2713 AGENTS.md" })) : (_jsx(Text, { color: colors.secondary, italic: true, children: "\u2717 No AGENTS.md" })), updateInfo?.hasUpdate && (_jsxs(Text, { color: colors.warning, children: ["\u26A0 v", updateInfo.currentVersion, " \u2192 v", updateInfo.latestVersion] }))] })) : (
19
+ return (_jsx(_Fragment, { children: isNarrow ? (_jsxs(Box, { flexDirection: "column", marginBottom: 1, borderStyle: "round", borderColor: colors.info, paddingY: 1, paddingX: 2, children: [_jsxs(Text, { color: colors.info, children: [_jsx(Text, { bold: true, children: "CWD: " }), truncatePath(cwd, maxPathLength)] }), _jsxs(Text, { color: colors.success, children: [_jsx(Text, { bold: true, children: "Model: " }), model] }), _jsxs(Text, { color: colors.primary, children: [_jsx(Text, { bold: true, children: "Theme: " }), themes[theme].displayName] }), hasAgentsMd ? (_jsx(Text, { color: colors.secondary, italic: true, children: "\u2713 AGENTS.md" })) : (_jsx(Text, { color: colors.secondary, italic: true, children: "\u2717 No AGENTS.md" })), updateInfo?.hasUpdate && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: colors.warning, children: ["\u26A0 v", updateInfo.currentVersion, " \u2192 v", updateInfo.latestVersion] }), updateInfo.updateCommand ? (_jsxs(Text, { color: colors.secondary, children: ["\u21B3 Run: /update or ", updateInfo.updateCommand] })) : updateInfo.updateMessage ? (_jsx(Text, { color: colors.secondary, children: updateInfo.updateMessage })) : null] }))] })) : (
19
20
  /* Normal/Wide terminal: full layout with TitledBox */
20
- _jsxs(TitledBox, { borderStyle: "round", titles: ['Status'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.info, paddingX: 2, paddingY: 1, flexDirection: "column", marginBottom: 1, children: [_jsxs(Text, { color: colors.info, children: [_jsx(Text, { bold: true, children: "CWD: " }), truncatePath(cwd, maxPathLength)] }), _jsxs(Text, { color: colors.info, children: [_jsx(Text, { bold: true, children: "Config: " }), truncatePath(confDirMap['agents.config.json'], maxPathLength)] }), _jsxs(Text, { color: colors.success, children: [_jsx(Text, { bold: true, children: "Provider: " }), provider, ", ", _jsx(Text, { bold: true, children: "Model: " }), model] }), _jsxs(Text, { color: colors.primary, children: [_jsx(Text, { bold: true, children: "Theme: " }), themes[theme].displayName] }), hasAgentsMd ? (_jsx(Text, { color: colors.secondary, italic: true, children: _jsx(Text, { children: "\u21B3 Using AGENTS.md. Project initialized" }) })) : (_jsx(Text, { color: colors.secondary, italic: true, children: "\u21B3 No AGENTS.md file found, run `/init` to initialize this directory" })), updateInfo?.hasUpdate && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: colors.warning, children: [_jsx(Text, { bold: true, children: "Update Available: " }), "v", updateInfo.currentVersion, " \u2192 v", updateInfo.latestVersion] }), updateInfo.updateCommand && (_jsxs(Text, { color: colors.secondary, children: ["\u21B3 Run: /update or ", updateInfo.updateCommand] }))] }))] }, colors.primary)) }));
21
+ _jsxs(TitledBox, { borderStyle: "round", titles: ['Status'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.info, paddingX: 2, paddingY: 1, flexDirection: "column", marginBottom: 1, children: [_jsxs(Text, { color: colors.info, children: [_jsx(Text, { bold: true, children: "CWD: " }), truncatePath(cwd, maxPathLength)] }), _jsxs(Text, { color: colors.info, children: [_jsx(Text, { bold: true, children: "Config: " }), truncatePath(confDirMap['agents.config.json'], maxPathLength)] }), _jsxs(Text, { color: colors.success, children: [_jsx(Text, { bold: true, children: "Provider: " }), provider, ", ", _jsx(Text, { bold: true, children: "Model: " }), model] }), _jsxs(Text, { color: colors.primary, children: [_jsx(Text, { bold: true, children: "Theme: " }), themes[theme].displayName] }), hasAgentsMd ? (_jsx(Text, { color: colors.secondary, italic: true, children: _jsx(Text, { children: "\u21B3 Using AGENTS.md. Project initialized" }) })) : (_jsx(Text, { color: colors.secondary, italic: true, children: "\u21B3 No AGENTS.md file found, run `/init` to initialize this directory" })), updateInfo?.hasUpdate && (_jsxs(_Fragment, { children: [_jsxs(Text, { color: colors.warning, children: [_jsx(Text, { bold: true, children: "Update Available: " }), "v", updateInfo.currentVersion, " \u2192 v", updateInfo.latestVersion] }), updateInfo.updateCommand ? (_jsxs(Text, { color: colors.secondary, children: ["\u21B3 Run: /update or ", updateInfo.updateCommand] })) : updateInfo.updateMessage ? (_jsx(Text, { color: colors.secondary, children: updateInfo.updateMessage })) : null] }))] }, colors.primary)) }));
21
22
  });
22
23
  //# sourceMappingURL=status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../source/components/status.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../source/components/status.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-confirmation.d.ts","sourceRoot":"","sources":["../../source/components/tool-confirmation.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAK3C,UAAU,qBAAqB;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACrB;AAOD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACxC,QAAQ,EACR,SAAS,EACT,QAAQ,GACR,EAAE,qBAAqB,2CA0KvB"}
1
+ {"version":3,"file":"tool-confirmation.d.ts","sourceRoot":"","sources":["../../source/components/tool-confirmation.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAO3C,UAAU,qBAAqB;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACrB;AAOD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACxC,QAAQ,EACR,SAAS,EACT,QAAQ,GACR,EAAE,qBAAqB,2CA0JvB"}
@@ -6,6 +6,8 @@ import { useTheme } from '../hooks/useTheme.js';
6
6
  import { toolFormatters } from '../tools/index.js';
7
7
  import { useTerminalWidth } from '../hooks/useTerminalWidth.js';
8
8
  import { getToolManager } from '../message-handler.js';
9
+ import { parseToolArguments } from '../utils/tool-args-parser.js';
10
+ import { formatError } from '../utils/error-formatter.js';
9
11
  export default function ToolConfirmation({ toolCall, onConfirm, onCancel, }) {
10
12
  const boxWidth = useTerminalWidth();
11
13
  const { colors } = useTheme();
@@ -28,15 +30,7 @@ export default function ToolConfirmation({ toolCall, onConfirm, onCancel, }) {
28
30
  if (validator) {
29
31
  try {
30
32
  // Parse arguments if they're a JSON string
31
- let parsedArgs = toolCall.function.arguments;
32
- if (typeof parsedArgs === 'string') {
33
- try {
34
- parsedArgs = JSON.parse(parsedArgs);
35
- }
36
- catch {
37
- // If parsing fails, use as-is
38
- }
39
- }
33
+ const parsedArgs = parseToolArguments(toolCall.function.arguments);
40
34
  const validationResult = await validator(parsedArgs);
41
35
  if (!validationResult.valid) {
42
36
  setValidationError(validationResult.error);
@@ -47,7 +41,7 @@ export default function ToolConfirmation({ toolCall, onConfirm, onCancel, }) {
47
41
  }
48
42
  catch (error) {
49
43
  console.error('Error running validator:', error);
50
- const errorMsg = `Validation error: ${error instanceof Error ? error.message : String(error)}`;
44
+ const errorMsg = `Validation error: ${formatError(error)}`;
51
45
  setValidationError(errorMsg);
52
46
  setHasValidationError(true);
53
47
  setFormatterPreview(_jsx(Text, { color: colors.error, children: errorMsg }));
@@ -60,15 +54,7 @@ export default function ToolConfirmation({ toolCall, onConfirm, onCancel, }) {
60
54
  setIsLoadingPreview(true);
61
55
  try {
62
56
  // Parse arguments if they're a JSON string
63
- let parsedArgs = toolCall.function.arguments;
64
- if (typeof parsedArgs === 'string') {
65
- try {
66
- parsedArgs = JSON.parse(parsedArgs);
67
- }
68
- catch {
69
- // If parsing fails, use as-is
70
- }
71
- }
57
+ const parsedArgs = parseToolArguments(toolCall.function.arguments);
72
58
  const preview = await formatter(parsedArgs);
73
59
  setFormatterPreview(preview);
74
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-confirmation.js","sourceRoot":"","sources":["../../source/components/tool-confirmation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-confirmation.js","sourceRoot":"","sources":["../../source/components/tool-confirmation.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"user-input.d.ts","sourceRoot":"","sources":["../../source/components/user-input.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAC,eAAe,EAA0B,MAAM,cAAc,CAAC;AAOtE,UAAU,SAAS;IAClB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EACjC,QAAQ,EACR,WAAW,EACX,cAAmB,EACnB,QAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,eAA0B,GAC1B,EAAE,SAAS,2CAwcX"}
1
+ {"version":3,"file":"user-input.d.ts","sourceRoot":"","sources":["../../source/components/user-input.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAC,eAAe,EAA0B,MAAM,cAAc,CAAC;AAOtE,UAAU,SAAS;IAClB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EACjC,QAAQ,EACR,WAAW,EACX,cAAmB,EACnB,QAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,eAA0B,GAC1B,EAAE,SAAS,2CA6eX"}