centaurus-cli 2.5.2 → 2.5.3

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 (246) hide show
  1. package/AUTH_FLOW.md +138 -0
  2. package/CONFIG_GUIDE.md +249 -0
  3. package/dist/config/models.d.ts +1 -1
  4. package/dist/config/models.d.ts.map +1 -1
  5. package/dist/config/models.js +2 -0
  6. package/dist/config/models.js.map +1 -1
  7. package/dist/ui/components/App.d.ts.map +1 -1
  8. package/dist/ui/components/App.js +104 -62
  9. package/dist/ui/components/App.js.map +1 -1
  10. package/dist/ui/components/FontRecommendation.d.ts +1 -0
  11. package/dist/ui/components/FontRecommendation.d.ts.map +1 -0
  12. package/dist/ui/components/FontRecommendation.js +1 -0
  13. package/dist/ui/components/FontRecommendation.js.map +1 -0
  14. package/dist/ui/components/InputBox.d.ts.map +1 -1
  15. package/dist/ui/components/InputBox.js +3 -2
  16. package/dist/ui/components/InputBox.js.map +1 -1
  17. package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
  18. package/dist/ui/components/MarkdownRenderer.js +34 -9
  19. package/dist/ui/components/MarkdownRenderer.js.map +1 -1
  20. package/dist/ui/components/MessageDisplay.js +2 -2
  21. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
  22. package/dist/ui/components/StreamingMessageDisplay.js +3 -3
  23. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  24. package/dist/ui/components/ThinkingDisplay.d.ts +13 -0
  25. package/dist/ui/components/ThinkingDisplay.d.ts.map +1 -0
  26. package/dist/ui/components/ThinkingDisplay.js +41 -0
  27. package/dist/ui/components/ThinkingDisplay.js.map +1 -0
  28. package/dist/utils/version-checker.d.ts.map +1 -1
  29. package/dist/utils/version-checker.js +3 -31
  30. package/dist/utils/version-checker.js.map +1 -1
  31. package/package.json +5 -5
  32. package/dist/ai/provider-factory.d.ts +0 -6
  33. package/dist/ai/provider-factory.d.ts.map +0 -1
  34. package/dist/ai/provider-factory.js +0 -27
  35. package/dist/ai/provider-factory.js.map +0 -1
  36. package/dist/ai/providers/base.d.ts +0 -25
  37. package/dist/ai/providers/base.d.ts.map +0 -1
  38. package/dist/ai/providers/base.js +0 -9
  39. package/dist/ai/providers/base.js.map +0 -1
  40. package/dist/ai/providers/gemini.d.ts +0 -34
  41. package/dist/ai/providers/gemini.d.ts.map +0 -1
  42. package/dist/ai/providers/gemini.js +0 -146
  43. package/dist/ai/providers/gemini.js.map +0 -1
  44. package/dist/commands/view-duplication-logs.d.ts +0 -5
  45. package/dist/commands/view-duplication-logs.d.ts.map +0 -1
  46. package/dist/commands/view-duplication-logs.js +0 -14
  47. package/dist/commands/view-duplication-logs.js.map +0 -1
  48. package/dist/context/__tests__/command-detector.test.d.ts +0 -14
  49. package/dist/context/__tests__/command-detector.test.d.ts.map +0 -1
  50. package/dist/context/__tests__/command-detector.test.js +0 -318
  51. package/dist/context/__tests__/command-detector.test.js.map +0 -1
  52. package/dist/context/__tests__/context-manager.test.d.ts +0 -16
  53. package/dist/context/__tests__/context-manager.test.d.ts.map +0 -1
  54. package/dist/context/__tests__/context-manager.test.js +0 -375
  55. package/dist/context/__tests__/context-manager.test.js.map +0 -1
  56. package/dist/context/__tests__/error-handling.test.d.ts +0 -15
  57. package/dist/context/__tests__/error-handling.test.d.ts.map +0 -1
  58. package/dist/context/__tests__/error-handling.test.js +0 -447
  59. package/dist/context/__tests__/error-handling.test.js.map +0 -1
  60. package/dist/context/handlers/__tests__/docker-handler.test.d.ts +0 -13
  61. package/dist/context/handlers/__tests__/docker-handler.test.d.ts.map +0 -1
  62. package/dist/context/handlers/__tests__/docker-handler.test.js +0 -285
  63. package/dist/context/handlers/__tests__/docker-handler.test.js.map +0 -1
  64. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts +0 -13
  65. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts.map +0 -1
  66. package/dist/context/handlers/__tests__/ssh-handler.test.js +0 -251
  67. package/dist/context/handlers/__tests__/ssh-handler.test.js.map +0 -1
  68. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts +0 -7
  69. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts.map +0 -1
  70. package/dist/context/handlers/__tests__/wsl-handler.test.js +0 -331
  71. package/dist/context/handlers/__tests__/wsl-handler.test.js.map +0 -1
  72. package/dist/index-custom.d.ts +0 -3
  73. package/dist/index-custom.d.ts.map +0 -1
  74. package/dist/index-custom.js +0 -65
  75. package/dist/index-custom.js.map +0 -1
  76. package/dist/prompts/system-prompt.d.ts +0 -47
  77. package/dist/prompts/system-prompt.d.ts.map +0 -1
  78. package/dist/prompts/system-prompt.js +0 -377
  79. package/dist/prompts/system-prompt.js.map +0 -1
  80. package/dist/providers/GoogleProvider.d.ts +0 -26
  81. package/dist/providers/GoogleProvider.d.ts.map +0 -1
  82. package/dist/providers/GoogleProvider.js +0 -313
  83. package/dist/providers/GoogleProvider.js.map +0 -1
  84. package/dist/providers/Provider.d.ts +0 -114
  85. package/dist/providers/Provider.d.ts.map +0 -1
  86. package/dist/providers/Provider.js +0 -44
  87. package/dist/providers/Provider.js.map +0 -1
  88. package/dist/services/__tests__/ai-context-injector.test.d.ts +0 -15
  89. package/dist/services/__tests__/ai-context-injector.test.d.ts.map +0 -1
  90. package/dist/services/__tests__/ai-context-injector.test.js +0 -326
  91. package/dist/services/__tests__/ai-context-injector.test.js.map +0 -1
  92. package/dist/src/context/types.js +0 -27
  93. package/dist/src/services/ai-context-injector.js +0 -96
  94. package/dist/src/services/ai-service-client.js +0 -270
  95. package/dist/src/services/api-client.js +0 -349
  96. package/dist/src/tools/types.js +0 -1
  97. package/dist/src/types/index.js +0 -1
  98. package/dist/test/context/types.js +0 -27
  99. package/dist/test/services/__tests__/ai-context-injector.test.js +0 -325
  100. package/dist/test/services/ai-context-injector.js +0 -96
  101. package/dist/test/services/ai-service-client.js +0 -270
  102. package/dist/test/services/api-client.js +0 -349
  103. package/dist/test/tools/types.js +0 -1
  104. package/dist/test/types/index.js +0 -1
  105. package/dist/test-ai-context-injector.js +0 -97
  106. package/dist/tests/automated-verification.d.ts +0 -27
  107. package/dist/tests/automated-verification.d.ts.map +0 -1
  108. package/dist/tests/automated-verification.js +0 -359
  109. package/dist/tests/automated-verification.js.map +0 -1
  110. package/dist/tests/integration-tests.d.ts +0 -50
  111. package/dist/tests/integration-tests.d.ts.map +0 -1
  112. package/dist/tests/integration-tests.js +0 -648
  113. package/dist/tests/integration-tests.js.map +0 -1
  114. package/dist/tools/file-ops-test.d.ts +0 -6
  115. package/dist/tools/file-ops-test.d.ts.map +0 -1
  116. package/dist/tools/file-ops-test.js +0 -197
  117. package/dist/tools/file-ops-test.js.map +0 -1
  118. package/dist/ui/DisplayHistory.d.ts +0 -53
  119. package/dist/ui/DisplayHistory.d.ts.map +0 -1
  120. package/dist/ui/DisplayHistory.js +0 -82
  121. package/dist/ui/DisplayHistory.js.map +0 -1
  122. package/dist/ui/clack-ui.d.ts +0 -83
  123. package/dist/ui/clack-ui.d.ts.map +0 -1
  124. package/dist/ui/clack-ui.js +0 -304
  125. package/dist/ui/clack-ui.js.map +0 -1
  126. package/dist/ui/components/DisplayItemRenderer.d.ts +0 -18
  127. package/dist/ui/components/DisplayItemRenderer.d.ts.map +0 -1
  128. package/dist/ui/components/DisplayItemRenderer.js +0 -53
  129. package/dist/ui/components/DisplayItemRenderer.js.map +0 -1
  130. package/dist/ui/components/DynamicMessage.d.ts +0 -13
  131. package/dist/ui/components/DynamicMessage.d.ts.map +0 -1
  132. package/dist/ui/components/DynamicMessage.js +0 -27
  133. package/dist/ui/components/DynamicMessage.js.map +0 -1
  134. package/dist/ui/components/FileViewerScreen.d.ts +0 -14
  135. package/dist/ui/components/FileViewerScreen.d.ts.map +0 -1
  136. package/dist/ui/components/FileViewerScreen.js +0 -74
  137. package/dist/ui/components/FileViewerScreen.js.map +0 -1
  138. package/dist/ui/components/ScrollableContent.d.ts +0 -7
  139. package/dist/ui/components/ScrollableContent.d.ts.map +0 -1
  140. package/dist/ui/components/ScrollableContent.js +0 -6
  141. package/dist/ui/components/ScrollableContent.js.map +0 -1
  142. package/dist/ui/components/ScrollableMessageList.d.ts +0 -10
  143. package/dist/ui/components/ScrollableMessageList.d.ts.map +0 -1
  144. package/dist/ui/components/ScrollableMessageList.js +0 -133
  145. package/dist/ui/components/ScrollableMessageList.js.map +0 -1
  146. package/dist/ui/components/ScrollableScreen.d.ts +0 -9
  147. package/dist/ui/components/ScrollableScreen.d.ts.map +0 -1
  148. package/dist/ui/components/ScrollableScreen.js +0 -22
  149. package/dist/ui/components/ScrollableScreen.js.map +0 -1
  150. package/dist/ui/components/StaticMessageHistory.d.ts +0 -14
  151. package/dist/ui/components/StaticMessageHistory.d.ts.map +0 -1
  152. package/dist/ui/components/StaticMessageHistory.js +0 -19
  153. package/dist/ui/components/StaticMessageHistory.js.map +0 -1
  154. package/dist/ui/components/code-block.d.ts +0 -10
  155. package/dist/ui/components/code-block.d.ts.map +0 -1
  156. package/dist/ui/components/code-block.js +0 -74
  157. package/dist/ui/components/code-block.js.map +0 -1
  158. package/dist/ui/components/confirm-prompt.d.ts +0 -12
  159. package/dist/ui/components/confirm-prompt.d.ts.map +0 -1
  160. package/dist/ui/components/confirm-prompt.js +0 -104
  161. package/dist/ui/components/confirm-prompt.js.map +0 -1
  162. package/dist/ui/components/diff-viewer.d.ts +0 -9
  163. package/dist/ui/components/diff-viewer.d.ts.map +0 -1
  164. package/dist/ui/components/diff-viewer.js +0 -57
  165. package/dist/ui/components/diff-viewer.js.map +0 -1
  166. package/dist/ui/components/input-box.d.ts +0 -18
  167. package/dist/ui/components/input-box.d.ts.map +0 -1
  168. package/dist/ui/components/input-box.js +0 -157
  169. package/dist/ui/components/input-box.js.map +0 -1
  170. package/dist/ui/components/keyboard-help.d.ts +0 -7
  171. package/dist/ui/components/keyboard-help.d.ts.map +0 -1
  172. package/dist/ui/components/keyboard-help.js +0 -43
  173. package/dist/ui/components/keyboard-help.js.map +0 -1
  174. package/dist/ui/components/loading-indicator.d.ts +0 -3
  175. package/dist/ui/components/loading-indicator.d.ts.map +0 -1
  176. package/dist/ui/components/loading-indicator.js +0 -42
  177. package/dist/ui/components/loading-indicator.js.map +0 -1
  178. package/dist/ui/components/message-display.d.ts +0 -7
  179. package/dist/ui/components/message-display.d.ts.map +0 -1
  180. package/dist/ui/components/message-display.js +0 -104
  181. package/dist/ui/components/message-display.js.map +0 -1
  182. package/dist/ui/components/misc.d.ts +0 -28
  183. package/dist/ui/components/misc.d.ts.map +0 -1
  184. package/dist/ui/components/misc.js +0 -128
  185. package/dist/ui/components/misc.js.map +0 -1
  186. package/dist/ui/components/select-prompt.d.ts +0 -13
  187. package/dist/ui/components/select-prompt.d.ts.map +0 -1
  188. package/dist/ui/components/select-prompt.js +0 -42
  189. package/dist/ui/components/select-prompt.js.map +0 -1
  190. package/dist/ui/components/status-bar.d.ts +0 -11
  191. package/dist/ui/components/status-bar.d.ts.map +0 -1
  192. package/dist/ui/components/status-bar.js +0 -47
  193. package/dist/ui/components/status-bar.js.map +0 -1
  194. package/dist/ui/components/tool-execution.d.ts +0 -3
  195. package/dist/ui/components/tool-execution.d.ts.map +0 -1
  196. package/dist/ui/components/tool-execution.js +0 -374
  197. package/dist/ui/components/tool-execution.js.map +0 -1
  198. package/dist/ui/components/tool-result.d.ts +0 -11
  199. package/dist/ui/components/tool-result.d.ts.map +0 -1
  200. package/dist/ui/components/tool-result.js +0 -58
  201. package/dist/ui/components/tool-result.js.map +0 -1
  202. package/dist/ui/components/welcome-banner.d.ts +0 -3
  203. package/dist/ui/components/welcome-banner.d.ts.map +0 -1
  204. package/dist/ui/components/welcome-banner.js +0 -46
  205. package/dist/ui/components/welcome-banner.js.map +0 -1
  206. package/dist/ui/hooks/useDisplayHistory.d.ts +0 -13
  207. package/dist/ui/hooks/useDisplayHistory.d.ts.map +0 -1
  208. package/dist/ui/hooks/useDisplayHistory.js +0 -45
  209. package/dist/ui/hooks/useDisplayHistory.js.map +0 -1
  210. package/dist/ui/render-engine.d.ts +0 -69
  211. package/dist/ui/render-engine.d.ts.map +0 -1
  212. package/dist/ui/render-engine.js +0 -197
  213. package/dist/ui/render-engine.js.map +0 -1
  214. package/dist/ui/terminal/TerminalRenderer.d.ts +0 -84
  215. package/dist/ui/terminal/TerminalRenderer.d.ts.map +0 -1
  216. package/dist/ui/terminal/TerminalRenderer.js +0 -154
  217. package/dist/ui/terminal/TerminalRenderer.js.map +0 -1
  218. package/dist/ui/terminal/TerminalUI.d.ts +0 -139
  219. package/dist/ui/terminal/TerminalUI.d.ts.map +0 -1
  220. package/dist/ui/terminal/TerminalUI.js +0 -430
  221. package/dist/ui/terminal/TerminalUI.js.map +0 -1
  222. package/dist/ui/terminal/VirtualChatBuffer.d.ts +0 -32
  223. package/dist/ui/terminal/VirtualChatBuffer.d.ts.map +0 -1
  224. package/dist/ui/terminal/VirtualChatBuffer.js +0 -37
  225. package/dist/ui/terminal/VirtualChatBuffer.js.map +0 -1
  226. package/dist/ui/terminal-kit-base.d.ts +0 -117
  227. package/dist/ui/terminal-kit-base.d.ts.map +0 -1
  228. package/dist/ui/terminal-kit-base.js +0 -188
  229. package/dist/ui/terminal-kit-base.js.map +0 -1
  230. package/dist/ui/utils/duplication-detector.d.ts +0 -32
  231. package/dist/ui/utils/duplication-detector.d.ts.map +0 -1
  232. package/dist/ui/utils/duplication-detector.js +0 -227
  233. package/dist/ui/utils/duplication-detector.js.map +0 -1
  234. package/dist/ui/utils/duplication-logger.d.ts +0 -21
  235. package/dist/ui/utils/duplication-logger.d.ts.map +0 -1
  236. package/dist/ui/utils/duplication-logger.js +0 -85
  237. package/dist/ui/utils/duplication-logger.js.map +0 -1
  238. package/dist/ui/utils/terminal-scanner.d.ts +0 -19
  239. package/dist/ui/utils/terminal-scanner.d.ts.map +0 -1
  240. package/dist/ui/utils/terminal-scanner.js +0 -217
  241. package/dist/ui/utils/terminal-scanner.js.map +0 -1
  242. package/dist/version.d.ts +0 -2
  243. package/dist/version.d.ts.map +0 -1
  244. package/dist/version.js +0 -3
  245. package/dist/version.js.map +0 -1
  246. package/scripts/generate-version.js +0 -25
