@nanocollective/nanocoder 1.16.4 → 1.17.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 (211) hide show
  1. package/README.md +53 -19
  2. package/assets/nanocoder-vscode.vsix +0 -0
  3. package/dist/app.d.ts +6 -1
  4. package/dist/app.d.ts.map +1 -1
  5. package/dist/app.js +54 -18
  6. package/dist/app.js.map +1 -1
  7. package/dist/cli.js +13 -1
  8. package/dist/cli.js.map +1 -1
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +4 -29
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/mcp.d.ts +6 -0
  13. package/dist/commands/mcp.d.ts.map +1 -1
  14. package/dist/commands/mcp.js +25 -3
  15. package/dist/commands/mcp.js.map +1 -1
  16. package/dist/components/tool-confirmation.d.ts.map +1 -1
  17. package/dist/components/tool-confirmation.js +5 -19
  18. package/dist/components/tool-confirmation.js.map +1 -1
  19. package/dist/components/vscode-extension-prompt.d.ts +12 -0
  20. package/dist/components/vscode-extension-prompt.d.ts.map +1 -0
  21. package/dist/components/vscode-extension-prompt.js +115 -0
  22. package/dist/components/vscode-extension-prompt.js.map +1 -0
  23. package/dist/config/themes.js +2 -2
  24. package/dist/hooks/useAppInitialization.d.ts +2 -0
  25. package/dist/hooks/useAppInitialization.d.ts.map +1 -1
  26. package/dist/hooks/useAppInitialization.js +55 -1
  27. package/dist/hooks/useAppInitialization.js.map +1 -1
  28. package/dist/hooks/useChatHandler.d.ts.map +1 -1
  29. package/dist/hooks/useChatHandler.js +10 -71
  30. package/dist/hooks/useChatHandler.js.map +1 -1
  31. package/dist/hooks/useDirectoryTrust.d.ts.map +1 -1
  32. package/dist/hooks/useDirectoryTrust.js +4 -4
  33. package/dist/hooks/useDirectoryTrust.js.map +1 -1
  34. package/dist/hooks/useModeHandlers.d.ts +2 -1
  35. package/dist/hooks/useModeHandlers.d.ts.map +1 -1
  36. package/dist/hooks/useModeHandlers.js +13 -1
  37. package/dist/hooks/useModeHandlers.js.map +1 -1
  38. package/dist/hooks/useToolHandler.d.ts +0 -1
  39. package/dist/hooks/useToolHandler.d.ts.map +1 -1
  40. package/dist/hooks/useToolHandler.js +15 -75
  41. package/dist/hooks/useToolHandler.js.map +1 -1
  42. package/dist/hooks/useVSCodeServer.d.ts +45 -0
  43. package/dist/hooks/useVSCodeServer.d.ts.map +1 -0
  44. package/dist/hooks/useVSCodeServer.js +144 -0
  45. package/dist/hooks/useVSCodeServer.js.map +1 -0
  46. package/dist/lsp/index.d.ts +12 -0
  47. package/dist/lsp/index.d.ts.map +1 -0
  48. package/dist/lsp/index.js +11 -0
  49. package/dist/lsp/index.js.map +1 -0
  50. package/dist/lsp/lsp-client.d.ts +78 -0
  51. package/dist/lsp/lsp-client.d.ts.map +1 -0
  52. package/dist/lsp/lsp-client.js +378 -0
  53. package/dist/lsp/lsp-client.js.map +1 -0
  54. package/dist/lsp/lsp-client.spec.d.ts +2 -0
  55. package/dist/lsp/lsp-client.spec.d.ts.map +1 -0
  56. package/dist/lsp/lsp-client.spec.js +395 -0
  57. package/dist/lsp/lsp-client.spec.js.map +1 -0
  58. package/dist/lsp/lsp-manager.d.ts +124 -0
  59. package/dist/lsp/lsp-manager.d.ts.map +1 -0
  60. package/dist/lsp/lsp-manager.js +313 -0
  61. package/dist/lsp/lsp-manager.js.map +1 -0
  62. package/dist/lsp/lsp-manager.spec.d.ts +2 -0
  63. package/dist/lsp/lsp-manager.spec.d.ts.map +1 -0
  64. package/dist/lsp/lsp-manager.spec.js +388 -0
  65. package/dist/lsp/lsp-manager.spec.js.map +1 -0
  66. package/dist/lsp/protocol.d.ts +313 -0
  67. package/dist/lsp/protocol.d.ts.map +1 -0
  68. package/dist/lsp/protocol.js +70 -0
  69. package/dist/lsp/protocol.js.map +1 -0
  70. package/dist/lsp/protocol.spec.d.ts +2 -0
  71. package/dist/lsp/protocol.spec.d.ts.map +1 -0
  72. package/dist/lsp/protocol.spec.js +406 -0
  73. package/dist/lsp/protocol.spec.js.map +1 -0
  74. package/dist/lsp/server-discovery.d.ts +35 -0
  75. package/dist/lsp/server-discovery.d.ts.map +1 -0
  76. package/dist/lsp/server-discovery.js +291 -0
  77. package/dist/lsp/server-discovery.js.map +1 -0
  78. package/dist/lsp/server-discovery.spec.d.ts +2 -0
  79. package/dist/lsp/server-discovery.spec.d.ts.map +1 -0
  80. package/dist/lsp/server-discovery.spec.js +375 -0
  81. package/dist/lsp/server-discovery.spec.js.map +1 -0
  82. package/dist/mcp/mcp-client.d.ts +18 -0
  83. package/dist/mcp/mcp-client.d.ts.map +1 -1
  84. package/dist/mcp/mcp-client.js +59 -23
  85. package/dist/mcp/mcp-client.js.map +1 -1
  86. package/dist/mcp/mcp-client.spec.d.ts +2 -0
  87. package/dist/mcp/mcp-client.spec.d.ts.map +1 -0
  88. package/dist/mcp/mcp-client.spec.js +64 -0
  89. package/dist/mcp/mcp-client.spec.js.map +1 -0
  90. package/dist/mcp/transport-factory.d.ts +39 -0
  91. package/dist/mcp/transport-factory.d.ts.map +1 -0
  92. package/dist/mcp/transport-factory.js +176 -0
  93. package/dist/mcp/transport-factory.js.map +1 -0
  94. package/dist/mcp/transport-factory.spec.d.ts +2 -0
  95. package/dist/mcp/transport-factory.spec.d.ts.map +1 -0
  96. package/dist/mcp/transport-factory.spec.js +303 -0
  97. package/dist/mcp/transport-factory.spec.js.map +1 -0
  98. package/dist/message-handler.d.ts.map +1 -1
  99. package/dist/message-handler.js +6 -11
  100. package/dist/message-handler.js.map +1 -1
  101. package/dist/models/models-dev-client.spec.js +1 -0
  102. package/dist/models/models-dev-client.spec.js.map +1 -1
  103. package/dist/tools/create-file.d.ts.map +1 -1
  104. package/dist/tools/create-file.js +37 -3
  105. package/dist/tools/create-file.js.map +1 -1
  106. package/dist/tools/delete-lines.d.ts.map +1 -1
  107. package/dist/tools/delete-lines.js +41 -1
  108. package/dist/tools/delete-lines.js.map +1 -1
  109. package/dist/tools/index.d.ts.map +1 -1
  110. package/dist/tools/index.js +2 -0
  111. package/dist/tools/index.js.map +1 -1
  112. package/dist/tools/insert-lines.d.ts.map +1 -1
  113. package/dist/tools/insert-lines.js +40 -1
  114. package/dist/tools/insert-lines.js.map +1 -1
  115. package/dist/tools/lsp-get-diagnostics.d.ts +3 -0
  116. package/dist/tools/lsp-get-diagnostics.d.ts.map +1 -0
  117. package/dist/tools/lsp-get-diagnostics.js +182 -0
  118. package/dist/tools/lsp-get-diagnostics.js.map +1 -0
  119. package/dist/tools/replace-lines.d.ts.map +1 -1
  120. package/dist/tools/replace-lines.js +44 -1
  121. package/dist/tools/replace-lines.js.map +1 -1
  122. package/dist/tools/tool-manager.d.ts +17 -0
  123. package/dist/tools/tool-manager.d.ts.map +1 -1
  124. package/dist/tools/tool-manager.js +12 -0
  125. package/dist/tools/tool-manager.js.map +1 -1
  126. package/dist/types/config.d.ts +27 -0
  127. package/dist/types/config.d.ts.map +1 -1
  128. package/dist/types/mcp.d.ts +23 -1
  129. package/dist/types/mcp.d.ts.map +1 -1
  130. package/dist/utils/error-formatter.d.ts +22 -0
  131. package/dist/utils/error-formatter.d.ts.map +1 -0
  132. package/dist/utils/error-formatter.js +27 -0
  133. package/dist/utils/error-formatter.js.map +1 -0
  134. package/dist/utils/error-formatter.spec.d.ts +2 -0
  135. package/dist/utils/error-formatter.spec.d.ts.map +1 -0
  136. package/dist/utils/error-formatter.spec.js +147 -0
  137. package/dist/utils/error-formatter.spec.js.map +1 -0
  138. package/dist/utils/fuzzy-matching.spec.js +1 -0
  139. package/dist/utils/fuzzy-matching.spec.js.map +1 -1
  140. package/dist/utils/tool-args-parser.d.ts +37 -0
  141. package/dist/utils/tool-args-parser.d.ts.map +1 -0
  142. package/dist/utils/tool-args-parser.js +50 -0
  143. package/dist/utils/tool-args-parser.js.map +1 -0
  144. package/dist/utils/tool-args-parser.spec.d.ts +2 -0
  145. package/dist/utils/tool-args-parser.spec.d.ts.map +1 -0
  146. package/dist/utils/tool-args-parser.spec.js +111 -0
  147. package/dist/utils/tool-args-parser.spec.js.map +1 -0
  148. package/dist/utils/tool-cancellation.d.ts +21 -0
  149. package/dist/utils/tool-cancellation.d.ts.map +1 -0
  150. package/dist/utils/tool-cancellation.js +27 -0
  151. package/dist/utils/tool-cancellation.js.map +1 -0
  152. package/dist/utils/tool-cancellation.spec.d.ts +2 -0
  153. package/dist/utils/tool-cancellation.spec.d.ts.map +1 -0
  154. package/dist/utils/tool-cancellation.spec.js +186 -0
  155. package/dist/utils/tool-cancellation.spec.js.map +1 -0
  156. package/dist/utils/tool-result-display.d.ts +15 -0
  157. package/dist/utils/tool-result-display.d.ts.map +1 -0
  158. package/dist/utils/tool-result-display.js +51 -0
  159. package/dist/utils/tool-result-display.js.map +1 -0
  160. package/dist/vscode/extension-installer.d.ts +24 -0
  161. package/dist/vscode/extension-installer.d.ts.map +1 -0
  162. package/dist/vscode/extension-installer.js +110 -0
  163. package/dist/vscode/extension-installer.js.map +1 -0
  164. package/dist/vscode/extension-installer.spec.d.ts +2 -0
  165. package/dist/vscode/extension-installer.spec.d.ts.map +1 -0
  166. package/dist/vscode/extension-installer.spec.js +132 -0
  167. package/dist/vscode/extension-installer.spec.js.map +1 -0
  168. package/dist/vscode/index.d.ts +14 -0
  169. package/dist/vscode/index.d.ts.map +1 -0
  170. package/dist/vscode/index.js +14 -0
  171. package/dist/vscode/index.js.map +1 -0
  172. package/dist/vscode/protocol.d.ts +101 -0
  173. package/dist/vscode/protocol.d.ts.map +1 -0
  174. package/dist/vscode/protocol.js +7 -0
  175. package/dist/vscode/protocol.js.map +1 -0
  176. package/dist/vscode/protocol.spec.d.ts +2 -0
  177. package/dist/vscode/protocol.spec.d.ts.map +1 -0
  178. package/dist/vscode/protocol.spec.js +354 -0
  179. package/dist/vscode/protocol.spec.js.map +1 -0
  180. package/dist/vscode/vscode-server.d.ts +118 -0
  181. package/dist/vscode/vscode-server.d.ts.map +1 -0
  182. package/dist/vscode/vscode-server.js +303 -0
  183. package/dist/vscode/vscode-server.js.map +1 -0
  184. package/dist/vscode/vscode-server.spec.d.ts +2 -0
  185. package/dist/vscode/vscode-server.spec.d.ts.map +1 -0
  186. package/dist/vscode/vscode-server.spec.js +487 -0
  187. package/dist/vscode/vscode-server.spec.js.map +1 -0
  188. package/dist/wizard/steps/mcp-step.d.ts.map +1 -1
  189. package/dist/wizard/steps/mcp-step.js +139 -72
  190. package/dist/wizard/steps/mcp-step.js.map +1 -1
  191. package/dist/wizard/steps/summary-step.d.ts.map +1 -1
  192. package/dist/wizard/steps/summary-step.js +58 -2
  193. package/dist/wizard/steps/summary-step.js.map +1 -1
  194. package/dist/wizard/templates/mcp-templates.d.ts +20 -2
  195. package/dist/wizard/templates/mcp-templates.d.ts.map +1 -1
  196. package/dist/wizard/templates/mcp-templates.js +351 -7
  197. package/dist/wizard/templates/mcp-templates.js.map +1 -1
  198. package/dist/wizard/templates/mcp-templates.spec.js +257 -0
  199. package/dist/wizard/templates/mcp-templates.spec.js.map +1 -1
  200. package/dist/wizard/validation-array.spec.d.ts +2 -0
  201. package/dist/wizard/validation-array.spec.d.ts.map +1 -0
  202. package/dist/wizard/validation-array.spec.js +221 -0
  203. package/dist/wizard/validation-array.spec.js.map +1 -0
  204. package/dist/wizard/validation.d.ts +26 -1
  205. package/dist/wizard/validation.d.ts.map +1 -1
  206. package/dist/wizard/validation.js +15 -2
  207. package/dist/wizard/validation.js.map +1 -1
  208. package/dist/wizard/validation.spec.js +13 -5
  209. package/dist/wizard/validation.spec.js.map +1 -1
  210. package/package.json +7 -3
  211. package/source/app/prompts/main-prompt.md +6 -0
