@shareai-lab/kode 1.2.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (725) hide show
  1. package/README.md +25 -388
  2. package/cli-acp.js +82 -0
  3. package/cli.js +89 -79
  4. package/dist/REPL-CW7AYLVL.js +42 -0
  5. package/dist/acp-VEPJ74LT.js +1357 -0
  6. package/dist/acp-VEPJ74LT.js.map +7 -0
  7. package/dist/agentsValidate-7LH4HTNR.js +373 -0
  8. package/dist/agentsValidate-7LH4HTNR.js.map +7 -0
  9. package/dist/ask-3NHFFUQG.js +125 -0
  10. package/dist/ask-3NHFFUQG.js.map +7 -0
  11. package/dist/autoUpdater-ITPIHCOI.js +17 -0
  12. package/dist/{utils/autoUpdater.js → chunk-3IN27HA5.js} +38 -21
  13. package/dist/chunk-3IN27HA5.js.map +7 -0
  14. package/dist/chunk-3RUXVV4S.js +23 -0
  15. package/dist/chunk-3RUXVV4S.js.map +7 -0
  16. package/dist/chunk-4FX3IVPT.js +164 -0
  17. package/dist/chunk-4FX3IVPT.js.map +7 -0
  18. package/dist/chunk-4RTX4AG4.js +249 -0
  19. package/dist/chunk-4RTX4AG4.js.map +7 -0
  20. package/dist/chunk-5PDP7R6N.js +515 -0
  21. package/dist/chunk-5PDP7R6N.js.map +7 -0
  22. package/dist/chunk-73WGVYLQ.js +735 -0
  23. package/dist/chunk-73WGVYLQ.js.map +7 -0
  24. package/dist/{services/systemReminder.js → chunk-7M2YN6TU.js} +221 -59
  25. package/dist/chunk-7M2YN6TU.js.map +7 -0
  26. package/dist/{utils/theme.js → chunk-7U7L4NMD.js} +28 -6
  27. package/dist/chunk-7U7L4NMD.js.map +7 -0
  28. package/dist/chunk-ABLVTESJ.js +19 -0
  29. package/dist/chunk-ABLVTESJ.js.map +7 -0
  30. package/dist/chunk-AFFSCMYS.js +191 -0
  31. package/dist/chunk-AFFSCMYS.js.map +7 -0
  32. package/dist/chunk-ARZSBOAO.js +1256 -0
  33. package/dist/chunk-ARZSBOAO.js.map +7 -0
  34. package/dist/chunk-CIG63V4E.js +72 -0
  35. package/dist/chunk-CIG63V4E.js.map +7 -0
  36. package/dist/chunk-CM3EGTG6.js +1609 -0
  37. package/dist/chunk-CM3EGTG6.js.map +7 -0
  38. package/dist/{services/openai.js → chunk-DZE5YA7L.js} +168 -234
  39. package/dist/chunk-DZE5YA7L.js.map +7 -0
  40. package/dist/chunk-E6YNABER.js +24 -0
  41. package/dist/chunk-E6YNABER.js.map +7 -0
  42. package/dist/{cost-tracker.js → chunk-EZXMVTDU.js} +51 -32
  43. package/dist/chunk-EZXMVTDU.js.map +7 -0
  44. package/dist/chunk-F2SJXUDI.js +148 -0
  45. package/dist/chunk-F2SJXUDI.js.map +7 -0
  46. package/dist/chunk-FC5ZCKBI.js +30167 -0
  47. package/dist/chunk-FC5ZCKBI.js.map +7 -0
  48. package/dist/chunk-HCBELH4J.js +145 -0
  49. package/dist/chunk-HCBELH4J.js.map +7 -0
  50. package/dist/chunk-HN4E4UUQ.js +96 -0
  51. package/dist/chunk-HN4E4UUQ.js.map +7 -0
  52. package/dist/{utils/model.js → chunk-IZVMU4S2.js} +194 -227
  53. package/dist/chunk-IZVMU4S2.js.map +7 -0
  54. package/dist/chunk-JC6NCUG5.js +11 -0
  55. package/dist/chunk-K2CWOTI2.js +196 -0
  56. package/dist/chunk-K2CWOTI2.js.map +7 -0
  57. package/dist/chunk-KAA5BGMQ.js +12 -0
  58. package/dist/chunk-KAA5BGMQ.js.map +7 -0
  59. package/dist/{utils/config.js → chunk-LC4TVOCZ.js} +351 -171
  60. package/dist/chunk-LC4TVOCZ.js.map +7 -0
  61. package/dist/chunk-MIW7N2MY.js +2613 -0
  62. package/dist/chunk-MIW7N2MY.js.map +7 -0
  63. package/dist/chunk-MWRSY4X6.js +240 -0
  64. package/dist/chunk-MWRSY4X6.js.map +7 -0
  65. package/dist/chunk-ND3XWFO6.js +34 -0
  66. package/dist/chunk-ND3XWFO6.js.map +7 -0
  67. package/dist/chunk-NPFOMITO.js +21 -0
  68. package/dist/chunk-NPFOMITO.js.map +7 -0
  69. package/dist/chunk-QVLYOPO5.js +1097 -0
  70. package/dist/chunk-QVLYOPO5.js.map +7 -0
  71. package/dist/chunk-RZWOUA25.js +490 -0
  72. package/dist/chunk-RZWOUA25.js.map +7 -0
  73. package/dist/chunk-S3J2TLV6.js +16 -0
  74. package/dist/chunk-S3J2TLV6.js.map +7 -0
  75. package/dist/chunk-S6HRABTA.js +95 -0
  76. package/dist/chunk-S6HRABTA.js.map +7 -0
  77. package/dist/{utils/debugLogger.js → chunk-STSX7GIX.js} +107 -204
  78. package/dist/chunk-STSX7GIX.js.map +7 -0
  79. package/dist/chunk-UHYRLID6.js +472 -0
  80. package/dist/chunk-UHYRLID6.js.map +7 -0
  81. package/dist/chunk-UKHTVRJM.js +47 -0
  82. package/dist/chunk-UKHTVRJM.js.map +7 -0
  83. package/dist/chunk-UYXEDKOZ.js +24 -0
  84. package/dist/chunk-UYXEDKOZ.js.map +7 -0
  85. package/dist/chunk-W7GRKO7Q.js +766 -0
  86. package/dist/chunk-W7GRKO7Q.js.map +7 -0
  87. package/dist/chunk-WVHORZQ5.js +17 -0
  88. package/dist/chunk-WVHORZQ5.js.map +7 -0
  89. package/dist/chunk-WWUWDNWW.js +49 -0
  90. package/dist/chunk-WWUWDNWW.js.map +7 -0
  91. package/dist/chunk-YC6LJCDE.js +511 -0
  92. package/dist/chunk-YC6LJCDE.js.map +7 -0
  93. package/dist/chunk-YXYYDIMI.js +2931 -0
  94. package/dist/chunk-YXYYDIMI.js.map +7 -0
  95. package/dist/chunk-ZVDRDPII.js +138 -0
  96. package/dist/chunk-ZVDRDPII.js.map +7 -0
  97. package/dist/cli-DOPVY2CW.js +3917 -0
  98. package/dist/cli-DOPVY2CW.js.map +7 -0
  99. package/dist/commands-2BF2CJ3A.js +46 -0
  100. package/dist/config-RUSD6G5Y.js +81 -0
  101. package/dist/context-6FXPETYH.js +30 -0
  102. package/dist/costTracker-6SL26FDB.js +19 -0
  103. package/dist/customCommands-TOIJFZAL.js +25 -0
  104. package/dist/customCommands-TOIJFZAL.js.map +7 -0
  105. package/dist/env-XGKBLU3D.js +22 -0
  106. package/dist/env-XGKBLU3D.js.map +7 -0
  107. package/dist/index.js +34 -5
  108. package/dist/index.js.map +4 -4
  109. package/dist/kodeAgentSessionId-X6XWQW7B.js +13 -0
  110. package/dist/kodeAgentSessionId-X6XWQW7B.js.map +7 -0
  111. package/dist/kodeAgentSessionLoad-MITZADPB.js +18 -0
  112. package/dist/kodeAgentSessionLoad-MITZADPB.js.map +7 -0
  113. package/dist/kodeAgentSessionResume-GVRWB4WO.js +16 -0
  114. package/dist/kodeAgentSessionResume-GVRWB4WO.js.map +7 -0
  115. package/dist/kodeAgentStreamJson-NXFN7TXH.js +13 -0
  116. package/dist/kodeAgentStreamJson-NXFN7TXH.js.map +7 -0
  117. package/dist/kodeAgentStreamJsonSession-UGEZJJEB.js +131 -0
  118. package/dist/kodeAgentStreamJsonSession-UGEZJJEB.js.map +7 -0
  119. package/dist/kodeAgentStructuredStdio-HGWJT7CU.js +10 -0
  120. package/dist/kodeAgentStructuredStdio-HGWJT7CU.js.map +7 -0
  121. package/dist/kodeHooks-QWM36A3D.js +36 -0
  122. package/dist/kodeHooks-QWM36A3D.js.map +7 -0
  123. package/dist/llm-ZUQC4WYM.js +3118 -0
  124. package/dist/llm-ZUQC4WYM.js.map +7 -0
  125. package/dist/llmLazy-54QQHA54.js +15 -0
  126. package/dist/llmLazy-54QQHA54.js.map +7 -0
  127. package/dist/loader-FYHJQES5.js +28 -0
  128. package/dist/loader-FYHJQES5.js.map +7 -0
  129. package/dist/mcp-J332IKT3.js +49 -0
  130. package/dist/mcp-J332IKT3.js.map +7 -0
  131. package/dist/{services/mentionProcessor.js → mentionProcessor-EE3XFHCJ.js} +61 -50
  132. package/dist/mentionProcessor-EE3XFHCJ.js.map +7 -0
  133. package/dist/messages-EOYQKPGM.js +63 -0
  134. package/dist/messages-EOYQKPGM.js.map +7 -0
  135. package/dist/model-FV3JDJKH.js +30 -0
  136. package/dist/model-FV3JDJKH.js.map +7 -0
  137. package/dist/openai-RRCWW33N.js +29 -0
  138. package/dist/openai-RRCWW33N.js.map +7 -0
  139. package/dist/outputStyles-62Q3VH2J.js +28 -0
  140. package/dist/outputStyles-62Q3VH2J.js.map +7 -0
  141. package/dist/package.json +1 -1
  142. package/dist/pluginRuntime-6ETCZ2LL.js +218 -0
  143. package/dist/pluginRuntime-6ETCZ2LL.js.map +7 -0
  144. package/dist/pluginValidation-I4YKUWGS.js +17 -0
  145. package/dist/pluginValidation-I4YKUWGS.js.map +7 -0
  146. package/dist/prompts-ZLEKDD77.js +48 -0
  147. package/dist/prompts-ZLEKDD77.js.map +7 -0
  148. package/dist/query-VFRJPBGD.js +50 -0
  149. package/dist/query-VFRJPBGD.js.map +7 -0
  150. package/dist/responsesStreaming-AW344PQO.js +10 -0
  151. package/dist/responsesStreaming-AW344PQO.js.map +7 -0
  152. package/dist/ripgrep-3NTIKQYW.js +17 -0
  153. package/dist/ripgrep-3NTIKQYW.js.map +7 -0
  154. package/dist/skillMarketplace-3RXQBVOL.js +37 -0
  155. package/dist/skillMarketplace-3RXQBVOL.js.map +7 -0
  156. package/dist/state-P5G6CO5V.js +16 -0
  157. package/dist/state-P5G6CO5V.js.map +7 -0
  158. package/dist/theme-3LWP3BG7.js +14 -0
  159. package/dist/theme-3LWP3BG7.js.map +7 -0
  160. package/dist/toolPermissionContext-65L65VEZ.js +17 -0
  161. package/dist/toolPermissionContext-65L65VEZ.js.map +7 -0
  162. package/dist/toolPermissionSettings-3ROBVTUK.js +18 -0
  163. package/dist/toolPermissionSettings-3ROBVTUK.js.map +7 -0
  164. package/dist/tools-RO7HSSE5.js +47 -0
  165. package/dist/tools-RO7HSSE5.js.map +7 -0
  166. package/dist/userInput-JSBJRFSK.js +311 -0
  167. package/dist/userInput-JSBJRFSK.js.map +7 -0
  168. package/dist/uuid-QN2CNKKN.js +9 -0
  169. package/dist/uuid-QN2CNKKN.js.map +7 -0
  170. package/package.json +43 -14
  171. package/scripts/binary-utils.cjs +62 -0
  172. package/scripts/cli-acp-wrapper.cjs +82 -0
  173. package/scripts/cli-wrapper.cjs +105 -0
  174. package/scripts/postinstall.js +135 -9
  175. package/LICENSE +0 -201
  176. package/README.zh-CN.md +0 -312
  177. package/dist/ProjectOnboarding.js +0 -99
  178. package/dist/ProjectOnboarding.js.map +0 -7
  179. package/dist/Tool.js +0 -1
  180. package/dist/commands/agents.js +0 -2087
  181. package/dist/commands/agents.js.map +0 -7
  182. package/dist/commands/approvedTools.js +0 -36
  183. package/dist/commands/approvedTools.js.map +0 -7
  184. package/dist/commands/bug.js +0 -21
  185. package/dist/commands/bug.js.map +0 -7
  186. package/dist/commands/clear.js +0 -37
  187. package/dist/commands/clear.js.map +0 -7
  188. package/dist/commands/compact.js +0 -104
  189. package/dist/commands/compact.js.map +0 -7
  190. package/dist/commands/config.js +0 -20
  191. package/dist/commands/config.js.map +0 -7
  192. package/dist/commands/cost.js +0 -19
  193. package/dist/commands/cost.js.map +0 -7
  194. package/dist/commands/ctx_viz.js +0 -152
  195. package/dist/commands/ctx_viz.js.map +0 -7
  196. package/dist/commands/doctor.js +0 -25
  197. package/dist/commands/doctor.js.map +0 -7
  198. package/dist/commands/help.js +0 -20
  199. package/dist/commands/help.js.map +0 -7
  200. package/dist/commands/init.js +0 -38
  201. package/dist/commands/init.js.map +0 -7
  202. package/dist/commands/listen.js +0 -37
  203. package/dist/commands/listen.js.map +0 -7
  204. package/dist/commands/login.js +0 -37
  205. package/dist/commands/login.js.map +0 -7
  206. package/dist/commands/logout.js +0 -33
  207. package/dist/commands/logout.js.map +0 -7
  208. package/dist/commands/mcp.js +0 -34
  209. package/dist/commands/mcp.js.map +0 -7
  210. package/dist/commands/model.js +0 -41
  211. package/dist/commands/model.js.map +0 -7
  212. package/dist/commands/modelstatus.js +0 -21
  213. package/dist/commands/modelstatus.js.map +0 -7
  214. package/dist/commands/onboarding.js +0 -36
  215. package/dist/commands/onboarding.js.map +0 -7
  216. package/dist/commands/pr_comments.js +0 -61
  217. package/dist/commands/pr_comments.js.map +0 -7
  218. package/dist/commands/refreshCommands.js +0 -37
  219. package/dist/commands/refreshCommands.js.map +0 -7
  220. package/dist/commands/release-notes.js +0 -30
  221. package/dist/commands/release-notes.js.map +0 -7
  222. package/dist/commands/resume.js +0 -35
  223. package/dist/commands/resume.js.map +0 -7
  224. package/dist/commands/review.js +0 -51
  225. package/dist/commands/review.js.map +0 -7
  226. package/dist/commands/terminalSetup.js +0 -163
  227. package/dist/commands/terminalSetup.js.map +0 -7
  228. package/dist/commands.js +0 -84
  229. package/dist/commands.js.map +0 -7
  230. package/dist/components/ApproveApiKey.js +0 -74
  231. package/dist/components/ApproveApiKey.js.map +0 -7
  232. package/dist/components/AsciiLogo.js +0 -12
  233. package/dist/components/AsciiLogo.js.map +0 -7
  234. package/dist/components/AutoUpdater.js +0 -74
  235. package/dist/components/AutoUpdater.js.map +0 -7
  236. package/dist/components/Bug.js +0 -147
  237. package/dist/components/Bug.js.map +0 -7
  238. package/dist/components/Config.js +0 -166
  239. package/dist/components/Config.js.map +0 -7
  240. package/dist/components/ConsoleOAuthFlow.js +0 -188
  241. package/dist/components/ConsoleOAuthFlow.js.map +0 -7
  242. package/dist/components/Cost.js +0 -13
  243. package/dist/components/Cost.js.map +0 -7
  244. package/dist/components/CostThresholdDialog.js +0 -38
  245. package/dist/components/CostThresholdDialog.js.map +0 -7
  246. package/dist/components/CustomSelect/option-map.js +0 -32
  247. package/dist/components/CustomSelect/option-map.js.map +0 -7
  248. package/dist/components/CustomSelect/select-option.js +0 -34
  249. package/dist/components/CustomSelect/select-option.js.map +0 -7
  250. package/dist/components/CustomSelect/select.js +0 -64
  251. package/dist/components/CustomSelect/select.js.map +0 -7
  252. package/dist/components/CustomSelect/theme.js +0 -1
  253. package/dist/components/CustomSelect/use-select-state.js +0 -220
  254. package/dist/components/CustomSelect/use-select-state.js.map +0 -7
  255. package/dist/components/CustomSelect/use-select.js +0 -21
  256. package/dist/components/CustomSelect/use-select.js.map +0 -7
  257. package/dist/components/FallbackToolUseRejectedMessage.js +0 -11
  258. package/dist/components/FallbackToolUseRejectedMessage.js.map +0 -7
  259. package/dist/components/FileEditToolUpdatedMessage.js +0 -32
  260. package/dist/components/FileEditToolUpdatedMessage.js.map +0 -7
  261. package/dist/components/Help.js +0 -41
  262. package/dist/components/Help.js.map +0 -7
  263. package/dist/components/HighlightedCode.js +0 -30
  264. package/dist/components/HighlightedCode.js.map +0 -7
  265. package/dist/components/InvalidConfigDialog.js +0 -83
  266. package/dist/components/InvalidConfigDialog.js.map +0 -7
  267. package/dist/components/Link.js +0 -18
  268. package/dist/components/Link.js.map +0 -7
  269. package/dist/components/LogSelector.js +0 -50
  270. package/dist/components/LogSelector.js.map +0 -7
  271. package/dist/components/Logo.js +0 -94
  272. package/dist/components/Logo.js.map +0 -7
  273. package/dist/components/MCPServerApprovalDialog.js +0 -79
  274. package/dist/components/MCPServerApprovalDialog.js.map +0 -7
  275. package/dist/components/MCPServerDialogCopy.js +0 -11
  276. package/dist/components/MCPServerDialogCopy.js.map +0 -7
  277. package/dist/components/MCPServerMultiselectDialog.js +0 -80
  278. package/dist/components/MCPServerMultiselectDialog.js.map +0 -7
  279. package/dist/components/Message.js +0 -146
  280. package/dist/components/Message.js.map +0 -7
  281. package/dist/components/MessageResponse.js +0 -9
  282. package/dist/components/MessageResponse.js.map +0 -7
  283. package/dist/components/MessageSelector.js +0 -133
  284. package/dist/components/MessageSelector.js.map +0 -7
  285. package/dist/components/ModeIndicator.js +0 -38
  286. package/dist/components/ModeIndicator.js.map +0 -7
  287. package/dist/components/ModelConfig.js +0 -208
  288. package/dist/components/ModelConfig.js.map +0 -7
  289. package/dist/components/ModelListManager.js +0 -140
  290. package/dist/components/ModelListManager.js.map +0 -7
  291. package/dist/components/ModelSelector.js +0 -1985
  292. package/dist/components/ModelSelector.js.map +0 -7
  293. package/dist/components/ModelStatusDisplay.js +0 -87
  294. package/dist/components/ModelStatusDisplay.js.map +0 -7
  295. package/dist/components/Onboarding.js +0 -153
  296. package/dist/components/Onboarding.js.map +0 -7
  297. package/dist/components/PressEnterToContinue.js +0 -10
  298. package/dist/components/PressEnterToContinue.js.map +0 -7
  299. package/dist/components/PromptInput.js +0 -488
  300. package/dist/components/PromptInput.js.map +0 -7
  301. package/dist/components/SentryErrorBoundary.js +0 -27
  302. package/dist/components/SentryErrorBoundary.js.map +0 -7
  303. package/dist/components/Spinner.js +0 -101
  304. package/dist/components/Spinner.js.map +0 -7
  305. package/dist/components/StickerRequestForm.js +0 -7
  306. package/dist/components/StickerRequestForm.js.map +0 -7
  307. package/dist/components/StructuredDiff.js +0 -148
  308. package/dist/components/StructuredDiff.js.map +0 -7
  309. package/dist/components/TextInput.js +0 -100
  310. package/dist/components/TextInput.js.map +0 -7
  311. package/dist/components/TodoItem.js +0 -35
  312. package/dist/components/TodoItem.js.map +0 -7
  313. package/dist/components/TokenWarning.js +0 -19
  314. package/dist/components/TokenWarning.js.map +0 -7
  315. package/dist/components/ToolUseLoader.js +0 -24
  316. package/dist/components/ToolUseLoader.js.map +0 -7
  317. package/dist/components/TrustDialog.js +0 -76
  318. package/dist/components/TrustDialog.js.map +0 -7
  319. package/dist/components/binary-feedback/BinaryFeedback.js +0 -50
  320. package/dist/components/binary-feedback/BinaryFeedback.js.map +0 -7
  321. package/dist/components/binary-feedback/BinaryFeedbackOption.js +0 -94
  322. package/dist/components/binary-feedback/BinaryFeedbackOption.js.map +0 -7
  323. package/dist/components/binary-feedback/BinaryFeedbackView.js +0 -139
  324. package/dist/components/binary-feedback/BinaryFeedbackView.js.map +0 -7
  325. package/dist/components/binary-feedback/utils.js +0 -161
  326. package/dist/components/binary-feedback/utils.js.map +0 -7
  327. package/dist/components/messages/AssistantBashOutputMessage.js +0 -23
  328. package/dist/components/messages/AssistantBashOutputMessage.js.map +0 -7
  329. package/dist/components/messages/AssistantLocalCommandOutputMessage.js +0 -36
  330. package/dist/components/messages/AssistantLocalCommandOutputMessage.js.map +0 -7
  331. package/dist/components/messages/AssistantRedactedThinkingMessage.js +0 -12
  332. package/dist/components/messages/AssistantRedactedThinkingMessage.js.map +0 -7
  333. package/dist/components/messages/AssistantTextMessage.js +0 -78
  334. package/dist/components/messages/AssistantTextMessage.js.map +0 -7
  335. package/dist/components/messages/AssistantThinkingMessage.js +0 -27
  336. package/dist/components/messages/AssistantThinkingMessage.js.map +0 -7
  337. package/dist/components/messages/AssistantToolUseMessage.js +0 -91
  338. package/dist/components/messages/AssistantToolUseMessage.js.map +0 -7
  339. package/dist/components/messages/TaskProgressMessage.js +0 -11
  340. package/dist/components/messages/TaskProgressMessage.js.map +0 -7
  341. package/dist/components/messages/TaskToolMessage.js +0 -39
  342. package/dist/components/messages/TaskToolMessage.js.map +0 -7
  343. package/dist/components/messages/UserBashInputMessage.js +0 -18
  344. package/dist/components/messages/UserBashInputMessage.js.map +0 -7
  345. package/dist/components/messages/UserCommandMessage.js +0 -20
  346. package/dist/components/messages/UserCommandMessage.js.map +0 -7
  347. package/dist/components/messages/UserKodingInputMessage.js +0 -18
  348. package/dist/components/messages/UserKodingInputMessage.js.map +0 -7
  349. package/dist/components/messages/UserPromptMessage.js +0 -20
  350. package/dist/components/messages/UserPromptMessage.js.map +0 -7
  351. package/dist/components/messages/UserTextMessage.js +0 -25
  352. package/dist/components/messages/UserTextMessage.js.map +0 -7
  353. package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js +0 -10
  354. package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js.map +0 -7
  355. package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js +0 -15
  356. package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js.map +0 -7
  357. package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js +0 -25
  358. package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js.map +0 -7
  359. package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js +0 -47
  360. package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js.map +0 -7
  361. package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +0 -23
  362. package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js.map +0 -7
  363. package/dist/components/messages/UserToolResultMessage/utils.js +0 -42
  364. package/dist/components/messages/UserToolResultMessage/utils.js.map +0 -7
  365. package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js +0 -112
  366. package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js.map +0 -7
  367. package/dist/components/permissions/FallbackPermissionRequest.js +0 -131
  368. package/dist/components/permissions/FallbackPermissionRequest.js.map +0 -7
  369. package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +0 -159
  370. package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js.map +0 -7
  371. package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js +0 -58
  372. package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js.map +0 -7
  373. package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +0 -153
  374. package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js.map +0 -7
  375. package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +0 -70
  376. package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js.map +0 -7
  377. package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +0 -212
  378. package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js.map +0 -7
  379. package/dist/components/permissions/PermissionRequest.js +0 -70
  380. package/dist/components/permissions/PermissionRequest.js.map +0 -7
  381. package/dist/components/permissions/PermissionRequestTitle.js +0 -52
  382. package/dist/components/permissions/PermissionRequestTitle.js.map +0 -7
  383. package/dist/components/permissions/hooks.js +0 -28
  384. package/dist/components/permissions/hooks.js.map +0 -7
  385. package/dist/components/permissions/toolUseOptions.js +0 -46
  386. package/dist/components/permissions/toolUseOptions.js.map +0 -7
  387. package/dist/components/permissions/utils.js +0 -21
  388. package/dist/components/permissions/utils.js.map +0 -7
  389. package/dist/constants/betas.js +0 -11
  390. package/dist/constants/betas.js.map +0 -7
  391. package/dist/constants/claude-asterisk-ascii-art.js +0 -242
  392. package/dist/constants/claude-asterisk-ascii-art.js.map +0 -7
  393. package/dist/constants/figures.js +0 -6
  394. package/dist/constants/figures.js.map +0 -7
  395. package/dist/constants/keys.js +0 -7
  396. package/dist/constants/keys.js.map +0 -7
  397. package/dist/constants/macros.js +0 -13
  398. package/dist/constants/macros.js.map +0 -7
  399. package/dist/constants/modelCapabilities.js +0 -154
  400. package/dist/constants/modelCapabilities.js.map +0 -7
  401. package/dist/constants/models.js +0 -1034
  402. package/dist/constants/models.js.map +0 -7
  403. package/dist/constants/oauth.js +0 -18
  404. package/dist/constants/oauth.js.map +0 -7
  405. package/dist/constants/product.js +0 -26
  406. package/dist/constants/product.js.map +0 -7
  407. package/dist/constants/prompts.js +0 -168
  408. package/dist/constants/prompts.js.map +0 -7
  409. package/dist/constants/releaseNotes.js +0 -9
  410. package/dist/constants/releaseNotes.js.map +0 -7
  411. package/dist/context/PermissionContext.js +0 -111
  412. package/dist/context/PermissionContext.js.map +0 -7
  413. package/dist/context.js +0 -259
  414. package/dist/context.js.map +0 -7
  415. package/dist/cost-tracker.js.map +0 -7
  416. package/dist/entrypoints/cli.js +0 -1107
  417. package/dist/entrypoints/cli.js.map +0 -7
  418. package/dist/entrypoints/mcp.js +0 -150
  419. package/dist/entrypoints/mcp.js.map +0 -7
  420. package/dist/history.js +0 -25
  421. package/dist/history.js.map +0 -7
  422. package/dist/hooks/useApiKeyVerification.js +0 -12
  423. package/dist/hooks/useApiKeyVerification.js.map +0 -7
  424. package/dist/hooks/useArrowKeyHistory.js +0 -50
  425. package/dist/hooks/useArrowKeyHistory.js.map +0 -7
  426. package/dist/hooks/useCanUseTool.js +0 -112
  427. package/dist/hooks/useCanUseTool.js.map +0 -7
  428. package/dist/hooks/useCancelRequest.js +0 -30
  429. package/dist/hooks/useCancelRequest.js.map +0 -7
  430. package/dist/hooks/useDoublePress.js +0 -31
  431. package/dist/hooks/useDoublePress.js.map +0 -7
  432. package/dist/hooks/useExitOnCtrlCD.js +0 -26
  433. package/dist/hooks/useExitOnCtrlCD.js.map +0 -7
  434. package/dist/hooks/useInterval.js +0 -18
  435. package/dist/hooks/useInterval.js.map +0 -7
  436. package/dist/hooks/useLogMessages.js +0 -14
  437. package/dist/hooks/useLogMessages.js.map +0 -7
  438. package/dist/hooks/useLogStartupTime.js +0 -15
  439. package/dist/hooks/useLogStartupTime.js.map +0 -7
  440. package/dist/hooks/useNotifyAfterTimeout.js +0 -42
  441. package/dist/hooks/useNotifyAfterTimeout.js.map +0 -7
  442. package/dist/hooks/usePermissionRequestLogging.js +0 -28
  443. package/dist/hooks/usePermissionRequestLogging.js.map +0 -7
  444. package/dist/hooks/useTerminalSize.js +0 -38
  445. package/dist/hooks/useTerminalSize.js.map +0 -7
  446. package/dist/hooks/useTextInput.js +0 -250
  447. package/dist/hooks/useTextInput.js.map +0 -7
  448. package/dist/hooks/useUnifiedCompletion.js +0 -929
  449. package/dist/hooks/useUnifiedCompletion.js.map +0 -7
  450. package/dist/messages.js +0 -33
  451. package/dist/messages.js.map +0 -7
  452. package/dist/permissions.js +0 -194
  453. package/dist/permissions.js.map +0 -7
  454. package/dist/query.js +0 -492
  455. package/dist/query.js.map +0 -7
  456. package/dist/screens/ConfigureNpmPrefix.js +0 -128
  457. package/dist/screens/ConfigureNpmPrefix.js.map +0 -7
  458. package/dist/screens/Doctor.js +0 -22
  459. package/dist/screens/Doctor.js.map +0 -7
  460. package/dist/screens/LogList.js +0 -55
  461. package/dist/screens/LogList.js.map +0 -7
  462. package/dist/screens/REPL.js +0 -593
  463. package/dist/screens/REPL.js.map +0 -7
  464. package/dist/screens/ResumeConversation.js +0 -56
  465. package/dist/screens/ResumeConversation.js.map +0 -7
  466. package/dist/services/adapters/base.js +0 -29
  467. package/dist/services/adapters/base.js.map +0 -7
  468. package/dist/services/adapters/chatCompletions.js +0 -69
  469. package/dist/services/adapters/chatCompletions.js.map +0 -7
  470. package/dist/services/adapters/responsesAPI.js +0 -126
  471. package/dist/services/adapters/responsesAPI.js.map +0 -7
  472. package/dist/services/browserMocks.js +0 -48
  473. package/dist/services/browserMocks.js.map +0 -7
  474. package/dist/services/claude.js +0 -1605
  475. package/dist/services/claude.js.map +0 -7
  476. package/dist/services/customCommands.js +0 -359
  477. package/dist/services/customCommands.js.map +0 -7
  478. package/dist/services/fileFreshness.js +0 -280
  479. package/dist/services/fileFreshness.js.map +0 -7
  480. package/dist/services/gpt5ConnectionTest.js +0 -248
  481. package/dist/services/gpt5ConnectionTest.js.map +0 -7
  482. package/dist/services/mcpClient.js +0 -435
  483. package/dist/services/mcpClient.js.map +0 -7
  484. package/dist/services/mcpServerApproval.js +0 -55
  485. package/dist/services/mcpServerApproval.js.map +0 -7
  486. package/dist/services/mentionProcessor.js.map +0 -7
  487. package/dist/services/modelAdapterFactory.js +0 -47
  488. package/dist/services/modelAdapterFactory.js.map +0 -7
  489. package/dist/services/notifier.js +0 -35
  490. package/dist/services/notifier.js.map +0 -7
  491. package/dist/services/oauth.js +0 -259
  492. package/dist/services/oauth.js.map +0 -7
  493. package/dist/services/openai.js.map +0 -7
  494. package/dist/services/responseStateManager.js +0 -68
  495. package/dist/services/responseStateManager.js.map +0 -7
  496. package/dist/services/sentry.js +0 -9
  497. package/dist/services/sentry.js.map +0 -7
  498. package/dist/services/statsig.js +0 -112
  499. package/dist/services/statsig.js.map +0 -7
  500. package/dist/services/statsigStorage.js +0 -75
  501. package/dist/services/statsigStorage.js.map +0 -7
  502. package/dist/services/systemReminder.js.map +0 -7
  503. package/dist/services/vcr.js +0 -133
  504. package/dist/services/vcr.js.map +0 -7
  505. package/dist/tools/ArchitectTool/ArchitectTool.js +0 -119
  506. package/dist/tools/ArchitectTool/ArchitectTool.js.map +0 -7
  507. package/dist/tools/ArchitectTool/prompt.js +0 -18
  508. package/dist/tools/ArchitectTool/prompt.js.map +0 -7
  509. package/dist/tools/AskExpertModelTool/AskExpertModelTool.js +0 -423
  510. package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +0 -7
  511. package/dist/tools/BashTool/BashTool.js +0 -188
  512. package/dist/tools/BashTool/BashTool.js.map +0 -7
  513. package/dist/tools/BashTool/BashToolResultMessage.js +0 -21
  514. package/dist/tools/BashTool/BashToolResultMessage.js.map +0 -7
  515. package/dist/tools/BashTool/OutputLine.js +0 -30
  516. package/dist/tools/BashTool/OutputLine.js.map +0 -7
  517. package/dist/tools/BashTool/prompt.js +0 -179
  518. package/dist/tools/BashTool/prompt.js.map +0 -7
  519. package/dist/tools/BashTool/utils.js +0 -51
  520. package/dist/tools/BashTool/utils.js.map +0 -7
  521. package/dist/tools/FileEditTool/FileEditTool.js +0 -228
  522. package/dist/tools/FileEditTool/FileEditTool.js.map +0 -7
  523. package/dist/tools/FileEditTool/prompt.js +0 -54
  524. package/dist/tools/FileEditTool/prompt.js.map +0 -7
  525. package/dist/tools/FileEditTool/utils.js +0 -42
  526. package/dist/tools/FileEditTool/utils.js.map +0 -7
  527. package/dist/tools/FileReadTool/FileReadTool.js +0 -272
  528. package/dist/tools/FileReadTool/FileReadTool.js.map +0 -7
  529. package/dist/tools/FileReadTool/prompt.js +0 -10
  530. package/dist/tools/FileReadTool/prompt.js.map +0 -7
  531. package/dist/tools/FileWriteTool/FileWriteTool.js +0 -204
  532. package/dist/tools/FileWriteTool/FileWriteTool.js.map +0 -7
  533. package/dist/tools/FileWriteTool/prompt.js +0 -14
  534. package/dist/tools/FileWriteTool/prompt.js.map +0 -7
  535. package/dist/tools/GlobTool/GlobTool.js +0 -88
  536. package/dist/tools/GlobTool/GlobTool.js.map +0 -7
  537. package/dist/tools/GlobTool/prompt.js +0 -12
  538. package/dist/tools/GlobTool/prompt.js.map +0 -7
  539. package/dist/tools/GrepTool/GrepTool.js +0 -107
  540. package/dist/tools/GrepTool/GrepTool.js.map +0 -7
  541. package/dist/tools/GrepTool/prompt.js +0 -15
  542. package/dist/tools/GrepTool/prompt.js.map +0 -7
  543. package/dist/tools/MCPTool/MCPTool.js +0 -90
  544. package/dist/tools/MCPTool/MCPTool.js.map +0 -7
  545. package/dist/tools/MCPTool/prompt.js +0 -7
  546. package/dist/tools/MCPTool/prompt.js.map +0 -7
  547. package/dist/tools/MemoryReadTool/MemoryReadTool.js +0 -103
  548. package/dist/tools/MemoryReadTool/MemoryReadTool.js.map +0 -7
  549. package/dist/tools/MemoryReadTool/prompt.js +0 -7
  550. package/dist/tools/MemoryReadTool/prompt.js.map +0 -7
  551. package/dist/tools/MemoryWriteTool/MemoryWriteTool.js +0 -77
  552. package/dist/tools/MemoryWriteTool/MemoryWriteTool.js.map +0 -7
  553. package/dist/tools/MemoryWriteTool/prompt.js +0 -7
  554. package/dist/tools/MemoryWriteTool/prompt.js.map +0 -7
  555. package/dist/tools/MultiEditTool/MultiEditTool.js +0 -308
  556. package/dist/tools/MultiEditTool/MultiEditTool.js.map +0 -7
  557. package/dist/tools/MultiEditTool/prompt.js +0 -48
  558. package/dist/tools/MultiEditTool/prompt.js.map +0 -7
  559. package/dist/tools/NotebookEditTool/NotebookEditTool.js +0 -238
  560. package/dist/tools/NotebookEditTool/NotebookEditTool.js.map +0 -7
  561. package/dist/tools/NotebookEditTool/prompt.js +0 -7
  562. package/dist/tools/NotebookEditTool/prompt.js.map +0 -7
  563. package/dist/tools/NotebookReadTool/NotebookReadTool.js +0 -212
  564. package/dist/tools/NotebookReadTool/NotebookReadTool.js.map +0 -7
  565. package/dist/tools/NotebookReadTool/prompt.js +0 -7
  566. package/dist/tools/NotebookReadTool/prompt.js.map +0 -7
  567. package/dist/tools/StickerRequestTool/StickerRequestTool.js +0 -86
  568. package/dist/tools/StickerRequestTool/StickerRequestTool.js.map +0 -7
  569. package/dist/tools/StickerRequestTool/prompt.js +0 -23
  570. package/dist/tools/StickerRequestTool/prompt.js.map +0 -7
  571. package/dist/tools/TaskTool/TaskTool.js +0 -351
  572. package/dist/tools/TaskTool/TaskTool.js.map +0 -7
  573. package/dist/tools/TaskTool/constants.js +0 -5
  574. package/dist/tools/TaskTool/constants.js.map +0 -7
  575. package/dist/tools/TaskTool/prompt.js +0 -82
  576. package/dist/tools/TaskTool/prompt.js.map +0 -7
  577. package/dist/tools/ThinkTool/ThinkTool.js +0 -48
  578. package/dist/tools/ThinkTool/ThinkTool.js.map +0 -7
  579. package/dist/tools/ThinkTool/prompt.js +0 -16
  580. package/dist/tools/ThinkTool/prompt.js.map +0 -7
  581. package/dist/tools/TodoWriteTool/TodoWriteTool.js +0 -216
  582. package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +0 -7
  583. package/dist/tools/TodoWriteTool/prompt.js +0 -66
  584. package/dist/tools/TodoWriteTool/prompt.js.map +0 -7
  585. package/dist/tools/URLFetcherTool/URLFetcherTool.js +0 -137
  586. package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +0 -7
  587. package/dist/tools/URLFetcherTool/cache.js +0 -45
  588. package/dist/tools/URLFetcherTool/cache.js.map +0 -7
  589. package/dist/tools/URLFetcherTool/htmlToMarkdown.js +0 -42
  590. package/dist/tools/URLFetcherTool/htmlToMarkdown.js.map +0 -7
  591. package/dist/tools/URLFetcherTool/prompt.js +0 -22
  592. package/dist/tools/URLFetcherTool/prompt.js.map +0 -7
  593. package/dist/tools/WebSearchTool/WebSearchTool.js +0 -86
  594. package/dist/tools/WebSearchTool/WebSearchTool.js.map +0 -7
  595. package/dist/tools/WebSearchTool/prompt.js +0 -17
  596. package/dist/tools/WebSearchTool/prompt.js.map +0 -7
  597. package/dist/tools/WebSearchTool/searchProviders.js +0 -48
  598. package/dist/tools/WebSearchTool/searchProviders.js.map +0 -7
  599. package/dist/tools/lsTool/lsTool.js +0 -201
  600. package/dist/tools/lsTool/lsTool.js.map +0 -7
  601. package/dist/tools/lsTool/prompt.js +0 -5
  602. package/dist/tools/lsTool/prompt.js.map +0 -7
  603. package/dist/tools.js +0 -64
  604. package/dist/tools.js.map +0 -7
  605. package/dist/types/PermissionMode.js +0 -82
  606. package/dist/types/PermissionMode.js.map +0 -7
  607. package/dist/types/RequestContext.js +0 -47
  608. package/dist/types/RequestContext.js.map +0 -7
  609. package/dist/types/common.d.js +0 -1
  610. package/dist/types/conversation.js +0 -1
  611. package/dist/types/logs.js +0 -1
  612. package/dist/types/modelCapabilities.js +0 -1
  613. package/dist/types/notebook.js +0 -1
  614. package/dist/utils/Cursor.js +0 -313
  615. package/dist/utils/Cursor.js.map +0 -7
  616. package/dist/utils/PersistentShell.js +0 -382
  617. package/dist/utils/PersistentShell.js.map +0 -7
  618. package/dist/utils/advancedFuzzyMatcher.js +0 -206
  619. package/dist/utils/advancedFuzzyMatcher.js.map +0 -7
  620. package/dist/utils/agentLoader.js +0 -199
  621. package/dist/utils/agentLoader.js.map +0 -7
  622. package/dist/utils/agentStorage.js +0 -59
  623. package/dist/utils/agentStorage.js.map +0 -7
  624. package/dist/utils/array.js +0 -7
  625. package/dist/utils/array.js.map +0 -7
  626. package/dist/utils/ask.js +0 -77
  627. package/dist/utils/ask.js.map +0 -7
  628. package/dist/utils/auth.js +0 -11
  629. package/dist/utils/auth.js.map +0 -7
  630. package/dist/utils/autoCompactCore.js +0 -149
  631. package/dist/utils/autoCompactCore.js.map +0 -7
  632. package/dist/utils/autoUpdater.js.map +0 -7
  633. package/dist/utils/betas.js +0 -21
  634. package/dist/utils/betas.js.map +0 -7
  635. package/dist/utils/browser.js +0 -15
  636. package/dist/utils/browser.js.map +0 -7
  637. package/dist/utils/cleanup.js +0 -54
  638. package/dist/utils/cleanup.js.map +0 -7
  639. package/dist/utils/commands.js +0 -207
  640. package/dist/utils/commands.js.map +0 -7
  641. package/dist/utils/commonUnixCommands.js +0 -687
  642. package/dist/utils/commonUnixCommands.js.map +0 -7
  643. package/dist/utils/config.js.map +0 -7
  644. package/dist/utils/conversationRecovery.js +0 -35
  645. package/dist/utils/conversationRecovery.js.map +0 -7
  646. package/dist/utils/debugLogger.js.map +0 -7
  647. package/dist/utils/diff.js +0 -32
  648. package/dist/utils/diff.js.map +0 -7
  649. package/dist/utils/env.js +0 -44
  650. package/dist/utils/env.js.map +0 -7
  651. package/dist/utils/errors.js +0 -23
  652. package/dist/utils/errors.js.map +0 -7
  653. package/dist/utils/exampleCommands.js +0 -80
  654. package/dist/utils/exampleCommands.js.map +0 -7
  655. package/dist/utils/execFileNoThrow.js +0 -44
  656. package/dist/utils/execFileNoThrow.js.map +0 -7
  657. package/dist/utils/expertChatStorage.js +0 -78
  658. package/dist/utils/expertChatStorage.js.map +0 -7
  659. package/dist/utils/file.js +0 -282
  660. package/dist/utils/file.js.map +0 -7
  661. package/dist/utils/fileRecoveryCore.js +0 -41
  662. package/dist/utils/fileRecoveryCore.js.map +0 -7
  663. package/dist/utils/format.js +0 -41
  664. package/dist/utils/format.js.map +0 -7
  665. package/dist/utils/fuzzyMatcher.js +0 -252
  666. package/dist/utils/fuzzyMatcher.js.map +0 -7
  667. package/dist/utils/generators.js +0 -46
  668. package/dist/utils/generators.js.map +0 -7
  669. package/dist/utils/git.js +0 -83
  670. package/dist/utils/git.js.map +0 -7
  671. package/dist/utils/globalLogger.js +0 -54
  672. package/dist/utils/globalLogger.js.map +0 -7
  673. package/dist/utils/http.js +0 -7
  674. package/dist/utils/http.js.map +0 -7
  675. package/dist/utils/imagePaste.js +0 -29
  676. package/dist/utils/imagePaste.js.map +0 -7
  677. package/dist/utils/json.js +0 -16
  678. package/dist/utils/json.js.map +0 -7
  679. package/dist/utils/log.js +0 -298
  680. package/dist/utils/log.js.map +0 -7
  681. package/dist/utils/markdown.js +0 -187
  682. package/dist/utils/markdown.js.map +0 -7
  683. package/dist/utils/messageContextManager.js +0 -195
  684. package/dist/utils/messageContextManager.js.map +0 -7
  685. package/dist/utils/messages.js +0 -633
  686. package/dist/utils/messages.js.map +0 -7
  687. package/dist/utils/model.js.map +0 -7
  688. package/dist/utils/permissions/filesystem.js +0 -80
  689. package/dist/utils/permissions/filesystem.js.map +0 -7
  690. package/dist/utils/responseState.js +0 -20
  691. package/dist/utils/responseState.js.map +0 -7
  692. package/dist/utils/ripgrep.js +0 -131
  693. package/dist/utils/ripgrep.js.map +0 -7
  694. package/dist/utils/secureFile.js +0 -483
  695. package/dist/utils/secureFile.js.map +0 -7
  696. package/dist/utils/sessionState.js +0 -31
  697. package/dist/utils/sessionState.js.map +0 -7
  698. package/dist/utils/state.js +0 -24
  699. package/dist/utils/state.js.map +0 -7
  700. package/dist/utils/style.js +0 -31
  701. package/dist/utils/style.js.map +0 -7
  702. package/dist/utils/terminal.js +0 -43
  703. package/dist/utils/terminal.js.map +0 -7
  704. package/dist/utils/theme.js.map +0 -7
  705. package/dist/utils/thinking.js +0 -103
  706. package/dist/utils/thinking.js.map +0 -7
  707. package/dist/utils/todoStorage.js +0 -291
  708. package/dist/utils/todoStorage.js.map +0 -7
  709. package/dist/utils/tokens.js +0 -30
  710. package/dist/utils/tokens.js.map +0 -7
  711. package/dist/utils/toolExecutionController.js +0 -109
  712. package/dist/utils/toolExecutionController.js.map +0 -7
  713. package/dist/utils/unaryLogging.js +0 -14
  714. package/dist/utils/unaryLogging.js.map +0 -7
  715. package/dist/utils/user.js +0 -40
  716. package/dist/utils/user.js.map +0 -7
  717. package/dist/utils/validate.js +0 -132
  718. package/dist/utils/validate.js.map +0 -7
  719. /package/dist/{Tool.js.map → REPL-CW7AYLVL.js.map} +0 -0
  720. /package/dist/{components/CustomSelect/theme.js.map → autoUpdater-ITPIHCOI.js.map} +0 -0
  721. /package/dist/{types/common.d.js.map → chunk-JC6NCUG5.js.map} +0 -0
  722. /package/dist/{types/conversation.js.map → commands-2BF2CJ3A.js.map} +0 -0
  723. /package/dist/{types/logs.js.map → config-RUSD6G5Y.js.map} +0 -0
  724. /package/dist/{types/modelCapabilities.js.map → context-6FXPETYH.js.map} +0 -0
  725. /package/dist/{types/notebook.js.map → costTracker-6SL26FDB.js.map} +0 -0