@@ -29,11 +29,14 @@ export const MarkdownRenderer = ({ content, maxWidth = 100 }) => {
29
29
  const level = element.level || 1;
30
30
  const colors = ['#00ffff', '#00dddd', '#00bbbb', '#009999', '#007777', '#005555'];
31
31
  const color = colors[level - 1] || '#ffffff';
32
- return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 0 },
33
- React.createElement(Text, { bold: true, color: color },
34
- '#'.repeat(level),
35
- " ",
36
- element.content)));
32
+ const prefix = '#'.repeat(level) + ' ';
33
+ const prefixWidth = prefix.length;
34
+ // Wrap heading text if it's too long
35
+ const availableWidth = maxWidth - prefixWidth - 2; // -2 for padding
36
+ const wrappedLines = wrapText(element.content, availableWidth, 0);
37
+ return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 0 }, wrappedLines.map((line, lineIdx) => (React.createElement(Text, { key: lineIdx, bold: true, color: color },
38
+ lineIdx === 0 ? prefix : ' '.repeat(prefixWidth),
39
+ line)))));
37
40
  }
38
41
  case 'code-block': {
39
42
  const lines = element.content.split('\n');
@@ -47,13 +50,34 @@ export const MarkdownRenderer = ({ content, maxWidth = 100 }) => {
47
50
  const indent = (element.level || 0) * 2;
48
51
  const bullet = element.ordered ? `${element.index}.` : '•';
49
52
  const bulletColor = '#00cc66';
50
- return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 0 },
51
- React.createElement(Box, null,
53
+ const bulletWidth = bullet.length + 1; // bullet + space
54
+ const totalIndent = indent + bulletWidth;
55
+ // Calculate available width for text content
56
+ const availableWidth = maxWidth - totalIndent - 2; // -2 for padding
57
+ // If we have inline children, we need to wrap the content
58
+ if (element.children && element.children.length > 0) {
59
+ // Get the plain text content to calculate wrapping
60
+ const plainText = element.content;
61
+ const wrappedLines = wrapText(plainText, availableWidth, 0);
62
+ return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 0 }, wrappedLines.map((line, lineIdx) => (React.createElement(Box, { key: lineIdx }, lineIdx === 0 ? (React.createElement(React.Fragment, null,
52
63
  React.createElement(Text, { color: "#666666" }, ' '.repeat(indent)),
53
64
  React.createElement(Text, { color: bulletColor, bold: true },
54
65
  bullet,
55
66
  ' '),
56
- element.children && element.children.length > 0 ? (React.createElement(Text, null, renderInlineElements(element.children))) : (React.createElement(Text, { color: "#ffffff" }, element.content)))));
67
+ React.createElement(Text, { color: "#ffffff" }, line))) : (React.createElement(React.Fragment, null,
68
+ React.createElement(Text, { color: "#666666" }, ' '.repeat(totalIndent)),
69
+ React.createElement(Text, { color: "#ffffff" }, line))))))));
70
+ }
71
+ // Plain text list item - also wrap it
72
+ const wrappedLines = wrapText(element.content, availableWidth, 0);
73
+ return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 0 }, wrappedLines.map((line, lineIdx) => (React.createElement(Box, { key: lineIdx }, lineIdx === 0 ? (React.createElement(React.Fragment, null,
74
+ React.createElement(Text, { color: "#666666" }, ' '.repeat(indent)),
75
+ React.createElement(Text, { color: bulletColor, bold: true },
76
+ bullet,
77
+ ' '),
78
+ React.createElement(Text, { color: "#ffffff" }, line))) : (React.createElement(React.Fragment, null,
79
+ React.createElement(Text, { color: "#666666" }, ' '.repeat(totalIndent)),
80
+ React.createElement(Text, { color: "#ffffff" }, line))))))));
57
81
  }
