centaurus-cli 2.5.1 → 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 (236) hide show
  1. package/dist/config/models.d.ts +1 -1
  2. package/dist/config/models.d.ts.map +1 -1
  3. package/dist/config/models.js +2 -0
  4. package/dist/config/models.js.map +1 -1
  5. package/dist/ui/components/App.d.ts.map +1 -1
  6. package/dist/ui/components/App.js +104 -62
  7. package/dist/ui/components/App.js.map +1 -1
  8. package/dist/ui/components/FontRecommendation.d.ts +1 -0
  9. package/dist/ui/components/FontRecommendation.d.ts.map +1 -0
  10. package/dist/ui/components/FontRecommendation.js +1 -0
  11. package/dist/ui/components/FontRecommendation.js.map +1 -0
  12. package/dist/ui/components/InputBox.d.ts.map +1 -1
  13. package/dist/ui/components/InputBox.js +3 -2
  14. package/dist/ui/components/InputBox.js.map +1 -1
  15. package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
  16. package/dist/ui/components/MarkdownRenderer.js +34 -9
  17. package/dist/ui/components/MarkdownRenderer.js.map +1 -1
  18. package/dist/ui/components/MessageDisplay.js +2 -2
  19. package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
  20. package/dist/ui/components/StreamingMessageDisplay.js +3 -3
  21. package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
  22. package/dist/ui/components/ThinkingDisplay.d.ts +13 -0
  23. package/dist/ui/components/ThinkingDisplay.d.ts.map +1 -0
  24. package/dist/ui/components/ThinkingDisplay.js +41 -0
  25. package/dist/ui/components/ThinkingDisplay.js.map +1 -0
  26. package/package.json +2 -2
  27. package/dist/ai/provider-factory.d.ts +0 -6
  28. package/dist/ai/provider-factory.d.ts.map +0 -1
  29. package/dist/ai/provider-factory.js +0 -27
  30. package/dist/ai/provider-factory.js.map +0 -1
  31. package/dist/ai/providers/base.d.ts +0 -25
  32. package/dist/ai/providers/base.d.ts.map +0 -1
  33. package/dist/ai/providers/base.js +0 -9
  34. package/dist/ai/providers/base.js.map +0 -1
  35. package/dist/ai/providers/gemini.d.ts +0 -34
  36. package/dist/ai/providers/gemini.d.ts.map +0 -1
  37. package/dist/ai/providers/gemini.js +0 -146
  38. package/dist/ai/providers/gemini.js.map +0 -1
  39. package/dist/commands/view-duplication-logs.d.ts +0 -5
  40. package/dist/commands/view-duplication-logs.d.ts.map +0 -1
  41. package/dist/commands/view-duplication-logs.js +0 -14
  42. package/dist/commands/view-duplication-logs.js.map +0 -1
  43. package/dist/context/__tests__/command-detector.test.d.ts +0 -14
  44. package/dist/context/__tests__/command-detector.test.d.ts.map +0 -1
  45. package/dist/context/__tests__/command-detector.test.js +0 -318
  46. package/dist/context/__tests__/command-detector.test.js.map +0 -1
  47. package/dist/context/__tests__/context-manager.test.d.ts +0 -16
  48. package/dist/context/__tests__/context-manager.test.d.ts.map +0 -1
  49. package/dist/context/__tests__/context-manager.test.js +0 -375
  50. package/dist/context/__tests__/context-manager.test.js.map +0 -1
  51. package/dist/context/__tests__/error-handling.test.d.ts +0 -15
  52. package/dist/context/__tests__/error-handling.test.d.ts.map +0 -1
  53. package/dist/context/__tests__/error-handling.test.js +0 -447
  54. package/dist/context/__tests__/error-handling.test.js.map +0 -1
  55. package/dist/context/handlers/__tests__/docker-handler.test.d.ts +0 -13
  56. package/dist/context/handlers/__tests__/docker-handler.test.d.ts.map +0 -1
  57. package/dist/context/handlers/__tests__/docker-handler.test.js +0 -285
  58. package/dist/context/handlers/__tests__/docker-handler.test.js.map +0 -1
  59. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts +0 -13
  60. package/dist/context/handlers/__tests__/ssh-handler.test.d.ts.map +0 -1
  61. package/dist/context/handlers/__tests__/ssh-handler.test.js +0 -251
  62. package/dist/context/handlers/__tests__/ssh-handler.test.js.map +0 -1
  63. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts +0 -7
  64. package/dist/context/handlers/__tests__/wsl-handler.test.d.ts.map +0 -1
  65. package/dist/context/handlers/__tests__/wsl-handler.test.js +0 -331
  66. package/dist/context/handlers/__tests__/wsl-handler.test.js.map +0 -1
  67. package/dist/index-custom.d.ts +0 -3
  68. package/dist/index-custom.d.ts.map +0 -1
  69. package/dist/index-custom.js +0 -65
  70. package/dist/index-custom.js.map +0 -1
  71. package/dist/prompts/system-prompt.d.ts +0 -47
  72. package/dist/prompts/system-prompt.d.ts.map +0 -1
  73. package/dist/prompts/system-prompt.js +0 -377
  74. package/dist/prompts/system-prompt.js.map +0 -1
  75. package/dist/providers/GoogleProvider.d.ts +0 -26
  76. package/dist/providers/GoogleProvider.d.ts.map +0 -1
  77. package/dist/providers/GoogleProvider.js +0 -313
  78. package/dist/providers/GoogleProvider.js.map +0 -1
  79. package/dist/providers/Provider.d.ts +0 -114
  80. package/dist/providers/Provider.d.ts.map +0 -1
  81. package/dist/providers/Provider.js +0 -44
  82. package/dist/providers/Provider.js.map +0 -1
  83. package/dist/services/__tests__/ai-context-injector.test.d.ts +0 -15
  84. package/dist/services/__tests__/ai-context-injector.test.d.ts.map +0 -1
  85. package/dist/services/__tests__/ai-context-injector.test.js +0 -326
  86. package/dist/services/__tests__/ai-context-injector.test.js.map +0 -1
  87. package/dist/src/context/types.js +0 -27
  88. package/dist/src/services/ai-context-injector.js +0 -96
  89. package/dist/src/services/ai-service-client.js +0 -270
  90. package/dist/src/services/api-client.js +0 -349
  91. package/dist/src/tools/types.js +0 -1
  92. package/dist/src/types/index.js +0 -1
  93. package/dist/test/context/types.js +0 -27
  94. package/dist/test/services/__tests__/ai-context-injector.test.js +0 -325
  95. package/dist/test/services/ai-context-injector.js +0 -96
  96. package/dist/test/services/ai-service-client.js +0 -270
  97. package/dist/test/services/api-client.js +0 -349
  98. package/dist/test/tools/types.js +0 -1
  99. package/dist/test/types/index.js +0 -1
  100. package/dist/test-ai-context-injector.js +0 -97
  101. package/dist/tests/automated-verification.d.ts +0 -27
  102. package/dist/tests/automated-verification.d.ts.map +0 -1
  103. package/dist/tests/automated-verification.js +0 -359
  104. package/dist/tests/automated-verification.js.map +0 -1
  105. package/dist/tests/integration-tests.d.ts +0 -50
  106. package/dist/tests/integration-tests.d.ts.map +0 -1
  107. package/dist/tests/integration-tests.js +0 -648
  108. package/dist/tests/integration-tests.js.map +0 -1
  109. package/dist/tools/file-ops-test.d.ts +0 -6
  110. package/dist/tools/file-ops-test.d.ts.map +0 -1
  111. package/dist/tools/file-ops-test.js +0 -197
  112. package/dist/tools/file-ops-test.js.map +0 -1
  113. package/dist/ui/DisplayHistory.d.ts +0 -53
  114. package/dist/ui/DisplayHistory.d.ts.map +0 -1
  115. package/dist/ui/DisplayHistory.js +0 -82
  116. package/dist/ui/DisplayHistory.js.map +0 -1
  117. package/dist/ui/clack-ui.d.ts +0 -83
  118. package/dist/ui/clack-ui.d.ts.map +0 -1
  119. package/dist/ui/clack-ui.js +0 -304
  120. package/dist/ui/clack-ui.js.map +0 -1
  121. package/dist/ui/components/DisplayItemRenderer.d.ts +0 -18
  122. package/dist/ui/components/DisplayItemRenderer.d.ts.map +0 -1
  123. package/dist/ui/components/DisplayItemRenderer.js +0 -53
  124. package/dist/ui/components/DisplayItemRenderer.js.map +0 -1
  125. package/dist/ui/components/DynamicMessage.d.ts +0 -13
  126. package/dist/ui/components/DynamicMessage.d.ts.map +0 -1
  127. package/dist/ui/components/DynamicMessage.js +0 -27
  128. package/dist/ui/components/DynamicMessage.js.map +0 -1
  129. package/dist/ui/components/FileViewerScreen.d.ts +0 -14
  130. package/dist/ui/components/FileViewerScreen.d.ts.map +0 -1
  131. package/dist/ui/components/FileViewerScreen.js +0 -74
  132. package/dist/ui/components/FileViewerScreen.js.map +0 -1
  133. package/dist/ui/components/ScrollableContent.d.ts +0 -7
  134. package/dist/ui/components/ScrollableContent.d.ts.map +0 -1
  135. package/dist/ui/components/ScrollableContent.js +0 -6
  136. package/dist/ui/components/ScrollableContent.js.map +0 -1
  137. package/dist/ui/components/ScrollableMessageList.d.ts +0 -10
  138. package/dist/ui/components/ScrollableMessageList.d.ts.map +0 -1
  139. package/dist/ui/components/ScrollableMessageList.js +0 -133
  140. package/dist/ui/components/ScrollableMessageList.js.map +0 -1
  141. package/dist/ui/components/ScrollableScreen.d.ts +0 -9
  142. package/dist/ui/components/ScrollableScreen.d.ts.map +0 -1
  143. package/dist/ui/components/ScrollableScreen.js +0 -22
  144. package/dist/ui/components/ScrollableScreen.js.map +0 -1
  145. package/dist/ui/components/StaticMessageHistory.d.ts +0 -14
  146. package/dist/ui/components/StaticMessageHistory.d.ts.map +0 -1
  147. package/dist/ui/components/StaticMessageHistory.js +0 -19
  148. package/dist/ui/components/StaticMessageHistory.js.map +0 -1
  149. package/dist/ui/components/code-block.d.ts +0 -10
  150. package/dist/ui/components/code-block.d.ts.map +0 -1
  151. package/dist/ui/components/code-block.js +0 -74
  152. package/dist/ui/components/code-block.js.map +0 -1
  153. package/dist/ui/components/confirm-prompt.d.ts +0 -12
  154. package/dist/ui/components/confirm-prompt.d.ts.map +0 -1
  155. package/dist/ui/components/confirm-prompt.js +0 -104
  156. package/dist/ui/components/confirm-prompt.js.map +0 -1
  157. package/dist/ui/components/diff-viewer.d.ts +0 -9
  158. package/dist/ui/components/diff-viewer.d.ts.map +0 -1
  159. package/dist/ui/components/diff-viewer.js +0 -57
  160. package/dist/ui/components/diff-viewer.js.map +0 -1
  161. package/dist/ui/components/input-box.d.ts +0 -18
  162. package/dist/ui/components/input-box.d.ts.map +0 -1
  163. package/dist/ui/components/input-box.js +0 -157
  164. package/dist/ui/components/input-box.js.map +0 -1
  165. package/dist/ui/components/keyboard-help.d.ts +0 -7
  166. package/dist/ui/components/keyboard-help.d.ts.map +0 -1
  167. package/dist/ui/components/keyboard-help.js +0 -43
  168. package/dist/ui/components/keyboard-help.js.map +0 -1
  169. package/dist/ui/components/loading-indicator.d.ts +0 -3
  170. package/dist/ui/components/loading-indicator.d.ts.map +0 -1
  171. package/dist/ui/components/loading-indicator.js +0 -42
  172. package/dist/ui/components/loading-indicator.js.map +0 -1
  173. package/dist/ui/components/message-display.d.ts +0 -7
  174. package/dist/ui/components/message-display.d.ts.map +0 -1
  175. package/dist/ui/components/message-display.js +0 -104
  176. package/dist/ui/components/message-display.js.map +0 -1
  177. package/dist/ui/components/misc.d.ts +0 -28
  178. package/dist/ui/components/misc.d.ts.map +0 -1
  179. package/dist/ui/components/misc.js +0 -128
  180. package/dist/ui/components/misc.js.map +0 -1
  181. package/dist/ui/components/select-prompt.d.ts +0 -13
  182. package/dist/ui/components/select-prompt.d.ts.map +0 -1
  183. package/dist/ui/components/select-prompt.js +0 -42
  184. package/dist/ui/components/select-prompt.js.map +0 -1
  185. package/dist/ui/components/status-bar.d.ts +0 -11
  186. package/dist/ui/components/status-bar.d.ts.map +0 -1
  187. package/dist/ui/components/status-bar.js +0 -47
  188. package/dist/ui/components/status-bar.js.map +0 -1
  189. package/dist/ui/components/tool-execution.d.ts +0 -3
  190. package/dist/ui/components/tool-execution.d.ts.map +0 -1
  191. package/dist/ui/components/tool-execution.js +0 -374
  192. package/dist/ui/components/tool-execution.js.map +0 -1
  193. package/dist/ui/components/tool-result.d.ts +0 -11
  194. package/dist/ui/components/tool-result.d.ts.map +0 -1
  195. package/dist/ui/components/tool-result.js +0 -58
  196. package/dist/ui/components/tool-result.js.map +0 -1
  197. package/dist/ui/components/welcome-banner.d.ts +0 -3
  198. package/dist/ui/components/welcome-banner.d.ts.map +0 -1
  199. package/dist/ui/components/welcome-banner.js +0 -46
  200. package/dist/ui/components/welcome-banner.js.map +0 -1
  201. package/dist/ui/hooks/useDisplayHistory.d.ts +0 -13
  202. package/dist/ui/hooks/useDisplayHistory.d.ts.map +0 -1
  203. package/dist/ui/hooks/useDisplayHistory.js +0 -45
  204. package/dist/ui/hooks/useDisplayHistory.js.map +0 -1
  205. package/dist/ui/render-engine.d.ts +0 -69
  206. package/dist/ui/render-engine.d.ts.map +0 -1
  207. package/dist/ui/render-engine.js +0 -197
  208. package/dist/ui/render-engine.js.map +0 -1
  209. package/dist/ui/terminal/TerminalRenderer.d.ts +0 -84
  210. package/dist/ui/terminal/TerminalRenderer.d.ts.map +0 -1
  211. package/dist/ui/terminal/TerminalRenderer.js +0 -154
  212. package/dist/ui/terminal/TerminalRenderer.js.map +0 -1
  213. package/dist/ui/terminal/TerminalUI.d.ts +0 -139
  214. package/dist/ui/terminal/TerminalUI.d.ts.map +0 -1
  215. package/dist/ui/terminal/TerminalUI.js +0 -430
  216. package/dist/ui/terminal/TerminalUI.js.map +0 -1
  217. package/dist/ui/terminal/VirtualChatBuffer.d.ts +0 -32
  218. package/dist/ui/terminal/VirtualChatBuffer.d.ts.map +0 -1
  219. package/dist/ui/terminal/VirtualChatBuffer.js +0 -37
  220. package/dist/ui/terminal/VirtualChatBuffer.js.map +0 -1
  221. package/dist/ui/terminal-kit-base.d.ts +0 -117
  222. package/dist/ui/terminal-kit-base.d.ts.map +0 -1
  223. package/dist/ui/terminal-kit-base.js +0 -188
  224. package/dist/ui/terminal-kit-base.js.map +0 -1
  225. package/dist/ui/utils/duplication-detector.d.ts +0 -32
  226. package/dist/ui/utils/duplication-detector.d.ts.map +0 -1
  227. package/dist/ui/utils/duplication-detector.js +0 -227
  228. package/dist/ui/utils/duplication-detector.js.map +0 -1
  229. package/dist/ui/utils/duplication-logger.d.ts +0 -21
  230. package/dist/ui/utils/duplication-logger.d.ts.map +0 -1
  231. package/dist/ui/utils/duplication-logger.js +0 -85
  232. package/dist/ui/utils/duplication-logger.js.map +0 -1
  233. package/dist/ui/utils/terminal-scanner.d.ts +0 -19
  234. package/dist/ui/utils/terminal-scanner.d.ts.map +0 -1
  235. package/dist/ui/utils/terminal-scanner.js +0 -217
  236. package/dist/ui/utils/terminal-scanner.js.map +0 -1
