@nanocollective/nanocoder 1.14.3 → 1.15.1

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 (192) hide show
  1. package/README.md +31 -1
  2. package/dist/ai-sdk-client.d.ts +22 -0
  3. package/dist/ai-sdk-client.d.ts.map +1 -0
  4. package/dist/ai-sdk-client.js +389 -0
  5. package/dist/ai-sdk-client.js.map +1 -0
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js +1 -1
  8. package/dist/app.js.map +1 -1
  9. package/dist/client-factory.d.ts.map +1 -1
  10. package/dist/client-factory.js +5 -5
  11. package/dist/client-factory.js.map +1 -1
  12. package/dist/commands/index.d.ts +1 -0
  13. package/dist/commands/index.d.ts.map +1 -1
  14. package/dist/commands/index.js +1 -0
  15. package/dist/commands/index.js.map +1 -1
  16. package/dist/commands/recommendations.js +1 -1
  17. package/dist/commands/recommendations.js.map +1 -1
  18. package/dist/commands/streaming.d.ts +3 -0
  19. package/dist/commands/streaming.d.ts.map +1 -0
  20. package/dist/commands/streaming.js +23 -0
  21. package/dist/commands/streaming.js.map +1 -0
  22. package/dist/commands.d.ts.map +1 -1
  23. package/dist/commands.js +17 -3
  24. package/dist/commands.js.map +1 -1
  25. package/dist/components/assistant-message.d.ts +0 -1
  26. package/dist/components/assistant-message.d.ts.map +1 -1
  27. package/dist/components/assistant-message.js +70 -122
  28. package/dist/components/assistant-message.js.map +1 -1
  29. package/dist/components/thinking-indicator.js +1 -1
  30. package/dist/components/thinking-indicator.js.map +1 -1
  31. package/dist/components/user-input.d.ts.map +1 -1
  32. package/dist/components/user-input.js +135 -27
  33. package/dist/components/user-input.js.map +1 -1
  34. package/dist/components/user-message.d.ts.map +1 -1
  35. package/dist/components/user-message.js +34 -1
  36. package/dist/components/user-message.js.map +1 -1
  37. package/dist/config/index.d.ts.map +1 -1
  38. package/dist/config/index.js +2 -1
  39. package/dist/config/index.js.map +1 -1
  40. package/dist/config/index.spec.d.ts +2 -0
  41. package/dist/config/index.spec.d.ts.map +1 -0
  42. package/dist/config/index.spec.js +99 -0
  43. package/dist/config/index.spec.js.map +1 -0
  44. package/dist/config/preferences.d.ts +2 -0
  45. package/dist/config/preferences.d.ts.map +1 -1
  46. package/dist/config/preferences.js +10 -0
  47. package/dist/config/preferences.js.map +1 -1
  48. package/dist/hooks/useAppInitialization.d.ts.map +1 -1
  49. package/dist/hooks/useAppInitialization.js +2 -1
  50. package/dist/hooks/useAppInitialization.js.map +1 -1
  51. package/dist/hooks/useChatHandler.d.ts +2 -0
  52. package/dist/hooks/useChatHandler.d.ts.map +1 -1
  53. package/dist/hooks/useChatHandler.js +59 -9
  54. package/dist/hooks/useChatHandler.js.map +1 -1
  55. package/dist/mcp/mcp-client.d.ts +20 -1
  56. package/dist/mcp/mcp-client.d.ts.map +1 -1
  57. package/dist/mcp/mcp-client.js +57 -0
  58. package/dist/mcp/mcp-client.js.map +1 -1
  59. package/dist/message-handler.d.ts.map +1 -1
  60. package/dist/message-handler.js +7 -2
  61. package/dist/message-handler.js.map +1 -1
  62. package/dist/tool-calling/index.d.ts +1 -1
  63. package/dist/tool-calling/index.d.ts.map +1 -1
  64. package/dist/tool-calling/index.js +1 -1
  65. package/dist/tool-calling/index.js.map +1 -1
  66. package/dist/tool-calling/json-parser.d.ts +19 -2
  67. package/dist/tool-calling/json-parser.d.ts.map +1 -1
  68. package/dist/tool-calling/json-parser.js +65 -28
  69. package/dist/tool-calling/json-parser.js.map +1 -1
  70. package/dist/tool-calling/json-parser.spec.d.ts +2 -0
  71. package/dist/tool-calling/json-parser.spec.d.ts.map +1 -0
  72. package/dist/tool-calling/json-parser.spec.js +518 -0
  73. package/dist/tool-calling/json-parser.spec.js.map +1 -0
  74. package/dist/tool-calling/tool-parser.d.ts +20 -0
  75. package/dist/tool-calling/tool-parser.d.ts.map +1 -0
  76. package/dist/tool-calling/tool-parser.js +58 -0
  77. package/dist/tool-calling/tool-parser.js.map +1 -0
  78. package/dist/tool-calling/tool-parser.spec.d.ts +2 -0
  79. package/dist/tool-calling/tool-parser.spec.d.ts.map +1 -0
  80. package/dist/tool-calling/tool-parser.spec.js +250 -0
  81. package/dist/tool-calling/tool-parser.spec.js.map +1 -0
  82. package/dist/tool-calling/xml-parser.d.ts +17 -0
  83. package/dist/tool-calling/xml-parser.d.ts.map +1 -1
  84. package/dist/tool-calling/xml-parser.js +101 -13
  85. package/dist/tool-calling/xml-parser.js.map +1 -1
  86. package/dist/tool-calling/xml-parser.spec.d.ts +2 -0
  87. package/dist/tool-calling/xml-parser.spec.d.ts.map +1 -0
  88. package/dist/tool-calling/xml-parser.spec.js +437 -0
  89. package/dist/tool-calling/xml-parser.spec.js.map +1 -0
  90. package/dist/tools/create-file.d.ts.map +1 -1
  91. package/dist/tools/create-file.js +26 -23
  92. package/dist/tools/create-file.js.map +1 -1
  93. package/dist/tools/delete-lines.d.ts.map +1 -1
  94. package/dist/tools/delete-lines.js +29 -27
  95. package/dist/tools/delete-lines.js.map +1 -1
  96. package/dist/tools/execute-bash.d.ts.map +1 -1
  97. package/dist/tools/execute-bash.js +21 -19
  98. package/dist/tools/execute-bash.js.map +1 -1
  99. package/dist/tools/fetch-url.d.ts.map +1 -1
  100. package/dist/tools/fetch-url.js +21 -19
  101. package/dist/tools/fetch-url.js.map +1 -1
  102. package/dist/tools/index.d.ts +2 -2
  103. package/dist/tools/index.d.ts.map +1 -1
  104. package/dist/tools/index.js +8 -6
  105. package/dist/tools/index.js.map +1 -1
  106. package/dist/tools/insert-lines.d.ts.map +1 -1
  107. package/dist/tools/insert-lines.js +29 -27
  108. package/dist/tools/insert-lines.js.map +1 -1
  109. package/dist/tools/read-file.d.ts.map +1 -1
  110. package/dist/tools/read-file.js +23 -19
  111. package/dist/tools/read-file.js.map +1 -1
  112. package/dist/tools/read-many-files.d.ts.map +1 -1
  113. package/dist/tools/read-many-files.js +24 -20
  114. package/dist/tools/read-many-files.js.map +1 -1
  115. package/dist/tools/replace-lines.d.ts.map +1 -1
  116. package/dist/tools/replace-lines.js +33 -31
  117. package/dist/tools/replace-lines.js.map +1 -1
  118. package/dist/tools/search-files.d.ts.map +1 -1
  119. package/dist/tools/search-files.js +33 -31
  120. package/dist/tools/search-files.js.map +1 -1
  121. package/dist/tools/tool-manager.d.ts +35 -19
  122. package/dist/tools/tool-manager.d.ts.map +1 -1
  123. package/dist/tools/tool-manager.js +63 -33
  124. package/dist/tools/tool-manager.js.map +1 -1
  125. package/dist/tools/tool-registry.d.ts +121 -0
  126. package/dist/tools/tool-registry.d.ts.map +1 -0
  127. package/dist/tools/tool-registry.js +195 -0
  128. package/dist/tools/tool-registry.js.map +1 -0
  129. package/dist/tools/web-search.d.ts.map +1 -1
  130. package/dist/tools/web-search.js +25 -23
  131. package/dist/tools/web-search.js.map +1 -1
  132. package/dist/types/config.d.ts +2 -1
  133. package/dist/types/config.d.ts.map +1 -1
  134. package/dist/types/core.d.ts +58 -3
  135. package/dist/types/core.d.ts.map +1 -1
  136. package/dist/types/core.js +2 -0
  137. package/dist/types/core.js.map +1 -1
  138. package/dist/utils/file-autocomplete.d.ts +31 -0
  139. package/dist/utils/file-autocomplete.d.ts.map +1 -0
  140. package/dist/utils/file-autocomplete.js +156 -0
  141. package/dist/utils/file-autocomplete.js.map +1 -0
  142. package/dist/utils/file-autocomplete.spec.d.ts +2 -0
  143. package/dist/utils/file-autocomplete.spec.d.ts.map +1 -0
  144. package/dist/utils/file-autocomplete.spec.js +142 -0
  145. package/dist/utils/file-autocomplete.spec.js.map +1 -0
  146. package/dist/utils/file-content-loader.d.ts +31 -0
  147. package/dist/utils/file-content-loader.d.ts.map +1 -0
  148. package/dist/utils/file-content-loader.js +142 -0
  149. package/dist/utils/file-content-loader.js.map +1 -0
  150. package/dist/utils/file-content-loader.spec.d.ts +2 -0
  151. package/dist/utils/file-content-loader.spec.d.ts.map +1 -0
  152. package/dist/utils/file-content-loader.spec.js +140 -0
  153. package/dist/utils/file-content-loader.spec.js.map +1 -0
  154. package/dist/utils/file-mention-handler.d.ts +21 -0
  155. package/dist/utils/file-mention-handler.d.ts.map +1 -0
  156. package/dist/utils/file-mention-handler.js +59 -0
  157. package/dist/utils/file-mention-handler.js.map +1 -0
  158. package/dist/utils/file-mention-handler.spec.d.ts +2 -0
  159. package/dist/utils/file-mention-handler.spec.d.ts.map +1 -0
  160. package/dist/utils/file-mention-handler.spec.js +147 -0
  161. package/dist/utils/file-mention-handler.spec.js.map +1 -0
  162. package/dist/utils/file-mention-parser.d.ts +40 -0
  163. package/dist/utils/file-mention-parser.d.ts.map +1 -0
  164. package/dist/utils/file-mention-parser.js +122 -0
  165. package/dist/utils/file-mention-parser.js.map +1 -0
  166. package/dist/utils/file-mention-parser.spec.d.ts +2 -0
  167. package/dist/utils/file-mention-parser.spec.d.ts.map +1 -0
  168. package/dist/utils/file-mention-parser.spec.js +149 -0
  169. package/dist/utils/file-mention-parser.spec.js.map +1 -0
  170. package/dist/utils/fuzzy-matching.d.ts +13 -0
  171. package/dist/utils/fuzzy-matching.d.ts.map +1 -0
  172. package/dist/utils/fuzzy-matching.js +127 -0
  173. package/dist/utils/fuzzy-matching.js.map +1 -0
  174. package/dist/utils/fuzzy-matching.spec.d.ts +2 -0
  175. package/dist/utils/fuzzy-matching.spec.d.ts.map +1 -0
  176. package/dist/utils/fuzzy-matching.spec.js +123 -0
  177. package/dist/utils/fuzzy-matching.spec.js.map +1 -0
  178. package/dist/utils/prompt-assembly.spec.js +100 -2
  179. package/dist/utils/prompt-assembly.spec.js.map +1 -1
  180. package/dist/utils/prompt-processor.d.ts +2 -2
  181. package/dist/utils/prompt-processor.d.ts.map +1 -1
  182. package/dist/utils/prompt-processor.js +24 -41
  183. package/dist/utils/prompt-processor.js.map +1 -1
  184. package/package.json +8 -5
  185. package/dist/langgraph-client.d.ts +0 -19
  186. package/dist/langgraph-client.d.ts.map +0 -1
  187. package/dist/langgraph-client.js +0 -295
  188. package/dist/langgraph-client.js.map +0 -1
  189. package/dist/mcp/mcp-tool-adapter.d.ts +0 -22
  190. package/dist/mcp/mcp-tool-adapter.d.ts.map +0 -1
  191. package/dist/mcp/mcp-tool-adapter.js +0 -50
  192. package/dist/mcp/mcp-tool-adapter.js.map +0 -1