58
82
  case 'blockquote': {
59
83
  return (React.createElement(Box, { key: index, flexDirection: "row", marginBottom: 0 },
@@ -79,7 +103,8 @@ export const MarkdownRenderer = ({ content, maxWidth = 100 }) => {
79
103
  React.createElement(Text, null, renderInlineElements(element.children)))));
80
104
  }
81
105
  // Otherwise, wrap plain text if needed
82
- const wrappedLines = wrapText(element.content, maxWidth, 2);
106
+ // Account for paddingLeft={2} in the wrapping calculation
107
+ const wrappedLines = wrapText(element.content, maxWidth - 2, 0);
83
108
  return (React.createElement(Box, { key: index, flexDirection: "column", marginBottom: 0 }, wrappedLines.map((line, lineIdx) => (React.createElement(Box, { key: lineIdx, paddingLeft: 2 },
84
109
  React.createElement(Text, { color: "#ffffff" }, line))))));
85
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownRenderer.js","sourceRoot":"","sources":["../../../src/ui/components/MarkdownRenderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownRenderer.js","sourceRoot":"","sources":["../../../src/ui/components/MarkdownRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,cAAc,EAAiB,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAOzF,MAAM,CAAC,MAAM,gBAAgB,GAAoC,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAG,GAAG,EAAE,EAAE,EAAE;IAC/F,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzE,MAAM,oBAAoB,GAAG,CAAC,QAA0B,EAAmB,EAAE;QAC3E,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEpD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACjC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,MAAM;oBACT,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,IAAI,QAAC,KAAK,EAAC,SAAS,IACjC,KAAK,CAAC,OAAO,CACT,CACR,CAAC;gBACJ,KAAK,QAAQ;oBACX,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,MAAM,QAAC,KAAK,EAAC,SAAS,IACnC,KAAK,CAAC,OAAO,CACT,CACR,CAAC;gBACJ,KAAK,aAAa;oBAChB,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,eAAe,EAAC,SAAS,EAAC,KAAK,EAAC,SAAS,IACtD,IAAI,KAAK,CAAC,OAAO,GAAG,CAChB,CACR,CAAC;gBACJ,KAAK,MAAM;oBACT,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,SAAS,EAAC,SAAS,UACtC,KAAK,CAAC,OAAO,CACT,CACR,CAAC;gBACJ,KAAK,MAAM,CAAC;gBACZ;oBACE,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,SAAS,IAC5B,KAAK,CAAC,OAAO,CACT,CACR,CAAC;YACN,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,OAAsB,EAAE,KAAa,EAAmB,EAAE;QAC/E,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAClF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;gBAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;gBACvC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;gBAElC,qCAAqC;gBACrC,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,iBAAiB;gBACpE,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;gBAElE,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,IACpD,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CACnC,oBAAC,IAAI,IAAC,GAAG,EAAE,OAAO,EAAE,IAAI,QAAC,KAAK,EAAE,KAAK;oBAClC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;oBAAE,IAAI,CAClD,CACR,CAAC,CACE,CACP,CAAC;YACJ,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE1C,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;oBACnE,oBAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;wBACrE,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;4BACxB,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,IAAI,CAClD,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,UAC3B,OAAO,CAAC,QAAQ,CACZ,CACR;4BACA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAC5B,oBAAC,IAAI,IAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAC,SAAS,IAChC,IAAI,IAAI,GAAG,CACP,CACR,CAAC,CACE,CACF,CACF,CACP,CAAC;YACJ,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC3D,MAAM,WAAW,GAAG,SAAS,CAAC;gBAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,iBAAiB;gBACxD,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;gBAEzC,6CAA6C;gBAC7C,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,iBAAiB;gBAEpE,0DAA0D;gBAC1D,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpD,mDAAmD;oBACnD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;oBAClC,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBAE5D,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,IACpD,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CACnC,oBAAC,GAAG,IAAC,GAAG,EAAE,OAAO,IACd,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CACf;wBACE,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAQ;wBACjD,oBAAC,IAAI,IAAC,KAAK,EAAE,WAAW,EAAE,IAAI;4BAC3B,MAAM;4BAAE,GAAG,CACP;wBACP,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,IAAI,CAAQ,CAClC,CACJ,CAAC,CAAC,CAAC,CACF;wBACE,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAQ;wBACtD,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,IAAI,CAAQ,CAClC,CACJ,CACG,CACP,CAAC,CACE,CACP,CAAC;gBACJ,CAAC;gBAED,sCAAsC;gBACtC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;gBAElE,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,IACpD,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CACnC,oBAAC,GAAG,IAAC,GAAG,EAAE,OAAO,IACd,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CACf;oBACE,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAQ;oBACjD,oBAAC,IAAI,IAAC,KAAK,EAAE,WAAW,EAAE,IAAI;wBAC3B,MAAM;wBAAE,GAAG,CACP;oBACP,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,IAAI,CAAQ,CAClC,CACJ,CAAC,CAAC,CAAC,CACF;oBACE,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAQ;oBACtD,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,IAAI,CAAQ,CAClC,CACJ,CACG,CACP,CAAC,CACE,CACP,CAAC;YACJ,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,KAAK,EAAC,YAAY,EAAE,CAAC;oBAClD,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,IAAI;;wBACtB,GAAG,CACA;oBACP,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,MAAM,UACzB,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;wBAC9C,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC;wBACxC,CAAC,CAAC,OAAO,CAAC,OAAO,CACd,CACH,CACP,CAAC;YACJ,CAAC;YAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;oBACzB,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAQ,CAC7D,CACP,CAAC;YACJ,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,OAAO,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAI,CAAC;YACxC,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,oEAAoE;gBACpE,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpD,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC;wBACrD,oBAAC,GAAG,IAAC,WAAW,EAAE,CAAC;4BACjB,oBAAC,IAAI,QAAE,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAQ,CACjD,CACF,CACP,CAAC;gBACJ,CAAC;gBAED,uCAAuC;gBACvC,0DAA0D;gBAC1D,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEhE,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,IACpD,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CACnC,oBAAC,GAAG,IAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;oBAC/B,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,IAAE,IAAI,CAAQ,CAC/B,CACP,CAAC,CACE,CACP,CAAC;YACJ,CAAC;YAED;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,IACxB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAC5D,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -60,8 +60,8 @@ export const MessageDisplay = React.memo(({ message }) => {
60
60
  timestamp && (React.createElement(Text, { color: "#666666", dimColor: true },
61
61
  " ",
62
62
  timestamp))),
63
- message.isCommandMode ? (React.createElement(Box, { borderStyle: "single", borderColor: message.role === 'assistant' ? '#00cc66' : '#00ccff', borderLeft: true, borderRight: false, borderTop: false, borderBottom: false, paddingLeft: 1 }, message.role === 'assistant' ? (React.createElement(MarkdownRenderer, { content: message.content, maxWidth: 98 })) : (React.createElement(Text, { color: "#ffffff" }, message.content)))) : message.role === 'assistant' ? (React.createElement(Box, { borderStyle: "single", borderColor: "#00ccff", borderLeft: true, borderRight: false, borderTop: false, borderBottom: false, paddingLeft: 1 },
64
- React.createElement(MarkdownRenderer, { content: message.content, maxWidth: 98 }))) : (React.createElement(Box, { paddingLeft: 2 },
63
+ message.isCommandMode ? (React.createElement(Box, { borderStyle: "single", borderColor: message.role === 'assistant' ? '#00cc66' : '#00ccff', borderLeft: true, borderRight: false, borderTop: false, borderBottom: false, paddingLeft: 1 }, message.role === 'assistant' ? (React.createElement(MarkdownRenderer, { content: message.content, maxWidth: 94 })) : (React.createElement(Text, { color: "#ffffff" }, message.content)))) : message.role === 'assistant' ? (React.createElement(Box, { borderStyle: "single", borderColor: "#00ccff", borderLeft: true, borderRight: false, borderTop: false, borderBottom: false, paddingLeft: 1 },
64
+ React.createElement(MarkdownRenderer, { content: message.content, maxWidth: 94 }))) : (React.createElement(Box, { paddingLeft: 2 },
65
65
  React.createElement(Text, { color: "#ffffff" }, message.content)))));
66
66
  });
