@nanocollective/nanocoder 1.11.3 → 1.12.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 (186) hide show
  1. package/README.md +53 -11
  2. package/dist/app/hooks/useAppInitialization.d.ts +3 -3
  3. package/dist/app/hooks/useAppInitialization.d.ts.map +1 -1
  4. package/dist/app/hooks/useAppInitialization.js +2 -1
  5. package/dist/app/hooks/useAppInitialization.js.map +1 -1
  6. package/dist/app/hooks/useAppState.d.ts +5 -3
  7. package/dist/app/hooks/useAppState.d.ts.map +1 -1
  8. package/dist/app/hooks/useAppState.js +7 -2
  9. package/dist/app/hooks/useAppState.js.map +1 -1
  10. package/dist/app/hooks/useChatHandler.d.ts.map +1 -1
  11. package/dist/app/hooks/useChatHandler.js +131 -5
  12. package/dist/app/hooks/useChatHandler.js.map +1 -1
  13. package/dist/app/hooks/useDirectoryTrust.d.ts.map +1 -1
  14. package/dist/app/hooks/useDirectoryTrust.js.map +1 -1
  15. package/dist/app/hooks/useModeHandlers.d.ts +8 -5
  16. package/dist/app/hooks/useModeHandlers.d.ts.map +1 -1
  17. package/dist/app/hooks/useModeHandlers.js +12 -2
  18. package/dist/app/hooks/useModeHandlers.js.map +1 -1
  19. package/dist/app/hooks/useToolHandler.d.ts +2 -2
  20. package/dist/app/hooks/useToolHandler.d.ts.map +1 -1
  21. package/dist/app/hooks/useToolHandler.js +66 -0
  22. package/dist/app/hooks/useToolHandler.js.map +1 -1
  23. package/dist/app/utils/appUtils.d.ts.map +1 -1
  24. package/dist/app/utils/appUtils.js +5 -1
  25. package/dist/app/utils/appUtils.js.map +1 -1
  26. package/dist/app/utils/conversationState.d.ts.map +1 -1
  27. package/dist/app/utils/conversationState.js +35 -13
  28. package/dist/app/utils/conversationState.js.map +1 -1
  29. package/dist/app.d.ts.map +1 -1
  30. package/dist/app.js +4 -1
  31. package/dist/app.js.map +1 -1
  32. package/dist/client-factory.d.ts +3 -3
  33. package/dist/client-factory.d.ts.map +1 -1
  34. package/dist/client-factory.js +13 -6
  35. package/dist/client-factory.js.map +1 -1
  36. package/dist/command-parser.d.ts.map +1 -1
  37. package/dist/command-parser.js +2 -2
  38. package/dist/command-parser.js.map +1 -1
  39. package/dist/commands/index.d.ts +1 -0
  40. package/dist/commands/index.d.ts.map +1 -1
  41. package/dist/commands/index.js +1 -0
  42. package/dist/commands/index.js.map +1 -1
  43. package/dist/commands/recommendations.d.ts +8 -0
  44. package/dist/commands/recommendations.d.ts.map +1 -0
  45. package/dist/commands/recommendations.js +303 -0
  46. package/dist/commands/recommendations.js.map +1 -0
  47. package/dist/components/assistant-message.d.ts.map +1 -1
  48. package/dist/components/assistant-message.js +58 -33
  49. package/dist/components/assistant-message.js.map +1 -1
  50. package/dist/components/chat-queue.js.map +1 -1
  51. package/dist/components/provider-selector.d.ts +2 -3
  52. package/dist/components/provider-selector.d.ts.map +1 -1
  53. package/dist/components/provider-selector.js.map +1 -1
  54. package/dist/components/security-disclaimer.d.ts +1 -1
  55. package/dist/components/security-disclaimer.d.ts.map +1 -1
  56. package/dist/components/security-disclaimer.js +1 -1
  57. package/dist/components/security-disclaimer.js.map +1 -1
  58. package/dist/components/tool-confirmation.d.ts.map +1 -1
  59. package/dist/components/tool-confirmation.js +49 -8
  60. package/dist/components/tool-confirmation.js.map +1 -1
  61. package/dist/config/index.d.ts.map +1 -1
  62. package/dist/config/index.js.map +1 -1
  63. package/dist/config/preferences.d.ts +2 -3
  64. package/dist/config/preferences.d.ts.map +1 -1
  65. package/dist/config/preferences.js +8 -8
  66. package/dist/config/preferences.js.map +1 -1
  67. package/dist/config/themes.d.ts.map +1 -1
  68. package/dist/config/themes.js +1 -1
  69. package/dist/config/themes.js.map +1 -1
  70. package/dist/custom-commands/index.d.ts +3 -3
  71. package/dist/custom-commands/index.js +3 -3
  72. package/dist/custom-commands/loader.d.ts.map +1 -1
  73. package/dist/custom-commands/loader.js +6 -6
  74. package/dist/custom-commands/loader.js.map +1 -1
  75. package/dist/hooks/useTerminalWidth.js +1 -1
  76. package/dist/hooks/useTerminalWidth.js.map +1 -1
  77. package/dist/init/agents-template-generator.d.ts.map +1 -1
  78. package/dist/init/agents-template-generator.js +43 -41
  79. package/dist/init/agents-template-generator.js.map +1 -1
  80. package/dist/init/existing-rules-extractor.d.ts.map +1 -1
  81. package/dist/init/existing-rules-extractor.js +46 -12
  82. package/dist/init/existing-rules-extractor.js.map +1 -1
  83. package/dist/init/file-scanner.d.ts.map +1 -1
  84. package/dist/init/file-scanner.js +44 -16
  85. package/dist/init/file-scanner.js.map +1 -1
  86. package/dist/init/framework-detector.d.ts.map +1 -1
  87. package/dist/init/framework-detector.js +42 -13
  88. package/dist/init/framework-detector.js.map +1 -1
  89. package/dist/init/language-detector.d.ts.map +1 -1
  90. package/dist/init/language-detector.js +20 -7
  91. package/dist/init/language-detector.js.map +1 -1
  92. package/dist/init/project-analyzer.d.ts.map +1 -1
  93. package/dist/init/project-analyzer.js +55 -19
  94. package/dist/init/project-analyzer.js.map +1 -1
  95. package/dist/langgraph-client.d.ts +1 -0
  96. package/dist/langgraph-client.d.ts.map +1 -1
  97. package/dist/langgraph-client.js +31 -1
  98. package/dist/langgraph-client.js.map +1 -1
  99. package/dist/mcp/mcp-client.js.map +1 -1
  100. package/dist/mcp/mcp-tool-adapter.d.ts +1 -1
  101. package/dist/mcp/mcp-tool-adapter.d.ts.map +1 -1
  102. package/dist/mcp/mcp-tool-adapter.js.map +1 -1
  103. package/dist/message-handler.d.ts.map +1 -1
  104. package/dist/message-handler.js +2 -2
  105. package/dist/message-handler.js.map +1 -1
  106. package/dist/prompt-history.d.ts.map +1 -1
  107. package/dist/prompt-history.js +11 -9
  108. package/dist/prompt-history.js.map +1 -1
  109. package/dist/recommendations/model-database.d.ts +9 -0
  110. package/dist/recommendations/model-database.d.ts.map +1 -0
  111. package/dist/recommendations/model-database.js +455 -0
  112. package/dist/recommendations/model-database.js.map +1 -0
  113. package/dist/recommendations/model-engine.d.ts +16 -0
  114. package/dist/recommendations/model-engine.d.ts.map +1 -0
  115. package/dist/recommendations/model-engine.js +185 -0
  116. package/dist/recommendations/model-engine.js.map +1 -0
  117. package/dist/recommendations/recommendation-engine.d.ts +38 -0
  118. package/dist/recommendations/recommendation-engine.d.ts.map +1 -0
  119. package/dist/recommendations/recommendation-engine.js +138 -0
  120. package/dist/recommendations/recommendation-engine.js.map +1 -0
  121. package/dist/system/detector.d.ts +18 -0
  122. package/dist/system/detector.d.ts.map +1 -0
  123. package/dist/system/detector.js +140 -0
  124. package/dist/system/detector.js.map +1 -0
  125. package/dist/tool-calling/json-parser.d.ts.map +1 -1
  126. package/dist/tool-calling/json-parser.js +2 -1
  127. package/dist/tool-calling/json-parser.js.map +1 -1
  128. package/dist/tools/create-file.d.ts.map +1 -1
  129. package/dist/tools/create-file.js +62 -4
  130. package/dist/tools/create-file.js.map +1 -1
  131. package/dist/tools/delete-lines.d.ts.map +1 -1
  132. package/dist/tools/delete-lines.js +71 -5
  133. package/dist/tools/delete-lines.js.map +1 -1
  134. package/dist/tools/execute-bash.d.ts.map +1 -1
  135. package/dist/tools/execute-bash.js +29 -0
  136. package/dist/tools/execute-bash.js.map +1 -1
  137. package/dist/tools/fetch-url.d.ts +3 -0
  138. package/dist/tools/fetch-url.d.ts.map +1 -0
  139. package/dist/tools/fetch-url.js +122 -0
  140. package/dist/tools/fetch-url.js.map +1 -0
  141. package/dist/tools/index.d.ts +6 -0
  142. package/dist/tools/index.d.ts.map +1 -1
  143. package/dist/tools/index.js +8 -0
  144. package/dist/tools/index.js.map +1 -1
  145. package/dist/tools/insert-lines.d.ts.map +1 -1
  146. package/dist/tools/insert-lines.js +48 -1
  147. package/dist/tools/insert-lines.js.map +1 -1
  148. package/dist/tools/read-file.d.ts.map +1 -1
  149. package/dist/tools/read-file.js +31 -3
  150. package/dist/tools/read-file.js.map +1 -1
  151. package/dist/tools/read-many-files.d.ts.map +1 -1
  152. package/dist/tools/read-many-files.js +56 -8
  153. package/dist/tools/read-many-files.js.map +1 -1
  154. package/dist/tools/replace-lines.d.ts.map +1 -1
  155. package/dist/tools/replace-lines.js +70 -4
  156. package/dist/tools/replace-lines.js.map +1 -1
  157. package/dist/tools/tool-manager.d.ts +10 -0
  158. package/dist/tools/tool-manager.d.ts.map +1 -1
  159. package/dist/tools/tool-manager.js +10 -2
  160. package/dist/tools/tool-manager.js.map +1 -1
  161. package/dist/tools/web-search.d.ts +3 -0
  162. package/dist/tools/web-search.d.ts.map +1 -0
  163. package/dist/tools/web-search.js +133 -0
  164. package/dist/tools/web-search.js.map +1 -0
  165. package/dist/types/app.d.ts +1 -0
  166. package/dist/types/app.d.ts.map +1 -1
  167. package/dist/types/commands.d.ts.map +1 -1
  168. package/dist/types/components.d.ts +3 -3
  169. package/dist/types/components.d.ts.map +1 -1
  170. package/dist/types/config.d.ts +17 -6
  171. package/dist/types/config.d.ts.map +1 -1
  172. package/dist/types/core.d.ts +10 -5
  173. package/dist/types/core.d.ts.map +1 -1
  174. package/dist/types/index.d.ts +11 -10
  175. package/dist/types/index.d.ts.map +1 -1
  176. package/dist/types/index.js +11 -10
  177. package/dist/types/index.js.map +1 -1
  178. package/dist/types/mcp.d.ts.map +1 -1
  179. package/dist/types/system.d.ts +57 -0
  180. package/dist/types/system.d.ts.map +1 -0
  181. package/dist/types/system.js +2 -0
  182. package/dist/types/system.js.map +1 -0
  183. package/dist/utils/message-queue.d.ts.map +1 -1
  184. package/dist/utils/message-queue.js +1 -1
  185. package/dist/utils/message-queue.js.map +1 -1
  186. package/package.json +9 -2