@@ -1,72 +1,80 @@
1
- import { tools as staticTools, toolRegistry as staticToolRegistry, toolFormatters as staticToolFormatters, toolValidators as staticToolValidators, } from '../tools/index.js';
1
+ import { toolRegistry as staticToolRegistry, toolFormatters as staticToolFormatters, toolValidators as staticToolValidators, nativeToolsRegistry as staticNativeToolsRegistry, } from '../tools/index.js';
2
2
  import { MCPClient } from '../mcp/mcp-client.js';
3
- import { MCPToolAdapter } from '../mcp/mcp-tool-adapter.js';
3
+ import { ToolRegistry } from '../tools/tool-registry.js';
4
4
  /**
5
5
  * Manages both static tools and dynamic MCP tools
6
+ * All tools are stored in unified ToolEntry format via ToolRegistry
6
7
  */
7
8
  export class ToolManager {
9
+ /**
10
+ * Unified tool registry using ToolRegistry helper class
11
+ */
12
+ registry;
13
+ /**
14
+ * MCP client for dynamic tool discovery and execution
15
+ */
8
16
  mcpClient = null;
9
- mcpAdapter = null;
10
- toolRegistry = {};
11
- toolFormatters = {};
12
- toolValidators = {};
13
- allTools = [];
14
17
  constructor() {
15
- // Initialize with static tools
16
- this.toolRegistry = { ...staticToolRegistry };
17
- this.toolFormatters = { ...staticToolFormatters };
18
- this.toolValidators = { ...staticToolValidators };
19
- this.allTools = [...staticTools];
18
+ // Initialize with static tools using ToolRegistry factory method
19
+ this.registry = ToolRegistry.fromRegistries(staticToolRegistry, staticNativeToolsRegistry, staticToolFormatters, staticToolValidators);
20
20
  }
21
+ /**
22
+ * Initialize MCP servers and register their tools
23
+ */
21
24
  async initializeMCP(servers, onProgress) {
22
25
  if (servers && servers.length > 0) {
23
26
  this.mcpClient = new MCPClient();
24
- this.mcpAdapter = new MCPToolAdapter(this.mcpClient);
25
27
  const results = await this.mcpClient.connectToServers(servers, onProgress);
26
- // Register MCP tools
27
- this.mcpAdapter.registerMCPTools(this.toolRegistry);
28
- // Add MCP tools to the tool list
29
- const mcpTools = this.mcpClient.getAllTools();
30
- this.allTools = [...staticTools, ...mcpTools];
28
+ // Register MCP tools using ToolRegistry
29
+ // getToolEntries() returns structured ToolEntry objects
30
+ const mcpToolEntries = this.mcpClient.getToolEntries();
31
+ this.registry.registerMany(mcpToolEntries);
31
32
  return results;
32
33
  }
33
34
  return [];
34
35
  }
35
36
  /**
36
- * Get all available tools (static + MCP)
37
+ * Get all available native AI SDK tools (static + MCP)
37
38
  */
38
39
  getAllTools() {
39
- return this.allTools;
40
+ return this.registry.getNativeTools();
40
41
  }
41
42
  /**
42
- * Get the tool registry
43
+ * Get all tool handlers
43
44
  */
44
45
  getToolRegistry() {
45
- return this.toolRegistry;
46
+ return this.registry.getHandlers();
46
47
  }
47
48
  /**
48
49
  * Get a specific tool handler
49
50
  */
50
51
  getToolHandler(toolName) {
51
- return this.toolRegistry[toolName];
52
+ return this.registry.getHandler(toolName);
52
53
  }
53
54
  /**
54
55
  * Get a specific tool formatter
55
56
  */
56
57
  getToolFormatter(toolName) {
57
- return this.toolFormatters[toolName];
58
+ return this.registry.getFormatter(toolName);
58
59
  }
59
60
  /**
60
61
  * Get a specific tool validator
61
62
  */
62
63
  getToolValidator(toolName) {
63
- return this.toolValidators[toolName];
64
+ return this.registry.getValidator(toolName);
65
+ }
66
+ /**
67
+ * Get native AI SDK tools registry
68
+ * @deprecated Use getAllTools() instead - they now return the same thing
69
+ */
70
+ getNativeToolsRegistry() {
71
+ return this.registry.getNativeTools();
64
72
  }
65
73
  /**
66
74
  * Check if a tool exists
67
75
  */
68
76
  hasTool(toolName) {
69
- return toolName in this.toolRegistry;
77
+ return this.registry.hasTool(toolName);
70
78
  }
71
79
  /**
72
80
  * Check if a tool is an MCP tool and get server info
@@ -86,20 +94,42 @@ export class ToolManager {
86
94
  return { isMCPTool: false };
87
95
  }
88
96
  /**
89
- * Disconnect MCP servers
97
+ * Disconnect from MCP servers and remove their tools
90
98
  */
91
99
  async disconnectMCP() {
92
- if (this.mcpClient && this.mcpAdapter) {
93
- // Unregister MCP tools
94
- this.mcpAdapter.unregisterMCPTools(this.toolRegistry);
100
+ if (this.mcpClient) {
101
+ // Get list of MCP tool names
102
+ const mcpTools = this.mcpClient.getNativeToolsRegistry();
103
+ const mcpToolNames = Object.keys(mcpTools);
104
+ // Remove all MCP tools from registry in one operation
105
+ this.registry.unregisterMany(mcpToolNames);
95
106
  // Disconnect from servers
96
107
  await this.mcpClient.disconnect();
97
- // Reset to static tools only
98
- this.allTools = [...staticTools];
108
+ // Reset registry to only static tools
109
+ this.registry = ToolRegistry.fromRegistries(staticToolRegistry, staticNativeToolsRegistry, staticToolFormatters, staticToolValidators);
99
110
  this.mcpClient = null;
100
- this.mcpAdapter = null;
101
111
  }
102
112
  }
113
+ /**
114
+ * Get a complete tool entry (all metadata)
115
+ *
116
+ * Returns the full ToolEntry with all components (tool, handler, formatter, validator)
117
+ */
118
+ getToolEntry(toolName) {
119
+ return this.registry.getEntry(toolName);
120
+ }
121
+ /**
122
+ * Get all registered tool names
123
+ */
124
+ getToolNames() {
125
+ return this.registry.getToolNames();
126
+ }
127
+ /**
128
+ * Get total number of registered tools
129
+ */
130
+ getToolCount() {
131
+ return this.registry.getToolCount();
132
+ }
103
133
  /**
104
134
  * Get connected MCP servers
105
135
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tool-manager.js","sourceRoot":"","sources":["../../source/tools/tool-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-manager.js","sourceRoot":"","sources":["../../source/tools/tool-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ import type { ToolEntry, ToolHandler, ToolFormatter, ToolValidator, AISDKCoreTool } from '../types/index.js';
2
+ /**
3
+ * Helper class to encapsulate tool registry management
4
+ *
5
+ * This class provides structured access to tool metadata and eliminates
6
+ * the need to manage multiple separate registries manually.
7
+ *
8
+ * Benefits:
9
+ * - Single source of truth for all tool metadata
10
+ * - Type-safe access to tool components
11
+ * - Cleaner API for tool registration and lookup
12
+ * - Easier to extend with future metadata
13
+ */
14
+ export declare class ToolRegistry {
15
+ private tools;
16
+ /**
17
+ * Register a complete tool entry
18
+ * @param entry - The ToolEntry containing all tool metadata
19
+ */
20
+ register(entry: ToolEntry): void;
21
+ /**
22
+ * Register multiple tool entries at once
23
+ * @param entries - Array of ToolEntry objects
24
+ */
25
+ registerMany(entries: ToolEntry[]): void;
26
+ /**
27
+ * Unregister a tool by name
28
+ * @param name - The tool name
29
+ */
30
+ unregister(name: string): void;
31
+ /**
32
+ * Unregister multiple tools by name
33
+ * @param names - Array of tool names
34
+ */
35
+ unregisterMany(names: string[]): void;
36
+ /**
37
+ * Get a complete tool entry by name
38
+ * @param name - The tool name
39
+ * @returns The ToolEntry or undefined if not found
40
+ */
41
+ getEntry(name: string): ToolEntry | undefined;
42
+ /**
43
+ * Get a tool handler by name
44
+ * @param name - The tool name
45
+ * @returns The ToolHandler or undefined if not found
46
+ */
47
+ getHandler(name: string): ToolHandler | undefined;
48
+ /**
49
+ * Get a tool formatter by name
50
+ * @param name - The tool name
51
+ * @returns The ToolFormatter or undefined if not found
52
+ */
53
+ getFormatter(name: string): ToolFormatter | undefined;
54
+ /**
55
+ * Get a tool validator by name
56
+ * @param name - The tool name
57
+ * @returns The ToolValidator or undefined if not found
58
+ */
59
+ getValidator(name: string): ToolValidator | undefined;
60
+ /**
61
+ * Get the native AI SDK tool by name
62
+ * @param name - The tool name
63
+ * @returns The AISDKCoreTool or undefined if not found
64
+ */
65
+ getTool(name: string): AISDKCoreTool | undefined;
66
+ /**
67
+ * Get all handler entries as a record (compatible with old API)
68
+ * @returns Record mapping tool names to handlers
69
+ */
70
+ getHandlers(): Record<string, ToolHandler>;
71
+ /**
72
+ * Get all formatter entries as a record (compatible with old API)
73
+ * @returns Record mapping tool names to formatters
74
+ */
75
+ getFormatters(): Record<string, ToolFormatter>;
76
+ /**
77
+ * Get all validator entries as a record (compatible with old API)
78
+ * @returns Record mapping tool names to validators
79
+ */
80
+ getValidators(): Record<string, ToolValidator>;
81
+ /**
82
+ * Get all native AI SDK tools as a record (compatible with old API)
83
+ * @returns Record mapping tool names to AISDKCoreTool objects
84
+ */
85
+ getNativeTools(): Record<string, AISDKCoreTool>;
86
+ /**
87
+ * Get all tool entries
88
+ * @returns Array of all ToolEntry objects
89
+ */
90
+ getAllEntries(): ToolEntry[];
91
+ /**
92
+ * Get all tool names
93
+ * @returns Array of all registered tool names
94
+ */
95
+ getToolNames(): string[];
96
+ /**
97
+ * Check if a tool is registered
98
+ * @param name - The tool name
99
+ * @returns True if the tool exists, false otherwise
100
+ */
101
+ hasTool(name: string): boolean;
102
+ /**
103
+ * Get the number of registered tools
104
+ * @returns The count of registered tools
105
+ */
106
+ getToolCount(): number;
107
+ /**
108
+ * Clear all registered tools
109
+ */
110
+ clear(): void;
111
+ /**
112
+ * Create a new registry from static registries (backward compatibility helper)
113
+ * @param handlers - Record of tool handlers
114
+ * @param tools - Record of native AI SDK tools
115
+ * @param formatters - Optional record of tool formatters
116
+ * @param validators - Optional record of tool validators
117
+ * @returns New ToolRegistry instance
118
+ */
119
+ static fromRegistries(handlers: Record<string, ToolHandler>, tools: Record<string, AISDKCoreTool>, formatters?: Record<string, ToolFormatter>, validators?: Record<string, ToolValidator>): ToolRegistry;
120
+ }
121
+ //# sourceMappingURL=tool-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../source/tools/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,SAAS,EACT,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,MAAM,eAAe,CAAC;AAEvB;;;;;;;;;;;GAWG;AACH,qBAAa,YAAY;IACxB,OAAO,CAAC,KAAK,CAAqC;IAElD;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIhC;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;IAMxC;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAMrC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7C;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIjD;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIrD;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIhD;;;OAGG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;IAQ1C;;;OAGG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAU9C;;;OAGG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAU9C;;;OAGG;IACH,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAQ/C;;;OAGG;IACH,aAAa,IAAI,SAAS,EAAE;IAI5B;;;OAGG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B;;;OAGG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;;;;OAOG;IACH,MAAM,CAAC,cAAc,CACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACpC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAC1C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GACxC,YAAY;CAkBf"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Helper class to encapsulate tool registry management
3
+ *
4
+ * This class provides structured access to tool metadata and eliminates
5
+ * the need to manage multiple separate registries manually.
6
+ *
7
+ * Benefits:
8
+ * - Single source of truth for all tool metadata
9
+ * - Type-safe access to tool components
10
+ * - Cleaner API for tool registration and lookup
11
+ * - Easier to extend with future metadata
12
+ */
13
+ export class ToolRegistry {
14
+ tools = new Map();
15
+ /**
16
+ * Register a complete tool entry
17
+ * @param entry - The ToolEntry containing all tool metadata
18
+ */
19
+ register(entry) {
20
+ this.tools.set(entry.name, entry);
21
+ }
22
+ /**
23
+ * Register multiple tool entries at once
24
+ * @param entries - Array of ToolEntry objects
25
+ */
26
+ registerMany(entries) {
27
+ for (const entry of entries) {
28
+ this.register(entry);
29
+ }
30
+ }
31
+ /**
32
+ * Unregister a tool by name
33
+ * @param name - The tool name
34
+ */
35
+ unregister(name) {
36
+ this.tools.delete(name);
37
+ }
38
+ /**
39
+ * Unregister multiple tools by name
40
+ * @param names - Array of tool names
41
+ */
42
+ unregisterMany(names) {
43
+ for (const name of names) {
44
+ this.unregister(name);
45
+ }
46
+ }
47
+ /**
48
+ * Get a complete tool entry by name
49
+ * @param name - The tool name
50
+ * @returns The ToolEntry or undefined if not found
51
+ */
52
+ getEntry(name) {
53
+ return this.tools.get(name);
54
+ }
55
+ /**
56
+ * Get a tool handler by name
57
+ * @param name - The tool name
58
+ * @returns The ToolHandler or undefined if not found
59
+ */
60
+ getHandler(name) {
61
+ return this.tools.get(name)?.handler;
62
+ }
63
+ /**
64
+ * Get a tool formatter by name
65
+ * @param name - The tool name
66
+ * @returns The ToolFormatter or undefined if not found
67
+ */
68
+ getFormatter(name) {
69
+ return this.tools.get(name)?.formatter;
70
+ }
71
+ /**
72
+ * Get a tool validator by name
73
+ * @param name - The tool name
74
+ * @returns The ToolValidator or undefined if not found
75
+ */
76
+ getValidator(name) {
77
+ return this.tools.get(name)?.validator;
78
+ }
79
+ /**
80
+ * Get the native AI SDK tool by name
81
+ * @param name - The tool name
82
+ * @returns The AISDKCoreTool or undefined if not found
83
+ */
84
+ getTool(name) {
85
+ return this.tools.get(name)?.tool;
86
+ }
87
+ /**
88
+ * Get all handler entries as a record (compatible with old API)
89
+ * @returns Record mapping tool names to handlers
90
+ */
91
+ getHandlers() {
92
+ const handlers = {};
93
+ for (const [name, entry] of this.tools) {
94
+ handlers[name] = entry.handler;
95
+ }
96
+ return handlers;
97
+ }
98
+ /**
99
+ * Get all formatter entries as a record (compatible with old API)
100
+ * @returns Record mapping tool names to formatters
101
+ */
102
+ getFormatters() {
103
+ const formatters = {};
104
+ for (const [name, entry] of this.tools) {
105
+ if (entry.formatter) {
106
+ formatters[name] = entry.formatter;
107
+ }
108
+ }
109
+ return formatters;
110
+ }
111
+ /**
112
+ * Get all validator entries as a record (compatible with old API)
113
+ * @returns Record mapping tool names to validators
114
+ */
115
+ getValidators() {
116
+ const validators = {};
117
+ for (const [name, entry] of this.tools) {
118
+ if (entry.validator) {
119
+ validators[name] = entry.validator;
120
+ }
121
+ }
122
+ return validators;
123
+ }
124
+ /**
125
+ * Get all native AI SDK tools as a record (compatible with old API)
126
+ * @returns Record mapping tool names to AISDKCoreTool objects
127
+ */
128
+ getNativeTools() {
129
+ const nativeTools = {};
130
+ for (const [name, entry] of this.tools) {
131
+ nativeTools[name] = entry.tool;
132
+ }
133
+ return nativeTools;
134
+ }
135
+ /**
136
+ * Get all tool entries
137
+ * @returns Array of all ToolEntry objects
138
+ */
139
+ getAllEntries() {
140
+ return Array.from(this.tools.values());
141
+ }
142
+ /**
143
+ * Get all tool names
144
+ * @returns Array of all registered tool names
145
+ */
146
+ getToolNames() {
147
+ return Array.from(this.tools.keys());
148
+ }
149
+ /**
150
+ * Check if a tool is registered
151
+ * @param name - The tool name
152
+ * @returns True if the tool exists, false otherwise
153
+ */
154
+ hasTool(name) {
155
+ return this.tools.has(name);
156
+ }
157
+ /**
158
+ * Get the number of registered tools
159
+ * @returns The count of registered tools
160
+ */
161
+ getToolCount() {
162
+ return this.tools.size;
163
+ }
164
+ /**
165
+ * Clear all registered tools
166
+ */
167
+ clear() {
168
+ this.tools.clear();
169
+ }
170
+ /**
171
+ * Create a new registry from static registries (backward compatibility helper)
172
+ * @param handlers - Record of tool handlers
173
+ * @param tools - Record of native AI SDK tools
174
+ * @param formatters - Optional record of tool formatters
175
+ * @param validators - Optional record of tool validators
176
+ * @returns New ToolRegistry instance
177
+ */
178
+ static fromRegistries(handlers, tools, formatters, validators) {
179
+ const registry = new ToolRegistry();
180
+ for (const [name, handler] of Object.entries(handlers)) {
181
+ const tool = tools[name];
182
+ if (tool) {
183
+ registry.register({
184
+ name,
185
+ handler,
186
+ tool,
187
+ formatter: formatters?.[name],
188
+ validator: validators?.[name],
189
+ });
190
+ }
191
+ }
192
+ return registry;
193
+ }
194
+ }
195
+ //# sourceMappingURL=tool-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../source/tools/tool-registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../source/tools/web-search.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAc,cAAc,EAAC,MAAM,eAAe,CAAC;AAiL/D,eAAO,MAAM,aAAa,EAAE,cA4B3B,CAAC"}
1
+ {"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../source/tools/web-search.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAyMlD,eAAO,MAAM,aAAa,EAAE,cAO3B,CAAC"}
@@ -3,9 +3,10 @@ import { fetch } from 'undici';
3
3
  import * as cheerio from 'cheerio';
4
4
  import React from 'react';
5
5
  import { Text, Box } from 'ink';
6
+ import { tool, jsonSchema } from '../types/core.js';
6
7
  import { ThemeContext } from '../hooks/useTheme.js';
7
8
  import ToolMessage from '../components/tool-message.js';
8
- const handler = async (args) => {
9
+ const executeWebSearch = async (args) => {
9
10
  const maxResults = args.max_results ?? 10;
10
11
  const encodedQuery = encodeURIComponent(args.query);
11
12
  try {
@@ -67,6 +68,25 @@ const handler = async (args) => {
67
68
  throw new Error(`Web search failed: ${errorMessage}`);
68
69
  }
69
70
  };
71
+ // AI SDK tool definition
72
+ const webSearchCoreTool = tool({
73
+ description: 'Search the web for information (scrapes Brave Search, returns markdown)',
74
+ inputSchema: jsonSchema({
75
+ type: 'object',
76
+ properties: {
77
+ query: {
78
+ type: 'string',
79
+ description: 'The search query.',
80
+ },
81
+ max_results: {
82
+ type: 'number',
83
+ description: 'Maximum number of search results to return (default: 10).',
84
+ },
85
+ },
86
+ required: ['query'],
87
+ }),
88
+ // NO execute function - prevents AI SDK auto-execution
89
+ });
70
90
  // Create a component that will re-render when theme changes
71
91
  const WebSearchFormatter = React.memo(({ args, result }) => {
72
92
  const themeContext = React.useContext(ThemeContext);
@@ -108,31 +128,13 @@ const validator = (args) => {
108
128
  }
109
129
  return Promise.resolve({ valid: true });
110
130
  };
131
+ // Nanocoder tool definition with AI SDK core tool + custom extensions
111
132
  export const webSearchTool = {
112
- handler,
133
+ name: 'web_search',
134
+ tool: webSearchCoreTool, // Native AI SDK tool (no execute)
135
+ handler: executeWebSearch,
113
136
  formatter,
114
137
  validator,
115
138
  requiresConfirmation: false,
116
- config: {
117
- type: 'function',
118
- function: {
119
- name: 'web_search',
120
- description: 'Search the web using Brave Search and return relevant results with URLs, titles, and descriptions. Use this to find up-to-date information, documentation, or answers to questions that require. Use in conjuction with the `fetch_url` tool to get page information on search results.',
121
- parameters: {
122
- type: 'object',
123
- properties: {
124
- query: {
125
- type: 'string',
126
- description: 'The search query to look up on the web.',
127
- },
128
- max_results: {
129
- type: 'number',
130
- description: 'Maximum number of results to return (default: 10, max: 20).',
131
- },
132
- },
133
- required: ['query'],
134
- },
135
- },
136
- },
137
139
  };
138
140
  //# sourceMappingURL=web-search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../source/tools/web-search.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../source/tools/web-search.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ThemePreset } from '../types/ui.js';
2
- export interface LangChainProviderConfig {
2
+ export interface AIProviderConfig {
3
3
  name: string;
4
4
  type: string;
5
5
  models: string[];
@@ -60,5 +60,6 @@ export interface UserPreferences {
60
60
  lastUpdateCheck?: number;
61
61
  selectedTheme?: ThemePreset;
62
62
  trustedDirectories?: string[];
63
+ streamingEnabled?: boolean;
63
64
  }
64
65
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../source/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAG5C,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,wBAAwB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,MAAM,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACvB,CAAC;CACF;AAGD,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,wBAAwB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IAEzB,SAAS,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE;YAChB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,wBAAwB,CAAC,EAAE,MAAM,CAAC;SAClC,CAAC;QACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACvB,EAAE,CAAC;IAEJ,UAAU,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC7B,EAAE,CAAC;CACJ;AAED,MAAM,WAAW,eAAe;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE;SACf,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM;KACxB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../source/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAG5C,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,wBAAwB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,MAAM,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACvB,CAAC;CACF;AAGD,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,wBAAwB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IAEzB,SAAS,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE;YAChB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,wBAAwB,CAAC,EAAE,MAAM,CAAC;SAClC,CAAC;QACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACvB,EAAE,CAAC;IAEJ,UAAU,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC7B,EAAE,CAAC;CACJ;AAED,MAAM,WAAW,eAAe;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE;SACf,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM;KACxB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B"}