67
67
  //# sourceMappingURL=MessageDisplay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StreamingMessageDisplay.d.ts","sourceRoot":"","sources":["../../../src/ui/components/StreamingMessageDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,UAAU,4BAA4B;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CA6FzE,CAAC"}
1
+ {"version":3,"file":"StreamingMessageDisplay.d.ts","sourceRoot":"","sources":["../../../src/ui/components/StreamingMessageDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,UAAU,4BAA4B;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAqGzE,CAAC"}
@@ -31,7 +31,7 @@ export const StreamingMessageDisplay = React.memo(({ message }) => {
31
31
  const fullContent = contentBufferRef.current;
32
32
  const lines = fullContent.split('\n');
33
33
  // Maximum lines to show during streaming (to prevent flickering)
34
- const MAX_LINES = 15;
34
+ const MAX_LINES = 10;
35
35
  if (lines.length > MAX_LINES) {
36
36
  // Show only the last MAX_LINES lines
37
37
  const truncatedLines = lines.slice(-MAX_LINES);
@@ -77,7 +77,7 @@ export const StreamingMessageDisplay = React.memo(({ message }) => {
77
77
  timestamp && (React.createElement(Text, { color: "#666666", dimColor: true },
78
78
  " ",
79
79
  timestamp))),
80
- React.createElement(Box, { paddingLeft: 2 },
81
- React.createElement(MarkdownRenderer, { content: displayContent }))));
80
+ React.createElement(Box, { borderStyle: "single", borderColor: "#00ccff", borderLeft: true, borderRight: false, borderTop: false, borderBottom: false, paddingLeft: 1 },
81
+ React.createElement(MarkdownRenderer, { content: displayContent, maxWidth: 94 }))));
82
82
  });