@@ -1 +1 @@
1
- {"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../source/client-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../source/client-factory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command-parser.d.ts","sourceRoot":"","sources":["../source/command-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAiCvD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEzD"}
1
+ {"version":3,"file":"command-parser.d.ts","sourceRoot":"","sources":["../source/command-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAEpD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAiCvD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEzD"}
@@ -6,7 +6,7 @@ export function parseInput(input) {
6
6
  return {
7
7
  isCommand: false, // Not a regular command
8
8
  isBashCommand: true,
9
- bashCommand: bashCommand
9
+ bashCommand: bashCommand,
10
10
  };
11
11
  }
12
12
  // Check for regular command (prefixed with /)
@@ -24,7 +24,7 @@ export function parseInput(input) {
24
24
  isCommand: true,
25
25
  command,
26
26
  args,
27
- fullCommand: commandText
27
+ fullCommand: commandText,
28
28
  };
29
29
  }
30
30
  export function isCommandInput(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"command-parser.js","sourceRoot":"","sources":["../source/command-parser.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,2CAA2C;IAC3C,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,wBAAwB;YAC1C,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,WAAW;SACzB,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACrE,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5B,OAAO;QACL,SAAS,EAAE,IAAI;QACf,OAAO;QACP,IAAI;QACJ,WAAW,EAAE,WAAW;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"command-parser.js","sourceRoot":"","sources":["../source/command-parser.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,KAAa;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,2CAA2C;IAC3C,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO;YACN,SAAS,EAAE,KAAK,EAAE,wBAAwB;YAC1C,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,WAAW;SACxB,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC;IAC3B,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;IAClE,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5B,OAAO;QACN,SAAS,EAAE,IAAI;QACf,OAAO;QACP,IAAI;QACJ,WAAW,EAAE,WAAW;KACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC3C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC/C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC"}
@@ -10,4 +10,5 @@ export * from './init.js';
10
10
  export * from './theme.js';
11
11
  export * from './export.js';
12
12
  export * from './update.js';
13
+ export * from './recommendations.js';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC"}
@@ -10,4 +10,5 @@ export * from './init.js';
10
10
  export * from './theme.js';
11
11
  export * from './export.js';
12
12
  export * from './update.js';
13
+ export * from './recommendations.js';
13
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Command } from '../types/index.js';
2
+ interface RecommendationsDisplayProps {
3
+ onCancel?: () => void;
4
+ }
5
+ declare function RecommendationsDisplay({ onCancel }: RecommendationsDisplayProps): import("react/jsx-runtime").JSX.Element | null;
6
+ export { RecommendationsDisplay };
7
+ export declare const recommendationsCommand: Command;
8
+ //# sourceMappingURL=recommendations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recommendations.d.ts","sourceRoot":"","sources":["../../source/commands/recommendations.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAqB,MAAM,mBAAmB,CAAC;AAS9D,UAAU,2BAA2B;IACpC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,iBAAS,sBAAsB,CAAC,EAAC,QAAQ,EAAC,EAAE,2BAA2B,kDA4QtE;AAoaD,OAAO,EAAC,sBAAsB,EAAC,CAAC;AAEhC,eAAO,MAAM,sBAAsB,EAAE,OAQpC,CAAC"}
@@ -0,0 +1,303 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import React, { useState, useEffect } from 'react';
3
+ import { Box, Text, useInput, useFocus } from 'ink';
4
+ import { TitledBox, titleStyles } from '@mishieck/ink-titled-box';
5
+ import { Tabs, Tab } from 'ink-tab';
6
+ import { useTerminalWidth } from '../hooks/useTerminalWidth.js';
7
+ import { useTheme } from '../hooks/useTheme.js';
8
+ import { systemDetector } from '../system/detector.js';
9
+ import { recommendationEngine, } from '../recommendations/recommendation-engine.js';
10
+ function RecommendationsDisplay({ onCancel }) {
11
+ const boxWidth = useTerminalWidth();
12
+ const { colors } = useTheme();
13
+ const [systemCaps, setSystemCaps] = useState(null);
14
+ const [models, setModels] = useState([]);
15
+ const [topLocalModel, setTopLocalModel] = useState(null);
16
+ const [topApiModel, setTopApiModel] = useState(null);
17
+ const [loading, setLoading] = useState(true);
18
+ const [error, setError] = useState(null);
19
+ const [currentModelIndex, setCurrentModelIndex] = useState(0);
20
+ const [activeTab, setActiveTab] = useState('local');
21
+ const [searchQuery, setSearchQuery] = useState('');
22
+ const [searchMode, setSearchMode] = useState(false);
23
+ const [closed, setClosed] = useState(false);
24
+ // Capture focus to prevent user input from being active
25
+ useFocus({ autoFocus: true, id: 'recommendations-display' });
26
+ // Get current tab's models with search filtering
27
+ const filterBySearch = (modelList) => {
28
+ if (!searchMode || !searchQuery)
29
+ return modelList;
30
+ return modelList.filter(m => m.model.name.toLowerCase().includes(searchQuery.toLowerCase()));
31
+ };
32
+ // In search mode, combine all models
33
+ const allModelsForSearch = searchMode ? models : [];
34
+ const localModels = searchMode ? [] : models.filter(m => m.model.local);
35
+ const apiModels = searchMode ? [] : models.filter(m => m.model.api);
36
+ const currentTabModels = searchMode
37
+ ? filterBySearch(allModelsForSearch)
38
+ : activeTab === 'local'
39
+ ? localModels
40
+ : apiModels;
41
+ // Keyboard handler for navigation
42
+ useInput((input, key) => {
43
+ if (key.escape) {
44
+ if (searchMode) {
45
+ // Exit search mode and clear search
46
+ setSearchMode(false);
47
+ setSearchQuery('');
48
+ setCurrentModelIndex(0);
49
+ }
50
+ else {
51
+ // Close the recommendations view
52
+ setClosed(true);
53
+ if (onCancel) {
54
+ onCancel();
55
+ }
56
+ }
57
+ }
58
+ else if (key.return) {
59
+ setClosed(true);
60
+ if (onCancel) {
61
+ onCancel();
62
+ }
63
+ }
64
+ else if (key.upArrow) {
65
+ setCurrentModelIndex(prev => Math.max(0, prev - 1));
66
+ }
67
+ else if (key.downArrow) {
68
+ setCurrentModelIndex(prev => Math.min(currentTabModels.length - 1, prev + 1));
69
+ }
70
+ else if (key.leftArrow && !searchMode) {
71
+ setActiveTab('local');
72
+ }
73
+ else if (key.rightArrow && !searchMode) {
74
+ setActiveTab('api');
75
+ }
76
+ else if (key.backspace || key.delete) {
77
+ if (searchMode) {
78
+ setSearchQuery(prev => {
79
+ const newQuery = prev.slice(0, -1);
80
+ // Exit search mode if query becomes empty
81
+ if (newQuery === '') {
82
+ setSearchMode(false);
83
+ }
84
+ return newQuery;
85
+ });
86
+ setCurrentModelIndex(0);
87
+ }
88
+ }
89
+ else if (input && input.length === 1 && !key.ctrl && !key.meta) {
90
+ // Add printable characters to search
91
+ if (!searchMode) {
92
+ setSearchMode(true);
93
+ }
94
+ setSearchQuery(prev => prev + input);
95
+ setCurrentModelIndex(0);
96
+ }
97
+ // Consume all other input by doing nothing
98
+ });
99
+ // Reset index when switching tabs
100
+ useEffect(() => {
101
+ setCurrentModelIndex(0);
102
+ }, [activeTab]);
103
+ useEffect(() => {
104
+ async function loadRecommendations() {
105
+ try {
106
+ const capabilities = await systemDetector.getSystemCapabilities();
107
+ setSystemCaps(capabilities);
108
+ const result = recommendationEngine.getRecommendations(capabilities);
109
+ setModels(result.allModels);
110
+ // Get top local model (one user can actually run)
111
+ const canRunLocally = (model) => {
112
+ return (!model.model.minMemoryGB ||
113
+ capabilities.memory.total >= model.model.minMemoryGB);
114
+ };
115
+ // Local model scoring: agentic is most important, then feasibility (can it run on this system)
116
+ const getLocalScore = (model) => {
117
+ const canRun = canRunLocally(model);
118
+ if (!canRun)
119
+ return 0; // Can't run = score of 0
120
+ return (model.model.quality.agentic * 3.0 +
121
+ model.model.quality.local * 1.5);
122
+ };
123
+ // API model scoring: agentic is most important, then cost (value for money)
124
+ const getApiScore = (model) => {
125
+ return (model.model.quality.agentic * 3.0 +
126
+ model.model.quality.cost * 1.2);
127
+ };
128
+ const localModels = result.allModels
129
+ .filter(m => m.model.local)
130
+ .sort((a, b) => getLocalScore(b) - getLocalScore(a));
131
+ const apiModels = result.allModels
132
+ .filter(m => m.model.api)
133
+ .sort((a, b) => getApiScore(b) - getApiScore(a));
134
+ setTopLocalModel(localModels[0] || null);
135
+ setTopApiModel(apiModels[0] || null);
136
+ setLoading(false);
137
+ }
138
+ catch (error_) {
139
+ setError(error_ instanceof Error ? error_.message : 'Failed to analyze system');
140
+ setLoading(false);
141
+ }
142
+ }
143
+ void loadRecommendations();
144
+ }, []);
145
+ // Return null when closed to hide the component
146
+ if (closed) {
147
+ return null;
148
+ }
149
+ if (loading) {
150
+ return (_jsx(TitledBox, { borderStyle: "round", titles: ['/recommendations'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.primary, paddingX: 2, paddingY: 1, children: _jsx(Text, { color: colors.white, children: "Analyzing your system..." }) }));
151
+ }
152
+ if (error) {
153
+ return (_jsx(TitledBox, { borderStyle: "round", titles: ['/recommendations'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.error, paddingX: 2, paddingY: 1, children: _jsxs(Text, { color: colors.error, children: ["Error: ", error] }) }));
154
+ }
155
+ if (!systemCaps) {
156
+ return (_jsx(TitledBox, { borderStyle: "round", titles: ['/recommendations'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.error, paddingX: 2, paddingY: 1, children: _jsx(Text, { color: colors.error, children: "Unable to detect system capabilities" }) }));
157
+ }
158
+ return (_jsxs(TitledBox, { borderStyle: "round", titles: ['/recommendations'], titleStyles: titleStyles.pill, width: boxWidth, borderColor: colors.primary, paddingX: 2, paddingY: 1, marginBottom: 1, flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(SystemSummary, { systemCaps: systemCaps, colors: colors }), (topLocalModel || topApiModel) && (_jsx(QuickStartSection, { topLocalModel: topLocalModel, topApiModel: topApiModel, colors: colors }))] }), _jsx(ModelsTabView, { models: models, colors: colors, currentModelIndex: currentModelIndex, activeTab: activeTab, onTabChange: setActiveTab, systemCaps: systemCaps, searchMode: searchMode, searchQuery: searchQuery, currentTabModels: currentTabModels }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [searchMode && searchQuery && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.primary, children: ["\uD83D\uDD0D Search: ", _jsx(Text, { bold: true, children: searchQuery })] }) })), _jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.secondary, dimColor: true, children: "\uD83D\uDCA1 Add providers to agents.config.json to use these models." }) }), _jsx(Text, { color: colors.secondary, dimColor: true, children: searchMode
159
+ ? 'Type to search | Backspace to delete | ↑/↓: Navigate | Esc: Exit search'
160
+ : 'Type to search | ↑/↓: Navigate | ←/→: Switch tabs | Esc: Close' })] })] }));
161
+ }
162
+ function SystemSummary({ systemCaps, colors, }) {
163
+ const gpuText = systemCaps.gpu.available
164
+ ? `${systemCaps.gpu.type} GPU${systemCaps.gpu.memory ? ` (${systemCaps.gpu.memory}GB)` : ''}`
165
+ : 'No GPU';
166
+ const networkText = systemCaps.network.connected
167
+ ? `Connected${systemCaps.network.speed ? ` (${systemCaps.network.speed})` : ''}`
168
+ : 'Offline';
169
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: 'round', borderColor: colors.secondary, padding: 1, width: '50%', children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.primary, bold: true, underline: true, children: "Your System:" }) }), _jsxs(Text, { children: [systemCaps.memory.total, "GB RAM, ", systemCaps.cpu.cores, " cores, ", gpuText] }), _jsxs(Text, { color: colors.white, children: ["Network: ", networkText] })] }));
170
+ }
171
+ function QuickStartSection({ topLocalModel, topApiModel, colors, }) {
172
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: 'round', borderColor: colors.secondary, padding: 1, width: '50%', children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.success, bold: true, underline: true, children: "Quick Start:" }) }), topLocalModel && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.success, children: [_jsx(Text, { bold: true, children: "\uD83D\uDC49 Local: " }), topLocalModel.model.name] }) })), topApiModel && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.primary, children: [_jsx(Text, { bold: true, children: "\uD83D\uDC49 API: " }), topApiModel.model.name] }) })), !topLocalModel && !topApiModel && (_jsx(Text, { color: colors.warning, children: "No models available" }))] }));
173
+ }
174
+ function ModelsTabView({ models, colors, currentModelIndex, activeTab, onTabChange, systemCaps, searchMode, searchQuery, currentTabModels, }) {
175
+ // Check if model can run locally on this system
176
+ const canRunLocally = (model) => {
177
+ return (!model.model.minMemoryGB ||
178
+ systemCaps.memory.total >= model.model.minMemoryGB);
179
+ };
180
+ // Local model scoring: agentic is most important, then feasibility
181
+ const getLocalScore = (model) => {
182
+ const canRun = canRunLocally(model);
183
+ if (!canRun)
184
+ return 0; // Can't run = score of 0
185
+ return (model.model.quality.agentic * 3.0 +
186
+ model.model.quality.local * 1.5);
187
+ };
188
+ // API model scoring: agentic is most important, then cost (value for money)
189
+ const getApiScore = (model) => {
190
+ return (model.model.quality.agentic * 3.0 +
191
+ model.model.quality.cost * 1.2);
192
+ };
193
+ // Separate models into local and API, then sort by appropriate score
194
+ const localModels = models
195
+ .filter(m => m.model.local)
196
+ .sort((a, b) => getLocalScore(b) - getLocalScore(a));
197
+ const apiModels = models
198
+ .filter(m => m.model.api)
199
+ .sort((a, b) => getApiScore(b) - getApiScore(a));
200
+ // Use passed in currentTabModels if in search mode, otherwise calculate
201
+ const currentModels = searchMode
202
+ ? currentTabModels
203
+ : activeTab === 'local'
204
+ ? localModels
205
+ : apiModels;
206
+ const currentModel = currentModels[currentModelIndex];
207
+ if (!currentModel) {
208
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: 'round', borderColor: colors.secondary, padding: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.primary, bold: true, underline: true, children: searchMode ? 'Search Mode' : 'Model Database' }) }), !searchMode && (_jsxs(Tabs, { onChange: name => onTabChange(name), defaultValue: activeTab, colors: {
209
+ activeTab: {
210
+ color: colors.success,
211
+ },
212
+ }, children: [_jsx(Tab, { name: "local", children: "Local Models" }), _jsx(Tab, { name: "api", children: "API Models" })] })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.warning, children: searchMode && searchQuery
213
+ ? `No models found matching "${searchQuery}"`
214
+ : 'No models available in this category' }) })] }));
215
+ }
216
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: 'round', borderColor: colors.secondary, padding: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: colors.primary, bold: true, underline: true, children: searchMode ? 'Search Mode' : 'Model Database' }) }), !searchMode && (_jsxs(Tabs, { onChange: name => onTabChange(name), defaultValue: activeTab, colors: {
217
+ activeTab: {
218
+ color: colors.success,
219
+ },
220
+ }, children: [_jsx(Tab, { name: "local", children: "Local Models" }), _jsx(Tab, { name: "api", children: "API Models" })] })), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.secondary, dimColor: true, children: ["Model ", currentModelIndex + 1, " of ", currentModels.length] }) }), _jsx(ModelItem, { model: currentModel, colors: colors, showScore: true, localScore: getLocalScore(currentModel), apiScore: getApiScore(currentModel), isLocalTab: activeTab === 'local', systemCaps: systemCaps, searchMode: searchMode })] })] }));
221
+ }
222
+ function ModelItem({ model, colors, showScore, localScore, apiScore, isLocalTab, systemCaps, searchMode, }) {
223
+ // Access type from local/api flags
224
+ const accessTypes = [];
225
+ if (model.model.local)
226
+ accessTypes.push('Local');
227
+ if (model.model.api)
228
+ accessTypes.push('API');
229
+ const accessType = accessTypes.join(' + ') || 'Unknown';
230
+ // Check if model can run locally
231
+ const canRunLocally = !model.model.minMemoryGB ||
232
+ (systemCaps && systemCaps.memory.total >= model.model.minMemoryGB);
233
+ // Get score color and label based on quality (normalized to 10)
234
+ const getScoreInfo = (score, forLocal) => {
235
+ // Different max scores for local vs API
236
+ // Local max: 10*3 + 10*1.5 = 45
237
+ // API max: 10*3 + 10*1.2 = 42
238
+ const maxScore = forLocal ? 45 : 42;
239
+ const normalizedScore = (score / maxScore) * 10;
240
+ if (normalizedScore >= 7.5)
241
+ return { color: colors.success, label: 'Excellent', score: normalizedScore };
242
+ if (normalizedScore >= 6.5)
243
+ return { color: colors.primary, label: 'Good', score: normalizedScore };
244
+ if (normalizedScore >= 5.0)
245
+ return { color: colors.warning, label: 'Decent', score: normalizedScore };
246
+ return { color: colors.error, label: 'Poor', score: normalizedScore };
247
+ };
248
+ // In search mode with both local and API, show both scores
249
+ const showBothScores = searchMode && model.model.local && model.model.api;
250
+ const localScoreInfo = localScore !== undefined && (showBothScores || isLocalTab)
251
+ ? getScoreInfo(localScore, true)
252
+ : null;
253
+ const apiScoreInfo = apiScore !== undefined && (showBothScores || !isLocalTab)
254
+ ? getScoreInfo(apiScore, false)
255
+ : null;
256
+ // Generate weaknesses based on context and scores
257
+ const getWeaknesses = () => {
258
+ const weaknesses = [];
259
+ const activeScoreInfo = isLocalTab ? localScoreInfo : apiScoreInfo;
260
+ const activeScore = isLocalTab ? localScore : apiScore;
261
+ // Only show weaknesses if score is Poor or Decent
262
+ if (!activeScoreInfo || activeScoreInfo.score >= 6.5)
263
+ return weaknesses;
264
+ if (isLocalTab) {
265
+ // Local weaknesses
266
+ if (!canRunLocally) {
267
+ const required = model.model.minMemoryGB || 0;
268
+ const available = systemCaps?.memory.total || 0;
269
+ weaknesses.push(`Cannot run locally - requires ${required}GB RAM (you have ${available}GB)`);
270
+ }
271
+ if (model.model.quality.agentic < 5) {
272
+ weaknesses.push('Limited agentic coding capabilities');
273
+ }
274
+ if (model.model.quality.local < 5 && canRunLocally) {
275
+ weaknesses.push('Difficult to run locally - requires significant resources');
276
+ }
277
+ }
278
+ else {
279
+ // API weaknesses
280
+ if (model.model.quality.agentic < 5) {
281
+ weaknesses.push('Limited agentic coding capabilities');
282
+ }
283
+ if (model.model.quality.cost < 5) {
284
+ weaknesses.push('Expensive API pricing');
285
+ }
286
+ }
287
+ return weaknesses;
288
+ };
289
+ const weaknesses = getWeaknesses();
290
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { children: _jsx(Text, { color: colors.primary, bold: true, underline: true, children: model.model.name }) }), _jsxs(Box, { marginLeft: 2, flexDirection: "column", children: [_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Text, { color: colors.white, children: [_jsx(Text, { bold: true, children: "Author: " }), model.model.author] }), _jsxs(Text, { color: colors.white, children: [_jsx(Text, { bold: true, children: "Size: " }), model.model.size] }), _jsxs(Text, { color: colors.white, children: [_jsx(Text, { bold: true, children: "Access: " }), accessType] }), _jsxs(Text, { color: colors.white, children: [_jsx(Text, { bold: true, children: "Cost: " }), model.model.costDetails] }), showScore && showBothScores ? (_jsxs(_Fragment, { children: [localScoreInfo && (_jsxs(Text, { color: colors.white, children: [_jsx(Text, { bold: true, children: "Local Quality: " }), _jsx(Text, { color: localScoreInfo.color, bold: true, children: localScoreInfo.label }), _jsxs(Text, { dimColor: true, children: [" (", localScoreInfo.score.toFixed(1), "/10)"] })] })), apiScoreInfo && (_jsxs(Text, { color: colors.white, children: [_jsx(Text, { bold: true, children: "API Quality: " }), _jsx(Text, { color: apiScoreInfo.color, bold: true, children: apiScoreInfo.label }), _jsxs(Text, { dimColor: true, children: [" (", apiScoreInfo.score.toFixed(1), "/10)"] })] }))] })) : showScore && (localScoreInfo || apiScoreInfo) ? (_jsxs(Text, { color: colors.white, children: [_jsxs(Text, { bold: true, children: ["Quality For You ", localScoreInfo ? 'Locally' : 'via API', ":", ' '] }), _jsx(Text, { color: (localScoreInfo || apiScoreInfo).color, bold: true, children: (localScoreInfo || apiScoreInfo).label }), _jsxs(Text, { dimColor: true, children: [" (", (localScoreInfo || apiScoreInfo).score.toFixed(1), "/10)"] })] })) : null] }), _jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.success, bold: true, children: "Strengths:" }), model.recommendation.split('\n').map((line, i) => (_jsx(Text, { color: colors.success, children: line }, i)))] }), weaknesses.length > 0 && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: colors.error, bold: true, children: "Weaknesses:" }), weaknesses.map((line, i) => (_jsxs(Text, { color: colors.error, children: ["\u2022 ", line] }, i)))] }))] })] }));
291
+ }
292
+ // Export the display component for use in app.tsx
293
+ export { RecommendationsDisplay };
294
+ export const recommendationsCommand = {
295
+ name: 'recommendations',
296
+ description: 'Get AI model recommendations based on your system',
297
+ handler: async (_args, _messages, _metadata) => {
298
+ // This command is handled specially in app.tsx
299
+ // This handler exists only for registration purposes
300
+ return React.createElement(React.Fragment);
301
+ },
302
+ };
303
+ //# sourceMappingURL=recommendations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recommendations.js","sourceRoot":"","sources":["../../source/commands/recommendations.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"assistant-message.d.ts","sourceRoot":"","sources":["../../source/components/assistant-message.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;;AAM7D,wBAgEG"}
1
+ {"version":3,"file":"assistant-message.d.ts","sourceRoot":"","sources":["../../source/components/assistant-message.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;;AAkE7D,wBA0BG"}
@@ -2,42 +2,67 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Text, Box } from 'ink';
3
3
  import { memo, useMemo } from 'react';