@@ -1,1107 +0,0 @@
1
- #!/usr/bin/env -S node --no-warnings=ExperimentalWarning --enable-source-maps
2
- import { fileURLToPath } from "node:url";
3
- import { dirname, join } from "node:path";
4
- import { existsSync } from "node:fs";
5
- import { initSentry } from "../services/sentry.js";
6
- import { PRODUCT_COMMAND, PRODUCT_NAME } from "../constants/product.js";
7
- initSentry();
8
- try {
9
- if (!process.env.YOGA_WASM_PATH) {
10
- const __filename = fileURLToPath(import.meta.url);
11
- const __dirname = dirname(__filename);
12
- const devCandidate = join(__dirname, "../../yoga.wasm");
13
- const distCandidate = join(__dirname, "./yoga.wasm");
14
- const resolved = existsSync(distCandidate) ? distCandidate : existsSync(devCandidate) ? devCandidate : void 0;
15
- if (resolved) {
16
- process.env.YOGA_WASM_PATH = resolved;
17
- }
18
- }
19
- } catch {
20
- }
21
- import * as dontcare from "@anthropic-ai/sdk/shims/node";
22
- Object.keys(dontcare);
23
- import React from "react";
24
- import { ReadStream } from "tty";
25
- import { openSync } from "fs";
26
- import { addToHistory } from "../history.js";
27
- import { getContext, setContext, removeContext } from "../context.js";
28
- import { Command } from "@commander-js/extra-typings";
29
- import { ask } from "../utils/ask.js";
30
- import { hasPermissionsToUseTool } from "../permissions.js";
31
- import { getTools } from "../tools.js";
32
- import {
33
- getGlobalConfig,
34
- getCurrentProjectConfig,
35
- saveGlobalConfig,
36
- saveCurrentProjectConfig,
37
- setConfigForCLI,
38
- deleteConfigForCLI,
39
- getConfigForCLI,
40
- listConfigForCLI,
41
- enableConfigs,
42
- validateAndRepairAllGPT5Profiles
43
- } from "../utils/config.js";
44
- import { cwd } from "process";
45
- import { dateToFilename, logError, parseLogFilename } from "../utils/log.js";
46
- import { initDebugLogger } from "../utils/debugLogger.js";
47
- import { Onboarding } from "../components/Onboarding.js";
48
- import { Doctor } from "../screens/Doctor.js";
49
- import { TrustDialog } from "../components/TrustDialog.js";
50
- import { checkHasTrustDialogAccepted } from "../utils/config.js";
51
- import { isDefaultSlowAndCapableModel } from "../utils/model.js";
52
- import { LogList } from "../screens/LogList.js";
53
- import { ResumeConversation } from "../screens/ResumeConversation.js";
54
- import { startMCPServer } from "./mcp.js";
55
- import { getCwd, setCwd, setOriginalCwd } from "../utils/state.js";
56
- import { omit } from "lodash-es";
57
- import { getCommands } from "../commands.js";
58
- import { getNextAvailableLogForkNumber, loadLogList } from "../utils/log.js";
59
- import { loadMessagesFromLog } from "../utils/conversationRecovery.js";
60
- import { cleanupOldMessageFilesInBackground } from "../utils/cleanup.js";
61
- import {
62
- handleListApprovedTools,
63
- handleRemoveApprovedTool
64
- } from "../commands/approvedTools.js";
65
- import {
66
- addMcpServer,
67
- getMcpServer,
68
- listMCPServers,
69
- parseEnvVars,
70
- removeMcpServer,
71
- getClients,
72
- ensureConfigScope
73
- } from "../services/mcpClient.js";
74
- import { handleMcprcServerApprovals } from "../services/mcpServerApproval.js";
75
- import { logEvent } from "../services/statsig.js";
76
- import { cursorShow } from "ansi-escapes";
77
- import { getLatestVersion, assertMinVersion, getUpdateCommandSuggestions } from "../utils/autoUpdater.js";
78
- import { gt } from "semver";
79
- import { CACHE_PATHS } from "../utils/log.js";
80
- import { PersistentShell } from "../utils/PersistentShell.js";
81
- import { clearTerminal } from "../utils/terminal.js";
82
- import { showInvalidConfigDialog } from "../components/InvalidConfigDialog.js";
83
- import { ConfigParseError } from "../utils/errors.js";
84
- import { grantReadPermissionForOriginalDir } from "../utils/permissions/filesystem.js";
85
- import { MACRO } from "../constants/macros.js";
86
- function completeOnboarding() {
87
- const config = getGlobalConfig();
88
- saveGlobalConfig({
89
- ...config,
90
- hasCompletedOnboarding: true,
91
- lastOnboardingVersion: MACRO.VERSION
92
- });
93
- }
94
- async function showSetupScreens(safeMode, print) {
95
- if (process.env.NODE_ENV === "test") {
96
- return;
97
- }
98
- const config = getGlobalConfig();
99
- if (!config.theme || !config.hasCompletedOnboarding) {
100
- await clearTerminal();
101
- const { render } = await import("ink");
102
- await new Promise((resolve) => {
103
- render(
104
- /* @__PURE__ */ React.createElement(
105
- Onboarding,
106
- {
107
- onDone: async () => {
108
- completeOnboarding();
109
- await clearTerminal();
110
- resolve();
111
- }
112
- }
113
- ),
114
- {
115
- exitOnCtrlC: false
116
- }
117
- );
118
- });
119
- }
120
- if (!print && safeMode) {
121
- if (!checkHasTrustDialogAccepted()) {
122
- await new Promise((resolve) => {
123
- const onDone = () => {
124
- grantReadPermissionForOriginalDir();
125
- resolve();
126
- };
127
- (async () => {
128
- const { render } = await import("ink");
129
- render(/* @__PURE__ */ React.createElement(TrustDialog, { onDone }), {
130
- exitOnCtrlC: false
131
- });
132
- })();
133
- });
134
- }
135
- if (process.env.USER_TYPE === "ant") {
136
- await handleMcprcServerApprovals();
137
- }
138
- }
139
- }
140
- function logStartup() {
141
- const config = getGlobalConfig();
142
- saveGlobalConfig({
143
- ...config,
144
- numStartups: (config.numStartups ?? 0) + 1
145
- });
146
- }
147
- async function setup(cwd2, safeMode) {
148
- if (cwd2 !== process.cwd()) {
149
- setOriginalCwd(cwd2);
150
- }
151
- await setCwd(cwd2);
152
- grantReadPermissionForOriginalDir();
153
- let agentLoader;
154
- try {
155
- agentLoader = await import("../utils/agentLoader.js");
156
- } catch {
157
- agentLoader = await import("../utils/agentLoader.js");
158
- }
159
- const { startAgentWatcher, clearAgentCache } = agentLoader;
160
- await startAgentWatcher(() => {
161
- console.log("\u2705 Agent configurations hot-reloaded");
162
- });
163
- if (safeMode) {
164
- if (process.platform !== "win32" && typeof process.getuid === "function" && process.getuid() === 0) {
165
- console.error(
166
- `--safe mode cannot be used with root/sudo privileges for security reasons`
167
- );
168
- process.exit(1);
169
- }
170
- }
171
- if (process.env.NODE_ENV === "test") {
172
- return;
173
- }
174
- cleanupOldMessageFilesInBackground();
175
- getContext();
176
- const globalConfig = getGlobalConfig();
177
- if (globalConfig.iterm2KeyBindingInstalled === true && globalConfig.shiftEnterKeyBindingInstalled !== true) {
178
- const updatedConfig = {
179
- ...globalConfig,
180
- shiftEnterKeyBindingInstalled: true
181
- };
182
- delete updatedConfig.iterm2KeyBindingInstalled;
183
- saveGlobalConfig(updatedConfig);
184
- }
185
- const projectConfig = getCurrentProjectConfig();
186
- if (projectConfig.lastCost !== void 0 && projectConfig.lastDuration !== void 0) {
187
- logEvent("tengu_exit", {
188
- last_session_cost: String(projectConfig.lastCost),
189
- last_session_api_duration: String(projectConfig.lastAPIDuration),
190
- last_session_duration: String(projectConfig.lastDuration),
191
- last_session_id: projectConfig.lastSessionId
192
- });
193
- }
194
- }
195
- async function main() {
196
- initDebugLogger();
197
- try {
198
- enableConfigs();
199
- try {
200
- const repairResult = validateAndRepairAllGPT5Profiles();
201
- if (repairResult.repaired > 0) {
202
- console.log(`\u{1F527} Auto-repaired ${repairResult.repaired} GPT-5 model configurations`);
203
- }
204
- } catch (repairError) {
205
- console.warn("\u26A0\uFE0F GPT-5 configuration validation failed:", repairError);
206
- }
207
- } catch (error) {
208
- if (error instanceof ConfigParseError) {
209
- await showInvalidConfigDialog({ error });
210
- return;
211
- }
212
- }
213
- let inputPrompt = "";
214
- let renderContext = {
215
- exitOnCtrlC: false,
216
- onFlicker() {
217
- logEvent("tengu_flicker", {});
218
- }
219
- };
220
- if (!process.stdin.isTTY && !process.env.CI && // Input hijacking breaks MCP.
221
- !process.argv.includes("mcp")) {
222
- inputPrompt = await stdin();
223
- if (process.platform !== "win32") {
224
- try {
225
- const ttyFd = openSync("/dev/tty", "r");
226
- renderContext = { ...renderContext, stdin: new ReadStream(ttyFd) };
227
- } catch (err) {
228
- logError(`Could not open /dev/tty: ${err}`);
229
- }
230
- }
231
- }
232
- await parseArgs(inputPrompt, renderContext);
233
- }
234
- async function parseArgs(stdinContent, renderContext) {
235
- const program = new Command();
236
- const renderContextWithExitOnCtrlC = {
237
- ...renderContext,
238
- exitOnCtrlC: true
239
- };
240
- const commands = await getCommands();
241
- const commandList = commands.filter((cmd) => !cmd.isHidden).map((cmd) => `/${cmd.name} - ${cmd.description}`).join("\n");
242
- program.name(PRODUCT_COMMAND).description(
243
- `${PRODUCT_NAME} - starts an interactive session by default, use -p/--print for non-interactive output
244
-
245
- Slash commands available during an interactive session:
246
- ${commandList}`
247
- ).argument("[prompt]", "Your prompt", String).option("-c, --cwd <cwd>", "The current working directory", String, cwd()).option("-d, --debug", "Enable debug mode", () => true).option(
248
- "--debug-verbose",
249
- "Enable verbose debug terminal output",
250
- () => true
251
- ).option(
252
- "--verbose",
253
- "Override verbose mode setting from config",
254
- () => true
255
- ).option("-e, --enable-architect", "Enable the Architect tool", () => true).option(
256
- "-p, --print",
257
- "Print response and exit (useful for pipes)",
258
- () => true
259
- ).option(
260
- "--safe",
261
- "Enable strict permission checking mode (default is permissive)",
262
- () => true
263
- ).action(
264
- async (prompt, { cwd: cwd2, debug, verbose, enableArchitect, print, safe }) => {
265
- await showSetupScreens(safe, print);
266
- logEvent("tengu_init", {
267
- entrypoint: PRODUCT_COMMAND,
268
- hasInitialPrompt: Boolean(prompt).toString(),
269
- hasStdin: Boolean(stdinContent).toString(),
270
- enableArchitect: enableArchitect?.toString() ?? "false",
271
- verbose: verbose?.toString() ?? "false",
272
- debug: debug?.toString() ?? "false",
273
- print: print?.toString() ?? "false"
274
- });
275
- await setup(cwd2, safe);
276
- assertMinVersion();
277
- const [tools, mcpClients] = await Promise.all([
278
- getTools(
279
- enableArchitect ?? getCurrentProjectConfig().enableArchitectTool
280
- ),
281
- getClients()
282
- ]);
283
- const inputPrompt = [prompt, stdinContent].filter(Boolean).join("\n");
284
- if (print) {
285
- if (!inputPrompt) {
286
- console.error(
287
- "Error: Input must be provided either through stdin or as a prompt argument when using --print"
288
- );
289
- process.exit(1);
290
- }
291
- addToHistory(inputPrompt);
292
- const { resultText: response } = await ask({
293
- commands,
294
- hasPermissionsToUseTool,
295
- messageLogName: dateToFilename(/* @__PURE__ */ new Date()),
296
- prompt: inputPrompt,
297
- cwd: cwd2,
298
- tools,
299
- safeMode: safe
300
- });
301
- console.log(response);
302
- process.exit(0);
303
- } else {
304
- const isDefaultModel = await isDefaultSlowAndCapableModel();
305
- const updateInfo = await (async () => {
306
- try {
307
- const latest = await getLatestVersion();
308
- if (latest && gt(latest, MACRO.VERSION)) {
309
- const cmds = await getUpdateCommandSuggestions();
310
- return { version: latest, commands: cmds };
311
- }
312
- } catch {
313
- }
314
- return { version: null, commands: null };
315
- })();
316
- {
317
- const { render } = await import("ink");
318
- const { REPL } = await import("../screens/REPL.js");
319
- render(
320
- /* @__PURE__ */ React.createElement(
321
- REPL,
322
- {
323
- commands,
324
- debug,
325
- initialPrompt: inputPrompt,
326
- messageLogName: dateToFilename(/* @__PURE__ */ new Date()),
327
- shouldShowPromptInput: true,
328
- verbose,
329
- tools,
330
- safeMode: safe,
331
- mcpClients,
332
- isDefaultModel,
333
- initialUpdateVersion: updateInfo.version,
334
- initialUpdateCommands: updateInfo.commands
335
- }
336
- ),
337
- renderContext
338
- );
339
- }
340
- }
341
- }
342
- ).version(MACRO.VERSION, "-v, --version");
343
- const config = program.command("config").description(
344
- `Manage configuration (eg. ${PRODUCT_COMMAND} config set -g theme dark)`
345
- );
346
- config.command("get <key>").description("Get a config value").option("-c, --cwd <cwd>", "The current working directory", String, cwd()).option("-g, --global", "Use global config").action(async (key, { cwd: cwd2, global }) => {
347
- await setup(cwd2, false);
348
- console.log(getConfigForCLI(key, global ?? false));
349
- process.exit(0);
350
- });
351
- config.command("set <key> <value>").description("Set a config value").option("-c, --cwd <cwd>", "The current working directory", String, cwd()).option("-g, --global", "Use global config").action(async (key, value, { cwd: cwd2, global }) => {
352
- await setup(cwd2, false);
353
- setConfigForCLI(key, value, global ?? false);
354
- console.log(`Set ${key} to ${value}`);
355
- process.exit(0);
356
- });
357
- config.command("remove <key>").description("Remove a config value").option("-c, --cwd <cwd>", "The current working directory", String, cwd()).option("-g, --global", "Use global config").action(async (key, { cwd: cwd2, global }) => {
358
- await setup(cwd2, false);
359
- deleteConfigForCLI(key, global ?? false);
360
- console.log(`Removed ${key}`);
361
- process.exit(0);
362
- });
363
- config.command("list").description("List all config values").option("-c, --cwd <cwd>", "The current working directory", String, cwd()).option("-g, --global", "Use global config", false).action(async ({ cwd: cwd2, global }) => {
364
- await setup(cwd2, false);
365
- console.log(
366
- JSON.stringify(global ? listConfigForCLI(true) : listConfigForCLI(false), null, 2)
367
- );
368
- process.exit(0);
369
- });
370
- const allowedTools = program.command("approved-tools").description("Manage approved tools");
371
- allowedTools.command("list").description("List all approved tools").action(async () => {
372
- const result = handleListApprovedTools(getCwd());
373
- console.log(result);
374
- process.exit(0);
375
- });
376
- allowedTools.command("remove <tool>").description("Remove a tool from the list of approved tools").action(async (tool) => {
377
- const result = handleRemoveApprovedTool(tool);
378
- logEvent("tengu_approved_tool_remove", {
379
- tool,
380
- success: String(result.success)
381
- });
382
- console.log(result.message);
383
- process.exit(result.success ? 0 : 1);
384
- });
385
- const mcp = program.command("mcp").description("Configure and manage MCP servers");
386
- mcp.command("serve").description(`Start the ${PRODUCT_NAME} MCP server`).action(async () => {
387
- const providedCwd = program.opts().cwd ?? cwd();
388
- logEvent("tengu_mcp_start", { providedCwd });
389
- if (!existsSync(providedCwd)) {
390
- console.error(`Error: Directory ${providedCwd} does not exist`);
391
- process.exit(1);
392
- }
393
- try {
394
- await setup(providedCwd, false);
395
- await startMCPServer(providedCwd);
396
- } catch (error) {
397
- console.error("Error: Failed to start MCP server:", error);
398
- process.exit(1);
399
- }
400
- });
401
- mcp.command("add-sse <name> <url>").description("Add an SSE server").option(
402
- "-s, --scope <scope>",
403
- "Configuration scope (project or global)",
404
- "project"
405
- ).action(async (name, url, options) => {
406
- try {
407
- const scope = ensureConfigScope(options.scope);
408
- logEvent("tengu_mcp_add", { name, type: "sse", scope });
409
- addMcpServer(name, { type: "sse", url }, scope);
410
- console.log(
411
- `Added SSE MCP server ${name} with URL ${url} to ${scope} config`
412
- );
413
- process.exit(0);
414
- } catch (error) {
415
- console.error(error.message);
416
- process.exit(1);
417
- }
418
- });
419
- mcp.command("add [name] [commandOrUrl] [args...]").description("Add a server (run without arguments for interactive wizard)").option(
420
- "-s, --scope <scope>",
421
- "Configuration scope (project or global)",
422
- "project"
423
- ).option(
424
- "-e, --env <env...>",
425
- "Set environment variables (e.g. -e KEY=value)"
426
- ).action(async (name, commandOrUrl, args, options) => {
427
- try {
428
- if (!name) {
429
- console.log("Interactive wizard mode: Enter the server details");
430
- const { createInterface } = await import("readline");
431
- const rl = createInterface({
432
- input: process.stdin,
433
- output: process.stdout
434
- });
435
- const question = (query) => new Promise((resolve) => rl.question(query, resolve));
436
- const serverName = await question("Server name: ");
437
- if (!serverName) {
438
- console.error("Error: Server name is required");
439
- rl.close();
440
- process.exit(1);
441
- }
442
- const serverType = await question(
443
- "Server type (stdio or sse) [stdio]: "
444
- );
445
- const type = serverType && ["stdio", "sse"].includes(serverType) ? serverType : "stdio";
446
- const prompt = type === "stdio" ? "Command: " : "URL: ";
447
- const commandOrUrlValue = await question(prompt);
448
- if (!commandOrUrlValue) {
449
- console.error(
450
- `Error: ${type === "stdio" ? "Command" : "URL"} is required`
451
- );
452
- rl.close();
453
- process.exit(1);
454
- }
455
- let serverArgs = [];
456
- let serverEnv = {};
457
- if (type === "stdio") {
458
- const argsStr = await question(
459
- "Command arguments (space-separated): "
460
- );
461
- serverArgs = argsStr ? argsStr.split(" ").filter(Boolean) : [];
462
- const envStr = await question(
463
- "Environment variables (format: KEY1=value1,KEY2=value2): "
464
- );
465
- if (envStr) {
466
- const envPairs = envStr.split(",").map((pair) => pair.trim());
467
- serverEnv = parseEnvVars(envPairs.map((pair) => pair));
468
- }
469
- }
470
- const scopeStr = await question(
471
- "Configuration scope (project or global) [project]: "
472
- );
473
- const serverScope = ensureConfigScope(scopeStr || "project");
474
- rl.close();
475
- if (type === "sse") {
476
- logEvent("tengu_mcp_add", {
477
- name: serverName,
478
- type: "sse",
479
- scope: serverScope
480
- });
481
- addMcpServer(
482
- serverName,
483
- { type: "sse", url: commandOrUrlValue },
484
- serverScope
485
- );
486
- console.log(
487
- `Added SSE MCP server ${serverName} with URL ${commandOrUrlValue} to ${serverScope} config`
488
- );
489
- } else {
490
- logEvent("tengu_mcp_add", {
491
- name: serverName,
492
- type: "stdio",
493
- scope: serverScope
494
- });
495
- addMcpServer(
496
- serverName,
497
- {
498
- type: "stdio",
499
- command: commandOrUrlValue,
500
- args: serverArgs,
501
- env: serverEnv
502
- },
503
- serverScope
504
- );
505
- console.log(
506
- `Added stdio MCP server ${serverName} with command: ${commandOrUrlValue} ${serverArgs.join(" ")} to ${serverScope} config`
507
- );
508
- }
509
- } else if (name && commandOrUrl) {
510
- const scope = ensureConfigScope(options.scope);
511
- if (commandOrUrl.match(/^https?:\/\//)) {
512
- logEvent("tengu_mcp_add", { name, type: "sse", scope });
513
- addMcpServer(name, { type: "sse", url: commandOrUrl }, scope);
514
- console.log(
515
- `Added SSE MCP server ${name} with URL ${commandOrUrl} to ${scope} config`
516
- );
517
- } else {
518
- logEvent("tengu_mcp_add", { name, type: "stdio", scope });
519
- const env2 = parseEnvVars(options.env);
520
- addMcpServer(
521
- name,
522
- { type: "stdio", command: commandOrUrl, args: args || [], env: env2 },
523
- scope
524
- );
525
- console.log(
526
- `Added stdio MCP server ${name} with command: ${commandOrUrl} ${(args || []).join(" ")} to ${scope} config`
527
- );
528
- }
529
- } else {
530
- console.error(
531
- "Error: Missing required arguments. Either provide no arguments for interactive mode or specify name and command/URL."
532
- );
533
- process.exit(1);
534
- }
535
- process.exit(0);
536
- } catch (error) {
537
- console.error(error.message);
538
- process.exit(1);
539
- }
540
- });
541
- mcp.command("remove <name>").description("Remove an MCP server").option(
542
- "-s, --scope <scope>",
543
- "Configuration scope (project, global, or mcprc)",
544
- "project"
545
- ).action(async (name, options) => {
546
- try {
547
- const scope = ensureConfigScope(options.scope);
548
- logEvent("tengu_mcp_delete", { name, scope });
549
- removeMcpServer(name, scope);
550
- console.log(`Removed MCP server ${name} from ${scope} config`);
551
- process.exit(0);
552
- } catch (error) {
553
- console.error(error.message);
554
- process.exit(1);
555
- }
556
- });
557
- mcp.command("list").description("List configured MCP servers").action(() => {
558
- logEvent("tengu_mcp_list", {});
559
- const servers = listMCPServers();
560
- if (Object.keys(servers).length === 0) {
561
- console.log(
562
- `No MCP servers configured. Use \`${PRODUCT_COMMAND} mcp add\` to add a server.`
563
- );
564
- } else {
565
- for (const [name, server] of Object.entries(servers)) {
566
- if (server.type === "sse") {
567
- console.log(`${name}: ${server.url} (SSE)`);
568
- } else {
569
- console.log(`${name}: ${server.command} ${server.args.join(" ")}`);
570
- }
571
- }
572
- }
573
- process.exit(0);
574
- });
575
- mcp.command("add-json <name> <json>").description("Add an MCP server (stdio or SSE) with a JSON string").option(
576
- "-s, --scope <scope>",
577
- "Configuration scope (project or global)",
578
- "project"
579
- ).action(async (name, jsonStr, options) => {
580
- try {
581
- const scope = ensureConfigScope(options.scope);
582
- let serverConfig;
583
- try {
584
- serverConfig = JSON.parse(jsonStr);
585
- } catch (e) {
586
- console.error("Error: Invalid JSON string");
587
- process.exit(1);
588
- }
589
- if (!serverConfig.type || !["stdio", "sse"].includes(serverConfig.type)) {
590
- console.error('Error: Server type must be "stdio" or "sse"');
591
- process.exit(1);
592
- }
593
- if (serverConfig.type === "sse" && !serverConfig.url) {
594
- console.error("Error: SSE server must have a URL");
595
- process.exit(1);
596
- }
597
- if (serverConfig.type === "stdio" && !serverConfig.command) {
598
- console.error("Error: stdio server must have a command");
599
- process.exit(1);
600
- }
601
- logEvent("tengu_mcp_add_json", { name, type: serverConfig.type, scope });
602
- addMcpServer(name, serverConfig, scope);
603
- if (serverConfig.type === "sse") {
604
- console.log(
605
- `Added SSE MCP server ${name} with URL ${serverConfig.url} to ${scope} config`
606
- );
607
- } else {
608
- console.log(
609
- `Added stdio MCP server ${name} with command: ${serverConfig.command} ${(serverConfig.args || []).join(" ")} to ${scope} config`
610
- );
611
- }
612
- process.exit(0);
613
- } catch (error) {
614
- console.error(error.message);
615
- process.exit(1);
616
- }
617
- });
618
- mcp.command("get <name>").description("Get details about an MCP server").action((name) => {
619
- logEvent("tengu_mcp_get", { name });
620
- const server = getMcpServer(name);
621
- if (!server) {
622
- console.error(`No MCP server found with name: ${name}`);
623
- process.exit(1);
624
- }
625
- console.log(`${name}:`);
626
- console.log(` Scope: ${server.scope}`);
627
- if (server.type === "sse") {
628
- console.log(` Type: sse`);
629
- console.log(` URL: ${server.url}`);
630
- } else {
631
- console.log(` Type: stdio`);
632
- console.log(` Command: ${server.command}`);
633
- console.log(` Args: ${server.args.join(" ")}`);
634
- if (server.env) {
635
- console.log(" Environment:");
636
- for (const [key, value] of Object.entries(server.env)) {
637
- console.log(` ${key}=${value}`);
638
- }
639
- }
640
- }
641
- process.exit(0);
642
- });
643
- mcp.command("add-from-claude-desktop").description(
644
- "Import MCP servers from Claude Desktop (Mac, Windows and WSL)"
645
- ).option(
646
- "-s, --scope <scope>",
647
- "Configuration scope (project or global)",
648
- "project"
649
- ).action(async (options) => {
650
- try {
651
- const scope = ensureConfigScope(options.scope);
652
- const platform = process.platform;
653
- const { existsSync: existsSync2, readFileSync } = await import("fs");
654
- const { join: join2 } = await import("path");
655
- const { exec } = await import("child_process");
656
- const isWSL = platform === "linux" && existsSync2("/proc/version") && readFileSync("/proc/version", "utf-8").toLowerCase().includes("microsoft");
657
- if (platform !== "darwin" && platform !== "win32" && !isWSL) {
658
- console.error(
659
- "Error: This command is only supported on macOS, Windows, and WSL"
660
- );
661
- process.exit(1);
662
- }
663
- let configPath;
664
- if (platform === "darwin") {
665
- configPath = join2(
666
- process.env.HOME || "~",
667
- "Library/Application Support/Claude/claude_desktop_config.json"
668
- );
669
- } else if (platform === "win32") {
670
- configPath = join2(
671
- process.env.APPDATA || "",
672
- "Claude/claude_desktop_config.json"
673
- );
674
- } else if (isWSL) {
675
- const whoamiCommand = await new Promise((resolve, reject) => {
676
- exec(
677
- 'powershell.exe -Command "whoami"',
678
- (err, stdout) => {
679
- if (err) reject(err);
680
- else resolve(stdout.trim().split("\\").pop() || "");
681
- }
682
- );
683
- });
684
- configPath = `/mnt/c/Users/${whoamiCommand}/AppData/Roaming/Claude/claude_desktop_config.json`;
685
- }
686
- if (!existsSync2(configPath)) {
687
- console.error(
688
- `Error: Claude Desktop config file not found at ${configPath}`
689
- );
690
- process.exit(1);
691
- }
692
- let config2;
693
- try {
694
- const configContent = readFileSync(configPath, "utf-8");
695
- config2 = JSON.parse(configContent);
696
- } catch (err) {
697
- console.error(`Error reading config file: ${err}`);
698
- process.exit(1);
699
- }
700
- const mcpServers = config2.mcpServers || {};
701
- const serverNames = Object.keys(mcpServers);
702
- const numServers = serverNames.length;
703
- if (numServers === 0) {
704
- console.log("No MCP servers found in Claude Desktop config");
705
- process.exit(0);
706
- }
707
- const serversInfo = serverNames.map((name) => {
708
- const server = mcpServers[name];
709
- let description = "";
710
- if (server.type === "sse") {
711
- description = `SSE: ${server.url}`;
712
- } else {
713
- description = `stdio: ${server.command} ${(server.args || []).join(" ")}`;
714
- }
715
- return { name, description, server };
716
- });
717
- const ink = await import("ink");
718
- const reactModule = await import("react");
719
- const inkjsui = await import("@inkjs/ui");
720
- const utilsTheme = await import("../utils/theme.js");
721
- const { render } = ink;
722
- const React2 = reactModule;
723
- const { MultiSelect } = inkjsui;
724
- const { Box, Text } = ink;
725
- const { getTheme } = utilsTheme;
726
- await new Promise((resolve) => {
727
- function ClaudeDesktopImport() {
728
- const { useState } = reactModule;
729
- const [isFinished, setIsFinished] = useState(false);
730
- const [importResults, setImportResults] = useState([]);
731
- const [isImporting, setIsImporting] = useState(false);
732
- const theme = getTheme();
733
- const importServers = async (selectedServers) => {
734
- setIsImporting(true);
735
- const results = [];
736
- for (const name of selectedServers) {
737
- try {
738
- const server = mcpServers[name];
739
- const existingServer = getMcpServer(name);
740
- if (existingServer) {
741
- continue;
742
- }
743
- addMcpServer(name, server, scope);
744
- results.push({ name, success: true });
745
- } catch (err) {
746
- results.push({ name, success: false });
747
- }
748
- }
749
- setImportResults(results);
750
- setIsImporting(false);
751
- setIsFinished(true);
752
- setTimeout(() => {
753
- resolve();
754
- }, 1e3);
755
- };
756
- const handleConfirm = async (selectedServers) => {
757
- const existingServers = selectedServers.filter(
758
- (name) => getMcpServer(name)
759
- );
760
- if (existingServers.length > 0) {
761
- const results = [];
762
- const newServers = selectedServers.filter(
763
- (name) => !getMcpServer(name)
764
- );
765
- for (const name of newServers) {
766
- try {
767
- const server = mcpServers[name];
768
- addMcpServer(name, server, scope);
769
- results.push({ name, success: true });
770
- } catch (err) {
771
- results.push({ name, success: false });
772
- }
773
- }
774
- for (const name of existingServers) {
775
- try {
776
- const server = mcpServers[name];
777
- addMcpServer(name, server, scope);
778
- results.push({ name, success: true });
779
- } catch (err) {
780
- results.push({ name, success: false });
781
- }
782
- }
783
- setImportResults(results);
784
- setIsImporting(false);
785
- setIsFinished(true);
786
- setTimeout(() => {
787
- resolve();
788
- }, 1e3);
789
- } else {
790
- await importServers(selectedServers);
791
- }
792
- };
793
- return /* @__PURE__ */ React2.createElement(Box, { flexDirection: "column", padding: 1 }, /* @__PURE__ */ React2.createElement(
794
- Box,
795
- {
796
- flexDirection: "column",
797
- borderStyle: "round",
798
- borderColor: theme.kode,
799
- padding: 1,
800
- width: "100%"
801
- },
802
- /* @__PURE__ */ React2.createElement(Text, { bold: true, color: theme.kode }, "Import MCP Servers from Claude Desktop"),
803
- /* @__PURE__ */ React2.createElement(Box, { marginY: 1 }, /* @__PURE__ */ React2.createElement(Text, null, "Found ", numServers, " MCP servers in Claude Desktop.")),
804
- /* @__PURE__ */ React2.createElement(Text, null, "Please select the servers you want to import:"),
805
- /* @__PURE__ */ React2.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React2.createElement(
806
- MultiSelect,
807
- {
808
- options: serverNames.map((name) => ({
809
- label: name,
810
- value: name
811
- })),
812
- defaultValue: serverNames,
813
- onSubmit: handleConfirm
814
- }
815
- ))
816
- ), /* @__PURE__ */ React2.createElement(Box, { marginTop: 0, marginLeft: 3 }, /* @__PURE__ */ React2.createElement(Text, { dimColor: true }, "Space to select \xB7 Enter to confirm \xB7 Esc to cancel")), isFinished && /* @__PURE__ */ React2.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React2.createElement(Text, { color: theme.success }, "Successfully imported", " ", importResults.filter((r) => r.success).length, " MCP server to local config.")));
817
- }
818
- const { unmount } = render(/* @__PURE__ */ React2.createElement(ClaudeDesktopImport, null));
819
- setTimeout(() => {
820
- unmount();
821
- resolve();
822
- }, 3e4);
823
- });
824
- process.exit(0);
825
- } catch (error) {
826
- console.error(`Error: ${error.message}`);
827
- process.exit(1);
828
- }
829
- });
830
- const resetMcpChoices = () => {
831
- const config2 = getCurrentProjectConfig();
832
- saveCurrentProjectConfig({
833
- ...config2,
834
- approvedMcprcServers: [],
835
- rejectedMcprcServers: []
836
- });
837
- console.log("All .mcprc server approvals and rejections have been reset.");
838
- console.log(
839
- `You will be prompted for approval next time you start ${PRODUCT_NAME}.`
840
- );
841
- process.exit(0);
842
- };
843
- mcp.command("reset-project-choices").description(
844
- "Reset all approved and rejected project-scoped (.mcp.json) servers within this project"
845
- ).action(() => {
846
- logEvent("tengu_mcp_reset_project_choices", {});
847
- resetMcpChoices();
848
- });
849
- if (process.env.USER_TYPE === "ant") {
850
- mcp.command("reset-mcprc-choices").description(
851
- "Reset all approved and rejected .mcprc servers for this project"
852
- ).action(() => {
853
- logEvent("tengu_mcp_reset_mcprc_choices", {});
854
- resetMcpChoices();
855
- });
856
- }
857
- program.command("doctor").description(`Check the health of your ${PRODUCT_NAME} installation`).action(async () => {
858
- logEvent("tengu_doctor_command", {});
859
- await new Promise((resolve) => {
860
- ;
861
- (async () => {
862
- const { render } = await import("ink");
863
- render(/* @__PURE__ */ React.createElement(Doctor, { onDone: () => resolve(), doctorMode: true }));
864
- })();
865
- });
866
- process.exit(0);
867
- });
868
- program.command("update").description("Show manual upgrade commands (no auto-install)").action(async () => {
869
- logEvent("tengu_update_check", {});
870
- console.log(`Current version: ${MACRO.VERSION}`);
871
- console.log("Checking for updates...");
872
- const latestVersion = await getLatestVersion();
873
- if (!latestVersion) {
874
- console.error("Failed to check for updates");
875
- process.exit(1);
876
- }
877
- if (latestVersion === MACRO.VERSION) {
878
- console.log(`${PRODUCT_NAME} is up to date`);
879
- process.exit(0);
880
- }
881
- console.log(`New version available: ${latestVersion}`);
882
- const { getUpdateCommandSuggestions: getUpdateCommandSuggestions2 } = await import("../utils/autoUpdater.js");
883
- const cmds = await getUpdateCommandSuggestions2();
884
- console.log("\nRun one of the following commands to update:");
885
- for (const c of cmds) console.log(` ${c}`);
886
- if (process.platform !== "win32") {
887
- console.log('\nNote: you may need to prefix with "sudo" on macOS/Linux.');
888
- }
889
- process.exit(0);
890
- });
891
- program.command("log").description("Manage conversation logs.").argument(
892
- "[number]",
893
- "A number (0, 1, 2, etc.) to display a specific log",
894
- parseInt
895
- ).option("-c, --cwd <cwd>", "The current working directory", String, cwd()).action(async (number, { cwd: cwd2 }) => {
896
- await setup(cwd2, false);
897
- logEvent("tengu_view_logs", { number: number?.toString() ?? "" });
898
- const context2 = {};
899
- (async () => {
900
- const { render } = await import("ink");
901
- const { unmount } = render(
902
- /* @__PURE__ */ React.createElement(LogList, { context: context2, type: "messages", logNumber: number }),
903
- renderContextWithExitOnCtrlC
904
- );
905
- context2.unmount = unmount;
906
- })();
907
- });
908
- program.command("resume").description(
909
- "Resume a previous conversation. Optionally provide a number (0, 1, 2, etc.) or file path to resume a specific conversation."
910
- ).argument(
911
- "[identifier]",
912
- "A number (0, 1, 2, etc.) or file path to resume a specific conversation"
913
- ).option("-c, --cwd <cwd>", "The current working directory", String, cwd()).option("-e, --enable-architect", "Enable the Architect tool", () => true).option("-v, --verbose", "Do not truncate message output", () => true).option(
914
- "--safe",
915
- "Enable strict permission checking mode (default is permissive)",
916
- () => true
917
- ).action(async (identifier, { cwd: cwd2, enableArchitect, safe, verbose }) => {
918
- await setup(cwd2, safe);
919
- assertMinVersion();
920
- const [tools, commands2, logs, mcpClients] = await Promise.all([
921
- getTools(
922
- enableArchitect ?? getCurrentProjectConfig().enableArchitectTool
923
- ),
924
- getCommands(),
925
- loadLogList(CACHE_PATHS.messages()),
926
- getClients()
927
- ]);
928
- if (identifier !== void 0) {
929
- const number = Math.abs(parseInt(identifier));
930
- const isNumber = !isNaN(number);
931
- let messages, date, forkNumber;
932
- try {
933
- if (isNumber) {
934
- logEvent("tengu_resume", { number: number.toString() });
935
- const log = logs[number];
936
- if (!log) {
937
- console.error("No conversation found at index", number);
938
- process.exit(1);
939
- }
940
- messages = await loadMessagesFromLog(log.fullPath, tools);
941
- ({ date, forkNumber } = log);
942
- } else {
943
- logEvent("tengu_resume", { filePath: identifier });
944
- if (!existsSync(identifier)) {
945
- console.error("File does not exist:", identifier);
946
- process.exit(1);
947
- }
948
- messages = await loadMessagesFromLog(identifier, tools);
949
- const pathSegments = identifier.split("/");
950
- const filename = pathSegments[pathSegments.length - 1] ?? "unknown";
951
- ({ date, forkNumber } = parseLogFilename(filename));
952
- }
953
- const fork = getNextAvailableLogForkNumber(date, forkNumber ?? 1, 0);
954
- const isDefaultModel = await isDefaultSlowAndCapableModel();
955
- {
956
- const { render } = await import("ink");
957
- const { REPL } = await import("../screens/REPL.js");
958
- render(
959
- /* @__PURE__ */ React.createElement(
960
- REPL,
961
- {
962
- initialPrompt: "",
963
- messageLogName: date,
964
- initialForkNumber: fork,
965
- shouldShowPromptInput: true,
966
- verbose,
967
- commands: commands2,
968
- tools,
969
- safeMode: safe,
970
- initialMessages: messages,
971
- mcpClients,
972
- isDefaultModel
973
- }
974
- ),
975
- { exitOnCtrlC: false }
976
- );
977
- }
978
- } catch (error) {
979
- logError(`Failed to load conversation: ${error}`);
980
- process.exit(1);
981
- }
982
- } else {
983
- const context2 = {};
984
- (async () => {
985
- const { render } = await import("ink");
986
- const { unmount } = render(
987
- /* @__PURE__ */ React.createElement(
988
- ResumeConversation,
989
- {
990
- context: context2,
991
- commands: commands2,
992
- logs,
993
- tools,
994
- verbose
995
- }
996
- ),
997
- renderContextWithExitOnCtrlC
998
- );
999
- context2.unmount = unmount;
1000
- })();
1001
- }
1002
- });
1003
- program.command("error").description(
1004
- "View error logs. Optionally provide a number (0, -1, -2, etc.) to display a specific log."
1005
- ).argument(
1006
- "[number]",
1007
- "A number (0, 1, 2, etc.) to display a specific log",
1008
- parseInt
1009
- ).option("-c, --cwd <cwd>", "The current working directory", String, cwd()).action(async (number, { cwd: cwd2 }) => {
1010
- await setup(cwd2, false);
1011
- logEvent("tengu_view_errors", { number: number?.toString() ?? "" });
1012
- const context2 = {};
1013
- (async () => {
1014
- const { render } = await import("ink");
1015
- const { unmount } = render(
1016
- /* @__PURE__ */ React.createElement(LogList, { context: context2, type: "errors", logNumber: number }),
1017
- renderContextWithExitOnCtrlC
1018
- );
1019
- context2.unmount = unmount;
1020
- })();
1021
- });
1022
- const context = program.command("context").description(
1023
- `Set static context (eg. ${PRODUCT_COMMAND} context add-file ./src/*.py)`
1024
- );
1025
- context.command("get <key>").option("-c, --cwd <cwd>", "The current working directory", String, cwd()).description("Get a value from context").action(async (key, { cwd: cwd2 }) => {
1026
- await setup(cwd2, false);
1027
- logEvent("tengu_context_get", { key });
1028
- const context2 = omit(
1029
- await getContext(),
1030
- "codeStyle",
1031
- "directoryStructure"
1032
- );
1033
- console.log(context2[key]);
1034
- process.exit(0);
1035
- });
1036
- context.command("set <key> <value>").description("Set a value in context").option("-c, --cwd <cwd>", "The current working directory", String, cwd()).action(async (key, value, { cwd: cwd2 }) => {
1037
- await setup(cwd2, false);
1038
- logEvent("tengu_context_set", { key });
1039
- setContext(key, value);
1040
- console.log(`Set context.${key} to "${value}"`);
1041
- process.exit(0);
1042
- });
1043
- context.command("list").description("List all context values").option("-c, --cwd <cwd>", "The current working directory", String, cwd()).action(async ({ cwd: cwd2 }) => {
1044
- await setup(cwd2, false);
1045
- logEvent("tengu_context_list", {});
1046
- const context2 = omit(
1047
- await getContext(),
1048
- "codeStyle",
1049
- "directoryStructure",
1050
- "gitStatus"
1051
- );
1052
- console.log(JSON.stringify(context2, null, 2));
1053
- process.exit(0);
1054
- });
1055
- context.command("remove <key>").description("Remove a value from context").option("-c, --cwd <cwd>", "The current working directory", String, cwd()).action(async (key, { cwd: cwd2 }) => {
1056
- await setup(cwd2, false);
1057
- logEvent("tengu_context_delete", { key });
1058
- removeContext(key);
1059
- console.log(`Removed context.${key}`);
1060
- process.exit(0);
1061
- });
1062
- await program.parseAsync(process.argv);
1063
- return program;
1064
- }
1065
- async function stdin() {
1066
- if (process.stdin.isTTY) {
1067
- return "";
1068
- }
1069
- let data = "";
1070
- for await (const chunk of process.stdin) data += chunk;
1071
- return data;
1072
- }
1073
- process.on("exit", () => {
1074
- resetCursor();
1075
- PersistentShell.getInstance().close();
1076
- });
1077
- function gracefulExit(code = 0) {
1078
- try {
1079
- resetCursor();
1080
- } catch {
1081
- }
1082
- try {
1083
- PersistentShell.getInstance().close();
1084
- } catch {
1085
- }
1086
- process.exit(code);
1087
- }
1088
- process.on("SIGINT", () => gracefulExit(0));
1089
- process.on("SIGTERM", () => gracefulExit(0));
1090
- process.on("SIGBREAK", () => gracefulExit(0));
1091
- process.on("unhandledRejection", (err) => {
1092
- console.error("Unhandled rejection:", err);
1093
- gracefulExit(1);
1094
- });
1095
- process.on("uncaughtException", (err) => {
1096
- console.error("Uncaught exception:", err);
1097
- gracefulExit(1);
1098
- });
1099
- function resetCursor() {
1100
- const terminal = process.stderr.isTTY ? process.stderr : process.stdout.isTTY ? process.stdout : void 0;
1101
- terminal?.write(`\x1B[?25h${cursorShow}`);
1102
- }
1103
- main();
1104
- export {
1105
- completeOnboarding
1106
- };
1107
- //# sourceMappingURL=cli.js.map