83
83
  //# sourceMappingURL=StreamingMessageDisplay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StreamingMessageDisplay.js","sourceRoot":"","sources":["../../../src/ui/components/StreamingMessageDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA2C,KAAK,CAAC,IAAI,CAAC,CAAC,EACzF,OAAO,EACR,EAAE,EAAE;IACH,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,cAAc,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,0CAA0C;QAC1C,IAAI,YAAY,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;YACxC,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;YAClC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACtB,gBAAgB,CAAC,OAAO,GAAG,EAAE,CAAC;YAC9B,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAE3C,2BAA2B;QAC3B,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QAED,mFAAmF;QACnF,cAAc,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACvC,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC;YAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEtC,iEAAiE;YACjE,MAAM,SAAS,GAAG,EAAE,CAAC;YAErB,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;gBAC7B,qCAAqC;gBACrC,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC/C,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,mCAAmC;gBACnC,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,OAAO,GAAG,EAAE;YACV,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAElC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;QACpC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,CAAC;YAC9B,KAAK,WAAW,CAAC,CAAC,OAAO,SAAS,CAAC;YACnC,KAAK,QAAQ,CAAC,CAAC,OAAO,SAAS,CAAC;YAChC,KAAK,MAAM,CAAC,CAAC,OAAO,SAAS,CAAC;YAC9B,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;QACpC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC;YAC1B,KAAK,WAAW,CAAC,CAAC,OAAO,WAAW,CAAC;YACrC,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;YAC/B,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;YAC3B,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;QACjC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE;QAClD,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC;QACzC,oBAAC,GAAG,IAAC,YAAY,EAAE,CAAC;YAClB,oBAAC,IAAI,IAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI;gBAC1C,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;oBACtB;YACN,SAAS,IAAI,CACZ,oBAAC,IAAI,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ;;gBAAG,SAAS,CAAQ,CACnD,CACG;QAGN,oBAAC,GAAG,IAAC,WAAW,EAAE,CAAC;YACjB,oBAAC,gBAAgB,IAAC,OAAO,EAAE,cAAc,GAAI,CACzC,CACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"StreamingMessageDisplay.js","sourceRoot":"","sources":["../../../src/ui/components/StreamingMessageDisplay.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface ThinkingDisplayProps {