@@ -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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"}
@@ -45,9 +45,36 @@ export interface AppConfig {
45
45
  [key: string]: unknown;
46
46
  }[];
47
47
  mcpServers?: {
48
+ name: string;
49
+ transport: 'stdio' | 'websocket' | 'http';
50
+ command?: string;
51
+ args?: string[];
52
+ env?: Record<string, string>;
53
+ url?: string;
54
+ headers?: Record<string, string>;
55
+ auth?: {
56
+ type: 'bearer' | 'basic' | 'api-key' | 'custom';
57
+ token?: string;
58
+ username?: string;
59
+ password?: string;
60
+ apiKey?: string;
61
+ customHeaders?: Record<string, string>;
62
+ };
63
+ timeout?: number;
64
+ reconnect?: {
65
+ enabled: boolean;
66
+ maxAttempts: number;
67
+ backoffMs: number;
68
+ };
69
+ description?: string;
70
+ tags?: string[];
71
+ enabled?: boolean;
72
+ }[];
73
+ lspServers?: {
48
74
  name: string;
49
75
  command: string;
50
76
  args?: string[];
77
+ languages: string[];
51
78
  env?: Record<string, string>;
52
79
  }[];
53
80
  }
@@ -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,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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../source/types/config.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,30 @@
1
+ export type MCPTransportType = 'stdio' | 'websocket' | 'http';
2
+ export interface MCPAuthConfig {
3
+ type: 'bearer' | 'basic' | 'api-key' | 'custom';
4
+ token?: string;
5
+ username?: string;
6
+ password?: string;
7
+ apiKey?: string;
8
+ customHeaders?: Record<string, string>;
9
+ }
1
10
  export interface MCPServer {
2
11
  name: string;
3
- command: string;
12
+ transport: MCPTransportType;
13
+ command?: string;
4
14
  args?: string[];
5
15
  env?: Record<string, string>;
16
+ url?: string;
17
+ headers?: Record<string, string>;
18
+ auth?: MCPAuthConfig;
19
+ timeout?: number;
20
+ reconnect?: {
21
+ enabled: boolean;
22
+ maxAttempts: number;
23
+ backoffMs: number;
24
+ };
25
+ description?: string;
26
+ tags?: string[];
27
+ enabled?: boolean;
6
28
  }