4
4
  import { useTheme } from '../hooks/useTheme.js';
5
- // Performance optimization: truncate very long messages to prevent input lag
6
- const MAX_MESSAGE_LENGTH = 6000; // characters - beyond this causes input lag
7
- const TRUNCATE_PREVIEW_LENGTH = 3000; // characters to show before truncation
5
+ import chalk from 'chalk';
6
+ // Basic markdown parser for terminal
7
+ function parseMarkdown(text, themeColors) {
8
+ let result = text;
9
+ // Code blocks (```language\ncode\n```)
10
+ result = result.replace(/```(\w+)?\n([\s\S]*?)```/g, (_match, _lang, code) => {
11
+ return chalk.hex(themeColors.tool)(code.trim());
12
+ });
13
+ // Inline code (`code`)
14
+ result = result.replace(/`([^`]+)`/g, (_match, code) => {
15
+ return chalk.hex(themeColors.tool)(code);
16
+ });
17
+ // Bold (**text** or __text__)
18
+ result = result.replace(/\*\*([^*]+)\*\*/g, (_match, text) => {
19
+ return chalk.hex(themeColors.white).bold(text);
20
+ });
21
+ result = result.replace(/__([^_]+)__/g, (_match, text) => {
22
+ return chalk.hex(themeColors.white).bold(text);
23
+ });
24
+ // Italic (*text* or _text_)
25
+ result = result.replace(/\*([^*]+)\*/g, (_match, text) => {
26
+ return chalk.hex(themeColors.white).italic(text);
27
+ });
28
+ result = result.replace(/_([^_]+)_/g, (_match, text) => {
29
+ return chalk.hex(themeColors.white).italic(text);
30
+ });
31
+ // Headings (# Heading)
32
+ result = result.replace(/^(#{1,6})\s+(.+)$/gm, (_match, hashes, text) => {
33
+ return chalk.hex(themeColors.primary).bold(text);
34
+ });
35
+ // Links [text](url)
36
+ result = result.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (_match, text, url) => {
37
+ return (chalk.hex(themeColors.info).underline(text) +
38
+ ' ' +
39
+ chalk.hex(themeColors.secondary)(`(${url})`));
40
+ });
41
+ // Blockquotes (> text)
42
+ result = result.replace(/^>\s+(.+)$/gm, (_match, text) => {
43
+ return chalk.hex(themeColors.secondary).italic(`> ${text}`);
44
+ });
45
+ // List items (- item or * item or 1. item)
46
+ result = result.replace(/^[\s]*[-*]\s+(.+)$/gm, (_match, text) => {
47
+ return chalk.hex(themeColors.white)(`• ${text}`);
48
+ });
49
+ result = result.replace(/^[\s]*\d+\.\s+(.+)$/gm, (_match, text) => {
50
+ return chalk.hex(themeColors.white)(text);
51
+ });
52
+ return result;
53
+ }
8
54
  export default memo(function AssistantMessage({ message, model, }) {
9
55
  const { colors } = useTheme();
10
- const { displayMessage, wasTruncated, remainingChars } = useMemo(() => {
11
- if (message.length <= MAX_MESSAGE_LENGTH) {
12
- return {
13
- displayMessage: message,
14
- wasTruncated: false,
15
- remainingChars: 0,
16
- };
56
+ // Render markdown to terminal-formatted text with theme colors
57
+ const renderedMessage = useMemo(() => {
58
+ try {
59
+ return parseMarkdown(message, colors);
17
60
  }
18
- // Find a good truncation point (prefer end of line or sentence)
19
- const truncateAt = TRUNCATE_PREVIEW_LENGTH;
20
- let cutPoint = truncateAt;
21
- // Try to find a natural break point near the truncation point
22
- const searchArea = message.slice(Math.max(0, truncateAt - 100), truncateAt + 100);
23
- const lineBreak = searchArea.lastIndexOf('\n');
24
- const sentenceEnd = searchArea.lastIndexOf('.');
25
- const paragraphEnd = searchArea.lastIndexOf('\n\n');
26
- if (paragraphEnd !== -1) {
27
- cutPoint = truncateAt - 100 + paragraphEnd + 2;
61
+ catch {
62
+ // Fallback to plain text if markdown parsing fails
63
+ return message;
28
64
  }
29
- else if (lineBreak !== -1) {
30
- cutPoint = truncateAt - 100 + lineBreak + 1;
31
- }
32
- else if (sentenceEnd !== -1) {
33
- cutPoint = truncateAt - 100 + sentenceEnd + 1;
34
- }
35
- return {
36
- displayMessage: message.slice(0, cutPoint).trimEnd(),
37
- wasTruncated: true,
38
- remainingChars: message.length - cutPoint,
39
- };
40
- }, [message]);
41
- return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { children: _jsxs(Text, { color: colors.primary, bold: true, children: [model, ":"] }) }), _jsx(Text, { color: colors.white, children: displayMessage }), wasTruncated && (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { color: colors.secondary, dimColor: true, children: ["... [", remainingChars.toLocaleString(), " more characters truncated for performance]"] }), _jsx(Text, { color: colors.info, children: "Scroll up to see the beginning or use terminal's buffer to view full response" })] }))] }));
65
+ }, [message, colors]);
66
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { color: colors.primary, bold: true, children: [model, ":"] }) }), _jsx(Text, { children: renderedMessage })] }));
42
67
  });
43
68
  //# sourceMappingURL=assistant-message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assistant-message.js","sourceRoot":"","sources":["../../source/components/assistant-message.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAE,GAAG,EAAC,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AACpC,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAG9C,6EAA6E;AAC7E,MAAM,kBAAkB,GAAG,IAAI,CAAC,CAAC,4CAA4C;AAC7E,MAAM,uBAAuB,GAAG,IAAI,CAAC,CAAC,uCAAuC;AAE7E,eAAe,IAAI,CAAC,SAAS,gBAAgB,CAAC,EAC7C,OAAO,EACP,KAAK,GACkB;IACvB,MAAM,EAAC,MAAM,EAAC,GAAG,QAAQ,EAAE,CAAC;IAC5B,MAAM,EAAC,cAAc,EAAE,YAAY,EAAE,cAAc,EAAC,GAAG,OAAO,CAAC,GAAG,EAAE;QACnE,IAAI,OAAO,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAC;YAC1C,OAAO;gBACN,cAAc,EAAE,OAAO;gBACvB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,CAAC;aACjB,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,MAAM,UAAU,GAAG,uBAAuB,CAAC;QAC3C,IAAI,QAAQ,GAAG,UAAU,CAAC;QAE1B,8DAA8D;QAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAC/B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,GAAG,CAAC,EAC7B,UAAU,GAAG,GAAG,CAChB,CAAC;QACF,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAEpD,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACzB,QAAQ,GAAG,UAAU,GAAG,GAAG,GAAG,YAAY,GAAG,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7B,QAAQ,GAAG,UAAU,GAAG,GAAG,GAAG,SAAS,GAAG,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/B,QAAQ,GAAG,UAAU,GAAG,GAAG,GAAG,WAAW,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO;YACN,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,OAAO,EAAE;YACpD,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,OAAO,CAAC,MAAM,GAAG,QAAQ;SACzC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aAC1C,KAAC,GAAG,cACH,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,mBAC/B,KAAK,SACA,GACF,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,YAAG,cAAc,GAAQ,EACjD,YAAY,IAAI,CAChB,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACxC,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,4BAChC,cAAc,CAAC,cAAc,EAAE,mDAE/B,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,8FAGjB,IACF,CACN,IACI,CACN,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"assistant-message.js","sourceRoot":"","sources":["../../source/components/assistant-message.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAE,GAAG,EAAC,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AACpC,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAE9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,qCAAqC;AACrC,SAAS,aAAa,CAAC,IAAY,EAAE,WAAgB;IACpD,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,uCAAuC;IACvC,MAAM,GAAG,MAAM,CAAC,OAAO,CACtB,2BAA2B,EAC3B,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC,CACD,CAAC;IAEF,uBAAuB;IACvB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAC5D,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACxD,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACxD,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACtD,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QACvE,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QACzE,OAAO,CACN,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YAC3C,GAAG;YACH,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAC5C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACxD,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,2CAA2C;IAC3C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAChE,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACjE,OAAO,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC;AAED,eAAe,IAAI,CAAC,SAAS,gBAAgB,CAAC,EAC7C,OAAO,EACP,KAAK,GACkB;IACvB,MAAM,EAAC,MAAM,EAAC,GAAG,QAAQ,EAAE,CAAC;IAE5B,+DAA+D;IAC/D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC;YACJ,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACR,mDAAmD;YACnD,OAAO,OAAO,CAAC;QAChB,CAAC;IACF,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtB,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aAC1C,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YACnB,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,mBAC/B,KAAK,SACA,GACF,EACN,KAAC,IAAI,cAAE,eAAe,GAAQ,IACzB,CACN,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-queue.js","sourceRoot":"","sources":["../../source/components/chat-queue.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,OAAO,CAAC;AAGzD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,eAAe,IAAI,CAAC,SAAS,SAAS,CAAC,EACtC,gBAAgB,GAAG,EAAE,EACrB,gBAAgB,GAAG,EAAE,EACrB,YAAY,GAAG,mBAAmB,GAClB;IAChB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC;QAC5C,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,KAAK,CACpD,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,EAAE,CAAC,CAAC,CACvC,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,sBAAsB,CAAC,CAAC;QACpE,OAAO,UAAU,CAAC;IACnB,CAAC,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;IAEvD,OAAO,CACN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YACvC,oEAAoE;YACpE,MAAM,GAAG,GACR,SAAS;gBACT,OAAO,SAAS,KAAK,QAAQ;gBAC7B,KAAK,IAAI,SAAS;gBAClB,SAAS,CAAC,GAAG;gBACZ,CAAC,CAAC,SAAS,CAAC,GAAG;gBACf,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC;YAEvB,OAAO,KAAC,QAAQ,cAAY,SAAS,IAAf,GAAG,CAAwB,CAAC;QACrD,CAAC,CAAC,GACG,CACN,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"chat-queue.js","sourceRoot":"","sources":["../../source/components/chat-queue.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,OAAO,EAAY,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,OAAO,CAAC;AAGzD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,eAAe,IAAI,CAAC,SAAS,SAAS,CAAC,EACtC,gBAAgB,GAAG,EAAE,EACrB,gBAAgB,GAAG,EAAE,EACrB,YAAY,GAAG,mBAAmB,GAClB;IAChB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC;QAC5C,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,KAAK,CACpD,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,EAAE,CAAC,CAAC,CACvC,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,sBAAsB,CAAC,CAAC;QACpE,OAAO,UAAU,CAAC;IACnB,CAAC,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;IAEvD,OAAO,CACN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YACvC,oEAAoE;YACpE,MAAM,GAAG,GACR,SAAS;gBACT,OAAO,SAAS,KAAK,QAAQ;gBAC7B,KAAK,IAAI,SAAS;gBAClB,SAAS,CAAC,GAAG;gBACZ,CAAC,CAAC,SAAS,CAAC,GAAG;gBACf,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC;YAEzB,OAAO,KAAC,QAAQ,cAAY,SAAS,IAAf,GAAG,CAAwB,CAAC;QACnD,CAAC,CAAC,GACG,CACN,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,7 +1,6 @@
1
- import { ProviderType } from '../types/core.js';
2
1
  interface ProviderSelectorProps {
3
- currentProvider: ProviderType;
4
- onProviderSelect: (provider: ProviderType) => void;
2
+ currentProvider: string;
3
+ onProviderSelect: (provider: string) => void;
5
4
  onCancel: () => void;
6
5
  }
7
6
  export default function ProviderSelector({ currentProvider, onProviderSelect, onCancel, }: ProviderSelectorProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"provider-selector.d.ts","sourceRoot":"","sources":["../../source/components/provider-selector.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAG9C,UAAU,qBAAqB;IAC9B,eAAe,EAAE,YAAY,CAAC;IAC9B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,MAAM,IAAI,CAAC;CACrB;AAOD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACxC,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACR,EAAE,qBAAqB,2CAsDvB"}
1
+ {"version":3,"file":"provider-selector.d.ts","sourceRoot":"","sources":["../../source/components/provider-selector.tsx"],"names":[],"mappings":"AAQA,UAAU,qBAAqB;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,EAAE,MAAM,IAAI,CAAC;CACrB;AAOD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACxC,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACR,EAAE,qBAAqB,2CAsDvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider-selector.js","sourceRoot":"","sources":["../../source/components/provider-selector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,KAAK,CAAC;AACxC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAa9D,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACxC,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACe;IACvB,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,EAAC,MAAM,EAAC,GAAG,QAAQ,EAAE,CAAC;IAE5B,MAAM,kBAAkB,GAAG,GAAqB,EAAE;QACjD,MAAM,OAAO,GAAqB,EAAE,CAAC;QAErC,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACzB,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,GACtB,eAAe,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EACpD,EAAE;oBACF,KAAK,EAAE,QAAQ,CAAC,IAAoB;iBACpC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAmB,kBAAkB,EAAE,CAAC,CAAC;IAErE,8BAA8B;IAC9B,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QACnB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC;QACZ,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,IAAoB,EAAE,EAAE;QAC7C,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,OAAO,CACN,KAAC,SAAS,IAET,WAAW,EAAC,OAAO,EACnB,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAC7B,WAAW,EAAE,WAAW,CAAC,IAAI,EAC7B,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,MAAM,CAAC,OAAO,EAC3B,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,YAAY,EAAE,CAAC,YAEf,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAC1B,KAAC,WAAW,IAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAI,EACzD,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,uCAA+B,GACvD,IACD,IAfD,MAAM,CAAC,OAAO,CAgBR,CACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"provider-selector.js","sourceRoot":"","sources":["../../source/components/provider-selector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,KAAK,CAAC;AACxC,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAC,SAAS,EAAE,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAa9D,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACxC,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACe;IACvB,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,EAAC,MAAM,EAAC,GAAG,QAAQ,EAAE,CAAC;IAE5B,MAAM,kBAAkB,GAAG,GAAqB,EAAE;QACjD,MAAM,OAAO,GAAqB,EAAE,CAAC;QAErC,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACzB,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,GACtB,eAAe,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EACpD,EAAE;oBACF,KAAK,EAAE,QAAQ,CAAC,IAAI;iBACpB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAmB,kBAAkB,EAAE,CAAC,CAAC;IAErE,8BAA8B;IAC9B,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QACnB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC;QACZ,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,IAAoB,EAAE,EAAE;QAC7C,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,OAAO,CACN,KAAC,SAAS,IAET,WAAW,EAAC,OAAO,EACnB,MAAM,EAAE,CAAC,mBAAmB,CAAC,EAC7B,WAAW,EAAE,WAAW,CAAC,IAAI,EAC7B,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,MAAM,CAAC,OAAO,EAC3B,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,YAAY,EAAE,CAAC,YAEf,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aAC1B,KAAC,WAAW,IAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,GAAI,EACzD,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS,uCAA+B,GACvD,IACD,IAfD,MAAM,CAAC,OAAO,CAgBR,CACZ,CAAC;AACH,CAAC"}