3
+ thinking: string;
4
+ isComplete?: boolean;
5
+ }
6
+ /**
7
+ * ThinkingDisplay - Shows model's thinking/reasoning in a collapsed, greyed-out format
8
+ * Shows only the last 3 lines while thinking is in progress
9
+ * Shows duration summary when complete
10
+ */
11
+ export declare const ThinkingDisplay: React.FC<ThinkingDisplayProps>;
12
+ export {};
13
+ //# sourceMappingURL=ThinkingDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThinkingDisplay.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ThinkingDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgD1D,CAAC"}
@@ -0,0 +1,41 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { Box, Text } from 'ink';
3
+ /**
4
+ * ThinkingDisplay - Shows model's thinking/reasoning in a collapsed, greyed-out format
5
+ * Shows only the last 3 lines while thinking is in progress
6
+ * Shows duration summary when complete
7
+ */
8
+ export const ThinkingDisplay = ({ thinking, isComplete = false }) => {
9
+ const [startTime] = useState(Date.now());
10
+ const [duration, setDuration] = useState(0);
11
+ useEffect(() => {
12
+ if (isComplete && thinking) {
13
+ setDuration(Math.round((Date.now() - startTime) / 1000));
14
+ }
15
+ }, [isComplete, thinking, startTime]);
16
+ if (!thinking || thinking.trim().length === 0)
17
+ return null;
18
+ // Split thinking into lines and filter out empty lines and "true" values
19
+ const lines = thinking
20
+ .split('\n')
21
+ .map(line => line.trim())
22
+ .filter(line => line.length > 0 && line !== 'true' && line !== 'false');
23
+ // If no valid lines, don't show anything
24
+ if (lines.length === 0)
25
+ return null;
26
+ // If thinking is complete, show summary
27
+ if (isComplete) {
28
+ return (React.createElement(Box, { marginBottom: 1, paddingLeft: 2 },
29
+ React.createElement(Text, { dimColor: true, color: "#555555" },
30
+ "\uD83D\uDCAD Thought for ",
31
+ duration,
32
+ " second",
33
+ duration !== 1 ? 's' : '')));
34
+ }
35
+ // Show only last 3 lines while thinking (plain text, no formatting)
36
+ const displayLines = lines.slice(-3);
37
+ return (React.createElement(Box, { flexDirection: "column", marginBottom: 1, paddingLeft: 2 },
38
+ React.createElement(Text, { dimColor: true, color: "#444444" }, "\uD83D\uDCAD Thinking..."),
39
+ displayLines.map((line, index) => (React.createElement(Text, { key: `thinking-${index}-${line.substring(0, 20)}`, dimColor: true, color: "#555555" }, line.length > 100 ? line.substring(0, 97) + '...' : line)))));
40
+ };
41
+ //# sourceMappingURL=ThinkingDisplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThinkingDisplay.js","sourceRoot":"","sources":["../../../src/ui/components/ThinkingDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAOhC;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAC9D,QAAQ,EACR,UAAU,GAAG,KAAK,EACnB,EAAE,EAAE;IACH,MAAM,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;YAC3B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAEtC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3D,yEAAyE;IACzE,MAAM,KAAK,GAAG,QAAQ;SACnB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC;IAE1E,yCAAyC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,wCAAwC;IACxC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CACL,oBAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;YAClC,oBAAC,IAAI,IAAC,QAAQ,QAAC,KAAK,EAAC,SAAS;;gBACZ,QAAQ;;gBAAS,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACrD,CACH,CACP,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAErC,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;QACzD,oBAAC,IAAI,IAAC,QAAQ,QAAC,KAAK,EAAC,SAAS,+BAAsB;QACnD,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,oBAAC,IAAI,IAAC,GAAG,EAAE,YAAY,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,QAAC,KAAK,EAAC,SAAS,IAC9E,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CACpD,CACR,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"version-checker.d.ts","sourceRoot":"","sources":["../../src/utils/version-checker.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAqC1C;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAwB5D"}
1
+ {"version":3,"file":"version-checker.d.ts","sourceRoot":"","sources":["../../src/utils/version-checker.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAwB5D"}
@@ -9,37 +9,9 @@ const __dirname = dirname(__filename);
9
9
  */
10
10
  export function getCurrentVersion() {
11
11
  try {
12
- // First, try to read the generated version file (most reliable for npm installs)
13
- try {
14
- const versionPath = join(__dirname, '..', 'version.js');
15
- const versionContent = readFileSync(versionPath, 'utf-8');
16
- const match = versionContent.match(/VERSION\s*=\s*['"]([^'"]+)['"]/);
17
- if (match && match[1]) {
18
- return match[1];
19
- }
20
- }
21
- catch {
22
- // Fall back to reading package.json
23
- }
24
- // Try multiple possible locations for package.json as fallback
25
- const possiblePaths = [
26
- join(__dirname, '..', '..', 'package.json'), // npm global install: dist/../package.json
27
- join(__dirname, '..', 'package.json'), // Alternative build structure
28
- join(__dirname, 'package.json'), // Same directory
29
- ];
30
- for (const packageJsonPath of possiblePaths) {
31
- try {
32
- const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
33
- if (packageJson.version) {
34
- return packageJson.version;
35
- }
36
- }
37
- catch {
38
- // Try next path
39
- continue;
40
- }
41
- }
42
- return 'unknown';
12
+ const packageJsonPath = join(__dirname, '..', '..', 'package.json');
13
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
14
+ return packageJson.version;
43
15
  }
44
16
  catch (error) {
45
17
  return 'unknown';
@@ -1 +1 @@
1
- {"version":3,"file":"version-checker.js","sourceRoot":"","sources":["../../src/utils/version-checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-checker.js","sourceRoot":"","sources":["../../src/utils/version-checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAQtC;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QACvE,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,iDAAiD,EAAE;YAClF,OAAO,EAAE,IAAI,CAAC,mBAAmB;SAClC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5C,MAAM,SAAS,GAAG,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAErE,OAAO;YACL,cAAc;YACd,aAAa;YACb,SAAS;SACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,6DAA6D;QAC7D,OAAO;YACL,cAAc;YACd,aAAa,EAAE,cAAc;YAC7B,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,EAAU,EAAE,EAAU;IAC7C,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,KAAK,GAAG,KAAK;YAAE,OAAO,CAAC,CAAC;QAC5B,IAAI,KAAK,GAAG,KAAK;YAAE,OAAO,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
- {
1
+ {
2
2
  "name": "centaurus-cli",
3
- "version": "2.5.2",
3
+ "version": "2.5.3",
4
4
  "description": "A powerful command-line AI coding assistant with Google Gemini support",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -9,7 +9,6 @@
9
9
  "centaurus-cli": "./dist/index.js"
10
10
  },
11
11
  "scripts": {
12
- "prebuild": "node scripts/generate-version.js",
13
12
  "build": "tsc",
14
13
  "dev": "tsc --watch",
15
14
  "start": "node dist/index.js",
@@ -38,9 +37,10 @@
38
37
  "files": [
39
38
  "dist",
40
39
  "postinstall.js",
41
- "scripts",
42
40
  "README.md",
43
- "LICENSE"
41
+ "LICENSE",
42
+ "CONFIG_GUIDE.md",
43
+ "AUTH_FLOW.md"
44
44
  ],
45
45
  "dependencies": {
46
46
  "@types/node": "^24.7.2",
@@ -1,6 +0,0 @@
1
- import { AIProvider } from './providers/base.js';
2
- import { Config } from '../config/types.js';
3
- export declare class ProviderFactory {
4
- static createProvider(config: Config): AIProvider;
5
- }
6
- //# sourceMappingURL=provider-factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-factory.d.ts","sourceRoot":"","sources":["../../src/ai/provider-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,qBAAa,eAAe;IAC1B,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;CAuBlD"}
@@ -1,27 +0,0 @@
1
- import { GeminiProvider } from './providers/gemini.js';
2
- export class ProviderFactory {
3
- static createProvider(config) {
4
- if (config.provider === 'google') {
5
- if (!config.googleApiKey) {
6
- throw new Error('Google API key not configured. Please set it using: /config set googleApiKey YOUR_API_KEY');
7
- }
8
- // Parse comma-separated keys to validate
9
- const keys = config.googleApiKey.split(',').map(k => k.trim()).filter(k => k.length > 0);
10
- if (keys.length === 0) {
11
- throw new Error('No valid Google API keys provided');
12
- }
13
- return new GeminiProvider(config.googleApiKey, config.model);
14
- }
15
- else if (config.provider === 'openrouter') {
16
- if (!config.openrouterApiKey) {
17
- throw new Error('OpenRouter API key not configured. Please set it using: /config set openrouterApiKey YOUR_API_KEY');
18
- }
19
- // OpenRouter provider will be implemented later for full version
20
- throw new Error('OpenRouter provider not yet implemented in MVP. Use Google provider for now.');
21
- }
22
- else {
23
- throw new Error(`Unknown provider: ${config.provider}`);
24
- }
25
- }
26
- }
27
- //# sourceMappingURL=provider-factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-factory.js","sourceRoot":"","sources":["../../src/ai/provider-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,MAAM,OAAO,eAAe;IAC1B,MAAM,CAAC,cAAc,CAAC,MAAc;QAClC,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;YAC/G,CAAC;YAED,yCAAyC;YACzC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACzF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YACvD,CAAC;YAED,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,mGAAmG,CAAC,CAAC;YACvH,CAAC;YACD,iEAAiE;YACjE,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;QAClG,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;CACF"}
@@ -1,25 +0,0 @@
1
- import { Message, StreamChunk } from '../types.js';
2
- export interface Tool {
3
- name: string;
4
- description: string;
5
- parameters: Record<string, any>;
6
- }
7
- export interface ChatOptions {
8
- messages: Message[];
9
- tools?: Tool[] | any[];
10
- temperature?: number;
11
- }
12
- export declare abstract class AIProvider {
13
- protected apiKey: string;
14
- protected model: string;
15
- constructor(apiKey: string, model: string);
16
- /**
17
- * Send a chat request and stream the response
18
- */
19
- abstract stream(options: ChatOptions): AsyncGenerator<StreamChunk, void, unknown>;
20
- /**
21
- * List available models
22
- */
23
- abstract listModels(): Promise<string[]>;
24
- }
25
- //# sourceMappingURL=base.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,8BAAsB,UAAU;IAC9B,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAKzC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;IAEjF;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CACzC"}
@@ -1,9 +0,0 @@
1
- export class AIProvider {
2
- apiKey;
3
- model;
4
- constructor(apiKey, model) {
5
- this.apiKey = apiKey;
6
- this.model = model;
7
- }
8
- }
9
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/ai/providers/base.ts"],"names":[],"mappings":"AAcA,MAAM,OAAgB,UAAU;IACpB,MAAM,CAAS;IACf,KAAK,CAAS;IAExB,YAAY,MAAc,EAAE,KAAa;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CAWF"}
@@ -1,34 +0,0 @@
1
- import { AIProvider, ChatOptions } from './base.js';
2
- import { StreamChunk } from '../types.js';
3
- export declare class GeminiProvider extends AIProvider {
4
- private apiKeys;
5
- private currentKeyIndex;
6
- private genAI;
7
- private generativeModel;
8
- constructor(apiKey: string, model?: string);
9
- /**
10
- * Rotate to the next API key
11
- */
12
- private rotateApiKey;
13
- /**
14
- * Convert our Message format to Gemini Content format
15
- */
16
- private convertMessagesToContents;
17
- /**
18
- * Convert our Tool format to Gemini Function Declaration format
19
- */
20
- private convertToolsToFunctions;
21
- /**
22
- * Get or create the generative model
23
- */
24
- private getModel;
25
- /**
26
- * Stream chat response
27
- */
28
- stream(options: ChatOptions): AsyncGenerator<StreamChunk, void, unknown>;
29
- /**
30
- * List available models
31
- */
32
- listModels(): Promise<string[]>;
33
- }
34
- //# sourceMappingURL=gemini.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/ai/providers/gemini.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAQ,WAAW,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAW,WAAW,EAAY,MAAM,aAAa,CAAC;AAE7D,qBAAa,cAAe,SAAQ,UAAU;IAC5C,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,eAAe,CAAgC;gBAE3C,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAA+B;IAalE;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkBjC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAchB;;OAEG;IACI,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;IAgE/E;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAYtC"}
@@ -1,146 +0,0 @@
1
- import { GoogleGenerativeAI, SchemaType } from '@google/generative-ai';
2
- import { AIProvider } from './base.js';
3
- export class GeminiProvider extends AIProvider {
4
- apiKeys;
5
- currentKeyIndex = 0;
6
- genAI;
7
- generativeModel = null;
8
- constructor(apiKey, model = 'gemini-2.0-flash-exp') {
9
- super(apiKey, model);
10
- // Parse comma-separated keys
11
- this.apiKeys = apiKey.split(',').map(key => key.trim()).filter(key => key.length > 0);
12
- if (this.apiKeys.length === 0) {
13
- throw new Error('No valid API keys provided');
14
- }
15
- // Initialize with first key
16
- this.genAI = new GoogleGenerativeAI(this.apiKeys[0]);
17
- }
18
- /**
19
- * Rotate to the next API key
20
- */
21
- rotateApiKey() {
22
- this.currentKeyIndex = (this.currentKeyIndex + 1) % this.apiKeys.length;
23
- const currentKey = this.apiKeys[this.currentKeyIndex];
24
- this.genAI = new GoogleGenerativeAI(currentKey);
25
- }
26
- /**
27
- * Convert our Message format to Gemini Content format
28
- */
29
- convertMessagesToContents(messages) {
30
- const contents = [];
31
- for (const message of messages) {
32
- if (message.role === 'system') {
33
- // System messages are handled separately in Gemini
34
- continue;
35
- }
36
- contents.push({
37
- role: message.role === 'assistant' ? 'model' : 'user',
38
- parts: [{ text: message.content }],
39
- });
40
- }
41
- return contents;
42
- }
43
- /**
44
- * Convert our Tool format to Gemini Function Declaration format
45
- */
46
- convertToolsToFunctions(tools) {
47
- return tools.map(tool => {
48
- // Handle both formats: direct tool schema or wrapped in schema property
49
- const schema = tool.schema || tool;
50
- return {
51
- name: schema.name,
52
- description: schema.description,
53
- parameters: {
54
- type: SchemaType.OBJECT,
55
- properties: schema.parameters?.properties || {},
56
- required: schema.parameters?.required || [],
57
- },
58
- };
59
- });
60
- }
61
- /**
62
- * Get or create the generative model
63
- */
64
- getModel(tools) {
65
- const modelConfig = {
66
- model: this.model,
67
- };
68
- if (tools && tools.length > 0) {
69
- modelConfig.tools = [{
70
- functionDeclarations: this.convertToolsToFunctions(tools),
71
- }];
72
- }
73
- return this.genAI.getGenerativeModel(modelConfig);
74
- }
75
- /**
76
- * Stream chat response
77
- */
78
- async *stream(options) {
79
- // Rotate API key before each request
80
- this.rotateApiKey();
81
- try {
82
- const model = this.getModel(options.tools);
83
- const contents = this.convertMessagesToContents(options.messages);
84
- // Find system message for system instruction
85
- const systemMessage = options.messages.find(m => m.role === 'system');
86
- // Create chat with history
87
- // Gemini uses a simplified system instruction - just pass the text
88
- const chatConfig = {
89
- history: contents.slice(0, -1), // All messages except the last one
90
- };
91
- if (systemMessage) {
92
- chatConfig.systemInstruction = {
93
- role: 'user',
94
- parts: [{ text: systemMessage.content }],
95
- };
96
- }
97
- const chat = model.startChat(chatConfig);
98
- // Get the last user message
99
- const lastMessage = contents[contents.length - 1];
100
- const lastMessageText = lastMessage.parts[0].text || '';
101
- // Stream the response
102
- const result = await chat.sendMessageStream(lastMessageText);
103
- for await (const chunk of result.stream) {
104
- const chunkText = chunk.text();
105
- const functionCalls = chunk.functionCalls();
106
- if (chunkText) {
107
- yield {
108
- text: chunkText,
109
- done: false,
110
- };
111
- }
112
- if (functionCalls && functionCalls.length > 0) {
113
- const toolCalls = functionCalls.map((fc, index) => ({
114
- id: `call_${Date.now()}_${index}`,
115
- name: fc.name,
116
- arguments: fc.args,
117
- }));
118
- yield {
119
- toolCalls,
120
- done: false,
121
- };
122
- }
123
- }
124
- yield { done: true };
125
- }
126
- catch (error) {
127
- throw new Error(`Gemini API Error: ${error.message || error}`);
128
- }
129
- }
130
- /**
131
- * List available models
132
- */
133
- async listModels() {
134
- // Gemini doesn't provide a public API to list models easily
135
- // Return commonly available models
136
- return [
137
- 'gemini-2.5-flash',
138
- 'gemini-2.5-pro',
139
- 'gemini-2.0-flash-exp',
140
- 'gemini-2.0-flash-thinking-exp',
141
- 'gemini-1.5-pro',
142
- 'gemini-1.5-flash',
143
- ];
144
- }
145
- }
146
- //# sourceMappingURL=gemini.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/ai/providers/gemini.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Command to view duplication detection logs
3
- */
4
- export declare function viewDuplicationLogs(lines?: number): void;
5
- //# sourceMappingURL=view-duplication-logs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"view-duplication-logs.d.ts","sourceRoot":"","sources":["../../src/commands/view-duplication-logs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,wBAAgB,mBAAmB,CAAC,KAAK,GAAE,MAAW,GAAG,IAAI,CAQ5D"}