@@ -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":"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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
- {
1
+ {
2
2
  "name": "centaurus-cli",
3
- "version": "2.5.1",
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",
@@ -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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Command to view duplication detection logs
3
- */
4
- import { getLogFilePath, readLastLogLines } from '../ui/utils/duplication-logger.js';
5
- export function viewDuplicationLogs(lines = 50) {
6
- const logPath = getLogFilePath();
7
- console.log(`\nšŸ“‹ Duplication Detection Logs (last ${lines} lines)`);
8
- console.log(`šŸ“ Log file: ${logPath}\n`);
9
- console.log('─'.repeat(80));
10
- console.log(readLastLogLines(lines));
11
- console.log('─'.repeat(80));
12
- console.log(`\nTo view full log: cat "${logPath}"\n`);
13
- }
14
- //# sourceMappingURL=view-duplication-logs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"view-duplication-logs.js","sourceRoot":"","sources":["../../src/commands/view-duplication-logs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErF,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE;IACpD,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,yCAAyC,KAAK,SAAS,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,KAAK,CAAC,CAAC;AACxD,CAAC"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Unit tests for Command Detector
3
- *
4
- * These tests verify:
5
- * - Pattern matching for SSH, WSL, Docker commands
6
- * - Handler registration and lookup
7
- * - Detection result accuracy
8
- */
9
- /**
10
- * Run all tests
11
- */
12
- declare function runTests(): void;
13
- export { runTests };
14
- //# sourceMappingURL=command-detector.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-detector.test.d.ts","sourceRoot":"","sources":["../../../src/context/__tests__/command-detector.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsVH;;GAEG;AACH,iBAAS,QAAQ,SAgBhB;AAOD,OAAO,EAAE,QAAQ,EAAE,CAAC"}