7
29
  export interface MCPTool {
8
30
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../source/types/mcp.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../source/types/mcp.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,gBAAgB,CAAC;IAG5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Format error objects into string messages
3
+ * Handles Error instances and unknown error types consistently
4
+ *
5
+ * This utility eliminates the repeated pattern of:
6
+ * ```
7
+ * error instanceof Error ? error.message : String(error)
8
+ * ```
9
+ *
10
+ * @param error - Error of any type (Error instance, string, object, etc.)
11
+ * @returns Formatted error message string
12
+ *
13
+ * @example
14
+ * try {
15
+ * await doSomething();
16
+ * } catch (error) {
17
+ * const message = formatError(error);
18
+ * console.error(message);
19
+ * }
20
+ */
21
+ export declare function formatError(error: unknown): string;
22
+ //# sourceMappingURL=error-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-formatter.d.ts","sourceRoot":"","sources":["../../source/utils/error-formatter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKlD"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Format error objects into string messages
3
+ * Handles Error instances and unknown error types consistently
4
+ *
5
+ * This utility eliminates the repeated pattern of:
6
+ * ```
7
+ * error instanceof Error ? error.message : String(error)
8
+ * ```
9
+ *
10
+ * @param error - Error of any type (Error instance, string, object, etc.)
11
+ * @returns Formatted error message string
12
+ *
13
+ * @example
14
+ * try {
15
+ * await doSomething();
16
+ * } catch (error) {
17
+ * const message = formatError(error);
18
+ * console.error(message);
19
+ * }
20
+ */
21
+ export function formatError(error) {
22
+ if (error instanceof Error) {
23
+ return error.message;
24
+ }
25
+ return String(error);
26
+ }
27
+ //# sourceMappingURL=error-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-formatter.js","sourceRoot":"","sources":["../../source/utils/error-formatter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACzC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=error-formatter.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-formatter.spec.d.ts","sourceRoot":"","sources":["../../source/utils/error-formatter.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,147 @@
1
+ import test from 'ava';
2
+ import { formatError } from './error-formatter.js';
3
+ console.log(`\nerror-formatter.spec.ts`);
4
+ // Tests for Error instances
5
+ test('formatError - formats standard Error instance', t => {
6
+ const error = new Error('Something went wrong');
7
+ const result = formatError(error);
8
+ t.is(result, 'Something went wrong');
9
+ });
10
+ test('formatError - formats Error with empty message', t => {
11
+ const error = new Error('');
12
+ const result = formatError(error);
13
+ t.is(result, '');
14
+ });
15
+ test('formatError - formats TypeError instance', t => {
16
+ const error = new TypeError('Invalid type');
17
+ const result = formatError(error);
18
+ t.is(result, 'Invalid type');
19
+ });
20
+ test('formatError - formats RangeError instance', t => {
21
+ const error = new RangeError('Out of range');
22
+ const result = formatError(error);
23
+ t.is(result, 'Out of range');
24
+ });
25
+ test('formatError - formats SyntaxError instance', t => {
26
+ const error = new SyntaxError('Unexpected token');
27
+ const result = formatError(error);
28
+ t.is(result, 'Unexpected token');
29
+ });
30
+ test('formatError - formats custom Error subclass', t => {
31
+ class CustomError extends Error {
32
+ constructor(message) {
33
+ super(message);
34
+ this.name = 'CustomError';
35
+ }
36
+ }
37
+ const error = new CustomError('Custom error message');
38
+ const result = formatError(error);
39
+ t.is(result, 'Custom error message');
40
+ });
41
+ // Tests for non-Error types
42
+ test('formatError - formats string error', t => {
43
+ const error = 'Simple error string';
44
+ const result = formatError(error);
45
+ t.is(result, 'Simple error string');
46
+ });
47
+ test('formatError - formats number error', t => {
48
+ const error = 404;
49
+ const result = formatError(error);
50
+ t.is(result, '404');
51
+ });
52
+ test('formatError - formats boolean error', t => {
53
+ const error = false;
54
+ const result = formatError(error);
55
+ t.is(result, 'false');
56
+ });
57
+ test('formatError - formats null error', t => {
58
+ const error = null;
59
+ const result = formatError(error);
60
+ t.is(result, 'null');
61
+ });
62
+ test('formatError - formats undefined error', t => {
63
+ const error = undefined;
64
+ const result = formatError(error);
65
+ t.is(result, 'undefined');
66
+ });
67
+ test('formatError - formats object error', t => {
68
+ const error = { code: 'ERR_001', message: 'Custom error' };
69
+ const result = formatError(error);
70
+ t.is(result, '[object Object]');
71
+ });
72
+ test('formatError - formats array error', t => {
73
+ const error = ['error1', 'error2'];
74
+ const result = formatError(error);
75
+ t.is(result, 'error1,error2');
76
+ });
77
+ test('formatError - formats object with toString method', t => {
78
+ const error = {
79
+ toString() {
80
+ return 'Custom toString';
81
+ },
82
+ };
83
+ const result = formatError(error);
84
+ t.is(result, 'Custom toString');
85
+ });
86
+ // Edge cases
87
+ test('formatError - formats Error with multiline message', t => {
88
+ const error = new Error('Line 1\nLine 2\nLine 3');
89
+ const result = formatError(error);
90
+ t.is(result, 'Line 1\nLine 2\nLine 3');
91
+ });
92
+ test('formatError - formats Error with special characters', t => {
93
+ const error = new Error('Error: "quoted" \'text\' with\ttabs');
94
+ const result = formatError(error);
95
+ t.is(result, 'Error: "quoted" \'text\' with\ttabs');
96
+ });
97
+ test('formatError - formats Error with unicode characters', t => {
98
+ const error = new Error('Error: 日本語 emoji 🚀');
99
+ const result = formatError(error);
100
+ t.is(result, 'Error: 日本語 emoji 🚀');
101
+ });
102
+ test('formatError - handles Error.cause if present', t => {
103
+ const error = new Error('Main error');
104
+ // Note: Error.cause is a modern feature, just test that formatError still works
105
+ const result = formatError(error);
106
+ t.is(result, 'Main error');
107
+ });
108
+ // Type consistency tests
109
+ test('formatError - always returns string type for Error', t => {
110
+ const error = new Error('Test');
111
+ const result = formatError(error);
112
+ t.is(typeof result, 'string');
113
+ });
114
+ test('formatError - always returns string type for non-Error', t => {
115
+ const error = { custom: 'object' };
116
+ const result = formatError(error);
117
+ t.is(typeof result, 'string');
118
+ });
119
+ // Real-world scenario tests
120
+ test('formatError - handles JSON parse error', t => {
121
+ let error;
122
+ try {
123
+ JSON.parse('{invalid}');
124
+ }
125
+ catch (e) {
126
+ error = e;
127
+ }
128
+ const result = formatError(error);
129
+ t.true(result.includes('JSON') || result.includes('Unexpected'));
130
+ });
131
+ test('formatError - handles fetch-like error', t => {
132
+ const error = new Error('Failed to fetch: Network error');
133
+ const result = formatError(error);
134
+ t.is(result, 'Failed to fetch: Network error');
135
+ });
136
+ test('formatError - handles validation error object', t => {
137
+ const error = {
138
+ field: 'email',
139
+ message: 'Invalid email format',
140
+ toString() {
141
+ return `${this.field}: ${this.message}`;
142
+ },
143
+ };
144
+ const result = formatError(error);
145
+ t.is(result, 'email: Invalid email format');
146
+ });
147
+ //# sourceMappingURL=error-formatter.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-formatter.spec.js","sourceRoot":"","sources":["../../source/utils/error-formatter.spec.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import test from 'ava';
2
2
  import { fuzzyScore, fuzzyScoreFilePath } from './fuzzy-matching.js';
3
+ console.log(`\nfuzzy-matching.spec.ts`);
3
4
  // Tests for fuzzyScore (general text matching)
4
5
  test('fuzzyScore - exact match returns highest score', t => {
5
6
  t.is(fuzzyScore('help', 'help'), 1000);
@@ -1 +1 @@
1
- {"version":3,"file":"fuzzy-matching.spec.js","sourceRoot":"","sources":["../../source/utils/fuzzy-matching.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fuzzy-matching.spec.js","sourceRoot":"","sources":["../../source/utils/fuzzy-matching.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Parse tool arguments from various formats
3
+ * Handles both string-encoded JSON and already-parsed objects
4
+ *
5
+ * This utility eliminates the repeated pattern of JSON parsing that appears
6
+ * throughout the codebase when handling tool call arguments.
7
+ *
8
+ * ## Error Handling Modes
9
+ *
10
+ * **Lenient mode (strict=false, default)**: Used for display/UI purposes where
11
+ * graceful degradation is acceptable. If JSON parsing fails, returns the
12
+ * unparsed string, allowing the application to continue.
13
+ *
14
+ * **Strict mode (strict=true)**: Used for tool execution where malformed
15
+ * arguments must be caught early. Throws an error if JSON parsing fails,
16
+ * preventing execution with invalid data.
17
+ *
18
+ * @param args - Arguments in any format (string, object, etc.)
19
+ * @param options - Parsing options
20
+ * @param options.strict - If true, throw error on parse failure. If false, return unparsed value. Default: false
21
+ * @returns Parsed arguments as the specified type
22
+ * @throws Error if strict=true and JSON parsing fails
23
+ *
24
+ * @example
25
+ * // Lenient parsing for display
26
+ * const parsedArgs = parseToolArguments(toolCall.function.arguments);
27
+ *
28
+ * // Strict parsing for tool execution
29
+ * const parsedArgs = parseToolArguments(toolCall.function.arguments, {strict: true});
30
+ *
31
+ * // With type parameter
32
+ * const typedArgs = parseToolArguments<{path: string}>(args, {strict: true});
33
+ */
34
+ export declare function parseToolArguments<T = Record<string, unknown>>(args: unknown, options?: {
35
+ strict?: boolean;
36
+ }): T;
37
+ //# sourceMappingURL=tool-args-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-args-parser.d.ts","sourceRoot":"","sources":["../../source/utils/tool-args-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7D,IAAI,EAAE,OAAO,EACb,OAAO,GAAE;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAM,GAC9B,CAAC,CAiBH"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Parse tool arguments from various formats
3
+ * Handles both string-encoded JSON and already-parsed objects
4
+ *
5
+ * This utility eliminates the repeated pattern of JSON parsing that appears
6
+ * throughout the codebase when handling tool call arguments.
7
+ *
8
+ * ## Error Handling Modes
9
+ *
10
+ * **Lenient mode (strict=false, default)**: Used for display/UI purposes where
11
+ * graceful degradation is acceptable. If JSON parsing fails, returns the
12
+ * unparsed string, allowing the application to continue.
13
+ *
14
+ * **Strict mode (strict=true)**: Used for tool execution where malformed
15
+ * arguments must be caught early. Throws an error if JSON parsing fails,
16
+ * preventing execution with invalid data.
17
+ *
18
+ * @param args - Arguments in any format (string, object, etc.)
19
+ * @param options - Parsing options
20
+ * @param options.strict - If true, throw error on parse failure. If false, return unparsed value. Default: false
21
+ * @returns Parsed arguments as the specified type
22
+ * @throws Error if strict=true and JSON parsing fails
23
+ *
24
+ * @example
25
+ * // Lenient parsing for display
26
+ * const parsedArgs = parseToolArguments(toolCall.function.arguments);
27
+ *
28
+ * // Strict parsing for tool execution
29
+ * const parsedArgs = parseToolArguments(toolCall.function.arguments, {strict: true});
30
+ *
31
+ * // With type parameter
32
+ * const typedArgs = parseToolArguments<{path: string}>(args, {strict: true});
33
+ */
34
+ export function parseToolArguments(args, options = {}) {
35
+ const { strict = false } = options;
36
+ if (typeof args === 'string') {
37
+ try {
38
+ return JSON.parse(args);
39
+ }
40
+ catch (e) {
41
+ if (strict) {
42
+ throw new Error(`Error: Invalid tool arguments: ${e.message}`);
43
+ }
44
+ // If parsing fails in lenient mode, return as-is (will be cast to T)
45
+ return args;
46
+ }
47
+ }
48
+ return args;
49
+ }
50
+ //# sourceMappingURL=tool-args-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-args-parser.js","sourceRoot":"","sources":["../../source/utils/tool-args-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,kBAAkB,CACjC,IAAa,EACb,UAA8B,EAAE;IAEhC,MAAM,EAAC,MAAM,GAAG,KAAK,EAAC,GAAG,OAAO,CAAC;IAEjC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;QAC9B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CACd,kCAAmC,CAAW,CAAC,OAAO,EAAE,CACxD,CAAC;YACH,CAAC;YACD,qEAAqE;YACrE,OAAO,IAAS,CAAC;QAClB,CAAC;IACF,CAAC;IACD,OAAO,IAAS,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tool-args-parser.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-args-parser.spec.d.ts","sourceRoot":"","sources":["../../source/utils/tool-args-parser.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,111 @@
1
+ import test from 'ava';
2
+ import { parseToolArguments } from './tool-args-parser.js';
3
+ console.log(`\ntool-args-parser.spec.ts`);
4
+ // Tests for lenient mode (default, strict=false)
5
+ test('parseToolArguments - parses valid JSON string in lenient mode', t => {
6
+ const input = '{"path": "/test", "count": 42}';
7
+ const result = parseToolArguments(input);
8
+ t.deepEqual(result, { path: '/test', count: 42 });
9
+ });
10
+ test('parseToolArguments - returns object as-is in lenient mode', t => {
11
+ const input = { path: '/test', count: 42 };
12
+ const result = parseToolArguments(input);
13
+ t.deepEqual(result, input);
14
+ });
15
+ test('parseToolArguments - returns unparsed string on parse failure in lenient mode', t => {
16
+ const input = '{invalid json}';
17
+ const result = parseToolArguments(input);
18
+ t.is(result, input); // Should return the string as-is
19
+ });
20
+ test('parseToolArguments - handles empty object string in lenient mode', t => {
21
+ const input = '{}';
22
+ const result = parseToolArguments(input);
23
+ t.deepEqual(result, {});
24
+ });
25
+ test('parseToolArguments - handles array JSON in lenient mode', t => {
26
+ const input = '[1, 2, 3]';
27
+ const result = parseToolArguments(input);
28
+ t.deepEqual(result, [1, 2, 3]);
29
+ });
30
+ test('parseToolArguments - handles null in lenient mode', t => {
31
+ const result = parseToolArguments(null);
32
+ t.is(result, null);
33
+ });
34
+ test('parseToolArguments - handles undefined in lenient mode', t => {
35
+ const result = parseToolArguments(undefined);
36
+ t.is(result, undefined);
37
+ });
38
+ test('parseToolArguments - handles number in lenient mode', t => {
39
+ const result = parseToolArguments(42);
40
+ t.is(result, 42);
41
+ });
42
+ // Tests for strict mode (strict=true)
43
+ test('parseToolArguments - parses valid JSON string in strict mode', t => {
44
+ const input = '{"path": "/test", "count": 42}';
45
+ const result = parseToolArguments(input, { strict: true });
46
+ t.deepEqual(result, { path: '/test', count: 42 });
47
+ });
48
+ test('parseToolArguments - returns object as-is in strict mode', t => {
49
+ const input = { path: '/test', count: 42 };
50
+ const result = parseToolArguments(input, { strict: true });
51
+ t.deepEqual(result, input);
52
+ });
53
+ test('parseToolArguments - throws on parse failure in strict mode', t => {
54
+ const input = '{invalid json}';
55
+ const error = t.throws(() => {
56
+ parseToolArguments(input, { strict: true });
57
+ });
58
+ t.true(error?.message.includes('Error: Invalid tool arguments'));
59
+ });
60
+ test('parseToolArguments - throws on malformed JSON in strict mode', t => {
61
+ const input = '{"unclosed": ';
62
+ const error = t.throws(() => {
63
+ parseToolArguments(input, { strict: true });
64
+ });
65
+ t.true(error?.message.includes('Error: Invalid tool arguments'));
66
+ });
67
+ test('parseToolArguments - handles empty object string in strict mode', t => {
68
+ const input = '{}';
69
+ const result = parseToolArguments(input, { strict: true });
70
+ t.deepEqual(result, {});
71
+ });
72
+ // Tests for type parameter
73
+ test('parseToolArguments - respects type parameter', t => {
74
+ const input = '{"path": "/test", "count": 42}';
75
+ const result = parseToolArguments(input);
76
+ t.deepEqual(result, { path: '/test', count: 42 });
77
+ });
78
+ // Edge cases
79
+ test('parseToolArguments - handles nested JSON', t => {
80
+ const input = '{"outer": {"inner": {"value": 123}}}';
81
+ const result = parseToolArguments(input);
82
+ t.deepEqual(result, { outer: { inner: { value: 123 } } });
83
+ });
84
+ test('parseToolArguments - handles JSON with special characters', t => {
85
+ const input = '{"message": "Hello \\"world\\"", "newline": "test\\nline"}';
86
+ const result = parseToolArguments(input);
87
+ t.deepEqual(result, { message: 'Hello "world"', newline: 'test\nline' });
88
+ });
89
+ test('parseToolArguments - preserves boolean values', t => {
90
+ const input = '{"enabled": true, "disabled": false}';
91
+ const result = parseToolArguments(input);
92
+ t.deepEqual(result, { enabled: true, disabled: false });
93
+ });
94
+ test('parseToolArguments - preserves null values in JSON', t => {
95
+ const input = '{"value": null}';
96
+ const result = parseToolArguments(input);
97
+ t.deepEqual(result, { value: null });
98
+ });
99
+ // Comparison between strict and lenient modes
100
+ test('parseToolArguments - lenient vs strict behavior on invalid JSON', t => {
101
+ const invalidJson = '{broken}';
102
+ // Lenient mode: returns unparsed string
103
+ const lenientResult = parseToolArguments(invalidJson);
104
+ t.is(lenientResult, invalidJson);
105
+ // Strict mode: throws error
106
+ const error = t.throws(() => {
107
+ parseToolArguments(invalidJson, { strict: true });
108
+ });
109
+ t.true(error?.message.includes('Error: Invalid tool arguments'));
110
+ });
111
+ //# sourceMappingURL=tool-args-parser.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-args-parser.spec.js","sourceRoot":"","sources":["../../source/utils/tool-args-parser.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ToolCall, ToolResult } from '../types/index.js';
2
+ /**
3
+ * Create cancellation results for tool calls
4
+ * Used when user cancels tool execution to maintain conversation state integrity
5
+ *
6
+ * This utility eliminates duplication of cancellation result creation logic
7
+ *
8
+ * @param toolCalls - Array of tool calls that were cancelled
9
+ * @returns Array of tool results indicating cancellation
10
+ *
11
+ * @example
12
+ * const cancellationResults = createCancellationResults(pendingToolCalls);
13
+ * const toolMessages = cancellationResults.map(result => ({
14
+ * role: 'tool' as const,
15
+ * content: result.content,
16
+ * tool_call_id: result.tool_call_id,
17
+ * name: result.name,
18
+ * }));
19
+ */
20
+ export declare function createCancellationResults(toolCalls: ToolCall[]): ToolResult[];
21
+ //# sourceMappingURL=tool-cancellation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-cancellation.d.ts","sourceRoot":"","sources":["../../source/utils/tool-cancellation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAExD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAO7E"}