@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,44 +0,0 @@
1
- import { execFile } from "child_process";
2
- import { getCwd } from "./state.js";
3
- import { logError } from "./log.js";
4
- const MS_IN_SECOND = 1e3;
5
- const SECONDS_IN_MINUTE = 60;
6
- function execFileNoThrow(file, args, abortSignal, timeout = 10 * SECONDS_IN_MINUTE * MS_IN_SECOND, preserveOutputOnError = true) {
7
- return new Promise((resolve) => {
8
- try {
9
- execFile(
10
- file,
11
- args,
12
- {
13
- maxBuffer: 1e6,
14
- signal: abortSignal,
15
- timeout,
16
- cwd: getCwd()
17
- },
18
- (error, stdout, stderr) => {
19
- if (error) {
20
- if (preserveOutputOnError) {
21
- const errorCode = typeof error.code === "number" ? error.code : 1;
22
- resolve({
23
- stdout: stdout || "",
24
- stderr: stderr || "",
25
- code: errorCode
26
- });
27
- } else {
28
- resolve({ stdout: "", stderr: "", code: 1 });
29
- }
30
- } else {
31
- resolve({ stdout, stderr, code: 0 });
32
- }
33
- }
34
- );
35
- } catch (error) {
36
- logError(error);
37
- resolve({ stdout: "", stderr: "", code: 1 });
38
- }
39
- });
40
- }
41
- export {
42
- execFileNoThrow
43
- };
44
- //# sourceMappingURL=execFileNoThrow.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/execFileNoThrow.ts"],
4
- "sourcesContent": ["import { execFile } from 'child_process'\nimport { getCwd } from './state'\nimport { logError } from './log'\n\nconst MS_IN_SECOND = 1000\nconst SECONDS_IN_MINUTE = 60\n\n/**\n * execFile, but always resolves (never throws)\n */\nexport function execFileNoThrow(\n file: string,\n args: string[],\n abortSignal?: AbortSignal,\n timeout = 10 * SECONDS_IN_MINUTE * MS_IN_SECOND,\n preserveOutputOnError = true,\n): Promise<{ stdout: string; stderr: string; code: number }> {\n return new Promise(resolve => {\n try {\n execFile(\n file,\n args,\n {\n maxBuffer: 1_000_000,\n signal: abortSignal,\n timeout,\n cwd: getCwd(),\n },\n (error, stdout, stderr) => {\n if (error) {\n if (preserveOutputOnError) {\n const errorCode = typeof error.code === 'number' ? error.code : 1\n resolve({\n stdout: stdout || '',\n stderr: stderr || '',\n code: errorCode,\n })\n } else {\n resolve({ stdout: '', stderr: '', code: 1 })\n }\n } else {\n resolve({ stdout, stderr, code: 0 })\n }\n },\n )\n } catch (error) {\n logError(error)\n resolve({ stdout: '', stderr: '', code: 1 })\n }\n })\n}\n"],
5
- "mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,gBAAgB;AAEzB,MAAM,eAAe;AACrB,MAAM,oBAAoB;AAKnB,SAAS,gBACd,MACA,MACA,aACA,UAAU,KAAK,oBAAoB,cACnC,wBAAwB,MACmC;AAC3D,SAAO,IAAI,QAAQ,aAAW;AAC5B,QAAI;AACF;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,UACE,WAAW;AAAA,UACX,QAAQ;AAAA,UACR;AAAA,UACA,KAAK,OAAO;AAAA,QACd;AAAA,QACA,CAAC,OAAO,QAAQ,WAAW;AACzB,cAAI,OAAO;AACT,gBAAI,uBAAuB;AACzB,oBAAM,YAAY,OAAO,MAAM,SAAS,WAAW,MAAM,OAAO;AAChE,sBAAQ;AAAA,gBACN,QAAQ,UAAU;AAAA,gBAClB,QAAQ,UAAU;AAAA,gBAClB,MAAM;AAAA,cACR,CAAC;AAAA,YACH,OAAO;AACL,sBAAQ,EAAE,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AAAA,YAC7C;AAAA,UACF,OAAO;AACL,oBAAQ,EAAE,QAAQ,QAAQ,MAAM,EAAE,CAAC;AAAA,UACrC;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,eAAS,KAAK;AACd,cAAQ,EAAE,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AAAA,IAC7C;AAAA,EACF,CAAC;AACH;",
6
- "names": []
7
- }
@@ -1,78 +0,0 @@
1
- import { existsSync, readFileSync, writeFileSync, mkdirSync } from "fs";
2
- import { join } from "path";
3
- import { homedir } from "os";
4
- import { randomUUID } from "crypto";
5
- function getExpertChatDirectory() {
6
- const configDir = process.env.KODE_CONFIG_DIR ?? process.env.ANYKODE_CONFIG_DIR ?? join(homedir(), ".kode");
7
- const expertChatDir = join(configDir, "expert-chats");
8
- if (!existsSync(expertChatDir)) {
9
- mkdirSync(expertChatDir, { recursive: true });
10
- }
11
- return expertChatDir;
12
- }
13
- function getSessionFilePath(sessionId) {
14
- return join(getExpertChatDirectory(), `${sessionId}.json`);
15
- }
16
- function createExpertChatSession(expertModel) {
17
- const sessionId = randomUUID().slice(0, 5);
18
- const session = {
19
- sessionId,
20
- expertModel,
21
- messages: [],
22
- createdAt: Date.now(),
23
- lastUpdated: Date.now()
24
- };
25
- saveExpertChatSession(session);
26
- return session;
27
- }
28
- function loadExpertChatSession(sessionId) {
29
- const filePath = getSessionFilePath(sessionId);
30
- if (!existsSync(filePath)) {
31
- return null;
32
- }
33
- try {
34
- const content = readFileSync(filePath, "utf-8");
35
- return JSON.parse(content);
36
- } catch (error) {
37
- console.error(`Failed to load expert chat session ${sessionId}:`, error);
38
- return null;
39
- }
40
- }
41
- function saveExpertChatSession(session) {
42
- const filePath = getSessionFilePath(session.sessionId);
43
- try {
44
- session.lastUpdated = Date.now();
45
- writeFileSync(filePath, JSON.stringify(session, null, 2), "utf-8");
46
- } catch (error) {
47
- console.error(
48
- `Failed to save expert chat session ${session.sessionId}:`,
49
- error
50
- );
51
- throw error;
52
- }
53
- }
54
- function addMessageToSession(sessionId, role, content) {
55
- const session = loadExpertChatSession(sessionId);
56
- if (!session) {
57
- return null;
58
- }
59
- session.messages.push({ role, content });
60
- saveExpertChatSession(session);
61
- return session;
62
- }
63
- function getSessionMessages(sessionId) {
64
- const session = loadExpertChatSession(sessionId);
65
- return session?.messages || [];
66
- }
67
- function generateSessionId() {
68
- return randomUUID().slice(0, 5);
69
- }
70
- export {
71
- addMessageToSession,
72
- createExpertChatSession,
73
- generateSessionId,
74
- getSessionMessages,
75
- loadExpertChatSession,
76
- saveExpertChatSession
77
- };
78
- //# sourceMappingURL=expertChatStorage.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/expertChatStorage.ts"],
4
- "sourcesContent": ["import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs'\nimport { join } from 'path'\nimport { homedir } from 'os'\nimport { randomUUID } from 'crypto'\n\n/**\n * Expert Chat Session Storage - \u6781\u7B80\u7248\n * \u5B58\u50A8\u7B26\u5408OpenAI\u683C\u5F0F\u7684messages\u5386\u53F2\n */\n\nexport interface ChatMessage {\n role: 'user' | 'assistant'\n content: string\n}\n\nexport interface ExpertChatSession {\n sessionId: string\n expertModel: string\n messages: ChatMessage[]\n createdAt: number\n lastUpdated: number\n}\n\n/**\n * \u83B7\u53D6\u4E13\u5BB6\u804A\u5929\u5B58\u50A8\u76EE\u5F55\n */\nfunction getExpertChatDirectory(): string {\n const configDir =\n process.env.KODE_CONFIG_DIR ?? process.env.ANYKODE_CONFIG_DIR ?? join(homedir(), '.kode')\n const expertChatDir = join(configDir, 'expert-chats')\n\n if (!existsSync(expertChatDir)) {\n mkdirSync(expertChatDir, { recursive: true })\n }\n\n return expertChatDir\n}\n\n/**\n * \u83B7\u53D6\u4F1A\u8BDD\u6587\u4EF6\u8DEF\u5F84 - \u4F7F\u7528 sessionId.json \u683C\u5F0F\n */\nfunction getSessionFilePath(sessionId: string): string {\n return join(getExpertChatDirectory(), `${sessionId}.json`)\n}\n\n/**\n * \u521B\u5EFA\u65B0\u7684\u4E13\u5BB6\u804A\u5929\u4F1A\u8BDD\n */\nexport function createExpertChatSession(\n expertModel: string,\n): ExpertChatSession {\n const sessionId = randomUUID().slice(0, 5)\n const session: ExpertChatSession = {\n sessionId,\n expertModel,\n messages: [],\n createdAt: Date.now(),\n lastUpdated: Date.now(),\n }\n\n saveExpertChatSession(session)\n return session\n}\n\n/**\n * \u52A0\u8F7D\u73B0\u6709\u4E13\u5BB6\u804A\u5929\u4F1A\u8BDD\n */\nexport function loadExpertChatSession(\n sessionId: string,\n): ExpertChatSession | null {\n const filePath = getSessionFilePath(sessionId)\n\n if (!existsSync(filePath)) {\n return null\n }\n\n try {\n const content = readFileSync(filePath, 'utf-8')\n return JSON.parse(content) as ExpertChatSession\n } catch (error) {\n console.error(`Failed to load expert chat session ${sessionId}:`, error)\n return null\n }\n}\n\n/**\n * \u4FDD\u5B58\u4E13\u5BB6\u804A\u5929\u4F1A\u8BDD\n */\nexport function saveExpertChatSession(session: ExpertChatSession): void {\n const filePath = getSessionFilePath(session.sessionId)\n\n try {\n session.lastUpdated = Date.now()\n writeFileSync(filePath, JSON.stringify(session, null, 2), 'utf-8')\n } catch (error) {\n console.error(\n `Failed to save expert chat session ${session.sessionId}:`,\n error,\n )\n throw error\n }\n}\n\n/**\n * \u6DFB\u52A0\u6D88\u606F\u5230\u4F1A\u8BDD\n */\nexport function addMessageToSession(\n sessionId: string,\n role: 'user' | 'assistant',\n content: string,\n): ExpertChatSession | null {\n const session = loadExpertChatSession(sessionId)\n if (!session) {\n return null\n }\n\n session.messages.push({ role, content })\n saveExpertChatSession(session)\n\n return session\n}\n\n/**\n * \u83B7\u53D6\u4F1A\u8BDD\u7684\u6D88\u606F\u5386\u53F2 - \u8FD4\u56DEOpenAI\u683C\u5F0F\n */\nexport function getSessionMessages(sessionId: string): ChatMessage[] {\n const session = loadExpertChatSession(sessionId)\n return session?.messages || []\n}\n\n/**\n * \u751F\u6210\u65B0\u7684\u4F1A\u8BDDID\n */\nexport function generateSessionId(): string {\n return randomUUID().slice(0, 5)\n}\n"],
5
- "mappings": "AAAA,SAAS,YAAY,cAAc,eAAe,iBAAiB;AACnE,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,kBAAkB;AAuB3B,SAAS,yBAAiC;AACxC,QAAM,YACJ,QAAQ,IAAI,mBAAmB,QAAQ,IAAI,sBAAsB,KAAK,QAAQ,GAAG,OAAO;AAC1F,QAAM,gBAAgB,KAAK,WAAW,cAAc;AAEpD,MAAI,CAAC,WAAW,aAAa,GAAG;AAC9B,cAAU,eAAe,EAAE,WAAW,KAAK,CAAC;AAAA,EAC9C;AAEA,SAAO;AACT;AAKA,SAAS,mBAAmB,WAA2B;AACrD,SAAO,KAAK,uBAAuB,GAAG,GAAG,SAAS,OAAO;AAC3D;AAKO,SAAS,wBACd,aACmB;AACnB,QAAM,YAAY,WAAW,EAAE,MAAM,GAAG,CAAC;AACzC,QAAM,UAA6B;AAAA,IACjC;AAAA,IACA;AAAA,IACA,UAAU,CAAC;AAAA,IACX,WAAW,KAAK,IAAI;AAAA,IACpB,aAAa,KAAK,IAAI;AAAA,EACxB;AAEA,wBAAsB,OAAO;AAC7B,SAAO;AACT;AAKO,SAAS,sBACd,WAC0B;AAC1B,QAAM,WAAW,mBAAmB,SAAS;AAE7C,MAAI,CAAC,WAAW,QAAQ,GAAG;AACzB,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,UAAU,aAAa,UAAU,OAAO;AAC9C,WAAO,KAAK,MAAM,OAAO;AAAA,EAC3B,SAAS,OAAO;AACd,YAAQ,MAAM,sCAAsC,SAAS,KAAK,KAAK;AACvE,WAAO;AAAA,EACT;AACF;AAKO,SAAS,sBAAsB,SAAkC;AACtE,QAAM,WAAW,mBAAmB,QAAQ,SAAS;AAErD,MAAI;AACF,YAAQ,cAAc,KAAK,IAAI;AAC/B,kBAAc,UAAU,KAAK,UAAU,SAAS,MAAM,CAAC,GAAG,OAAO;AAAA,EACnE,SAAS,OAAO;AACd,YAAQ;AAAA,MACN,sCAAsC,QAAQ,SAAS;AAAA,MACvD;AAAA,IACF;AACA,UAAM;AAAA,EACR;AACF;AAKO,SAAS,oBACd,WACA,MACA,SAC0B;AAC1B,QAAM,UAAU,sBAAsB,SAAS;AAC/C,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,UAAQ,SAAS,KAAK,EAAE,MAAM,QAAQ,CAAC;AACvC,wBAAsB,OAAO;AAE7B,SAAO;AACT;AAKO,SAAS,mBAAmB,WAAkC;AACnE,QAAM,UAAU,sBAAsB,SAAS;AAC/C,SAAO,SAAS,YAAY,CAAC;AAC/B;AAKO,SAAS,oBAA4B;AAC1C,SAAO,WAAW,EAAE,MAAM,GAAG,CAAC;AAChC;",
6
- "names": []
7
- }
@@ -1,282 +0,0 @@
1
- import {
2
- readFileSync,
3
- writeFileSync,
4
- openSync,
5
- readSync,
6
- closeSync,
7
- existsSync,
8
- readdirSync
9
- } from "fs";
10
- import { logError } from "./log.js";
11
- import {
12
- isAbsolute,
13
- normalize,
14
- resolve,
15
- resolve as resolvePath,
16
- relative,
17
- sep,
18
- basename,
19
- dirname,
20
- extname,
21
- join
22
- } from "path";
23
- import { glob as globLib } from "glob";
24
- import { cwd } from "process";
25
- import { listAllContentFiles } from "./ripgrep.js";
26
- import { LRUCache } from "lru-cache";
27
- import { getCwd } from "./state.js";
28
- async function glob(filePattern, cwd2, { limit, offset }, abortSignal) {
29
- const paths = await globLib([filePattern], {
30
- cwd: cwd2,
31
- nocase: true,
32
- nodir: true,
33
- signal: abortSignal,
34
- stat: true,
35
- withFileTypes: true
36
- });
37
- const sortedPaths = paths.sort((a, b) => (a.mtimeMs ?? 0) - (b.mtimeMs ?? 0));
38
- const truncated = sortedPaths.length > offset + limit;
39
- return {
40
- files: sortedPaths.slice(offset, offset + limit).map((path) => path.fullpath()),
41
- truncated
42
- };
43
- }
44
- function readFileSafe(filepath) {
45
- try {
46
- return readFileSync(filepath, "utf-8");
47
- } catch (error) {
48
- logError(error);
49
- return null;
50
- }
51
- }
52
- function isInDirectory(relativePath, relativeCwd) {
53
- if (relativePath === ".") {
54
- return true;
55
- }
56
- if (relativePath.startsWith("~")) {
57
- return false;
58
- }
59
- if (relativePath.includes("\0") || relativeCwd.includes("\0")) {
60
- return false;
61
- }
62
- let normalizedPath = normalize(relativePath);
63
- let normalizedCwd = normalize(relativeCwd);
64
- normalizedPath = normalizedPath.endsWith(sep) ? normalizedPath : normalizedPath + sep;
65
- normalizedCwd = normalizedCwd.endsWith(sep) ? normalizedCwd : normalizedCwd + sep;
66
- const fullPath = resolvePath(cwd(), normalizedCwd, normalizedPath);
67
- const fullCwd = resolvePath(cwd(), normalizedCwd);
68
- const rel = relative(fullCwd, fullPath);
69
- if (!rel || rel === "") return true;
70
- if (rel.startsWith("..")) return false;
71
- if (isAbsolute(rel)) return false;
72
- return true;
73
- }
74
- function readTextContent(filePath, offset = 0, maxLines) {
75
- const enc = detectFileEncoding(filePath);
76
- const content = readFileSync(filePath, enc);
77
- const lines = content.split(/\r?\n/);
78
- const toReturn = maxLines !== void 0 && lines.length - offset > maxLines ? lines.slice(offset, offset + maxLines) : lines.slice(offset);
79
- return {
80
- content: toReturn.join("\n"),
81
- // TODO: This probably won't work for Windows
82
- lineCount: toReturn.length,
83
- totalLines: lines.length
84
- };
85
- }
86
- function writeTextContent(filePath, content, encoding, endings) {
87
- let toWrite = content;
88
- if (endings === "CRLF") {
89
- toWrite = content.split("\n").join("\r\n");
90
- }
91
- writeFileSync(filePath, toWrite, { encoding, flush: true });
92
- }
93
- const repoEndingCache = new LRUCache({
94
- fetchMethod: (path) => detectRepoLineEndingsDirect(path),
95
- ttl: 5 * 60 * 1e3,
96
- ttlAutopurge: false,
97
- max: 1e3
98
- });
99
- async function detectRepoLineEndings(filePath) {
100
- return repoEndingCache.fetch(resolve(filePath));
101
- }
102
- async function detectRepoLineEndingsDirect(cwd2) {
103
- const abortController = new AbortController();
104
- setTimeout(() => {
105
- abortController.abort();
106
- }, 1e3);
107
- const allFiles = await listAllContentFiles(cwd2, abortController.signal, 15);
108
- let crlfCount = 0;
109
- for (const file of allFiles) {
110
- const lineEnding = detectLineEndings(file);
111
- if (lineEnding === "CRLF") {
112
- crlfCount++;
113
- }
114
- }
115
- return crlfCount > 3 ? "CRLF" : "LF";
116
- }
117
- function fetch(cache, key, value) {
118
- if (cache.has(key)) {
119
- return cache.get(key);
120
- }
121
- const v = value();
122
- cache.set(key, v);
123
- return v;
124
- }
125
- const fileEncodingCache = new LRUCache({
126
- fetchMethod: (path) => detectFileEncodingDirect(path),
127
- ttl: 5 * 60 * 1e3,
128
- ttlAutopurge: false,
129
- max: 1e3
130
- });
131
- function detectFileEncoding(filePath) {
132
- const k = resolve(filePath);
133
- return fetch(fileEncodingCache, k, () => detectFileEncodingDirect(k));
134
- }
135
- function detectFileEncodingDirect(filePath) {
136
- const BUFFER_SIZE = 4096;
137
- const buffer = Buffer.alloc(BUFFER_SIZE);
138
- let fd = void 0;
139
- try {
140
- fd = openSync(filePath, "r");
141
- const bytesRead = readSync(fd, buffer, 0, BUFFER_SIZE, 0);
142
- if (bytesRead >= 2) {
143
- if (buffer[0] === 255 && buffer[1] === 254) return "utf16le";
144
- }
145
- if (bytesRead >= 3 && buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191) {
146
- return "utf8";
147
- }
148
- const isUtf8 = buffer.slice(0, bytesRead).toString("utf8").length > 0;
149
- return isUtf8 ? "utf8" : "ascii";
150
- } catch (error) {
151
- logError(`Error detecting encoding for file ${filePath}: ${error}`);
152
- return "utf8";
153
- } finally {
154
- if (fd) closeSync(fd);
155
- }
156
- }
157
- const lineEndingCache = new LRUCache({
158
- fetchMethod: (path) => detectLineEndingsDirect(path),
159
- ttl: 5 * 60 * 1e3,
160
- ttlAutopurge: false,
161
- max: 1e3
162
- });
163
- function detectLineEndings(filePath) {
164
- const k = resolve(filePath);
165
- return fetch(lineEndingCache, k, () => detectLineEndingsDirect(k));
166
- }
167
- function detectLineEndingsDirect(filePath, encoding = "utf8") {
168
- try {
169
- const buffer = Buffer.alloc(4096);
170
- const fd = openSync(filePath, "r");
171
- const bytesRead = readSync(fd, buffer, 0, 4096, 0);
172
- closeSync(fd);
173
- const content = buffer.toString(encoding, 0, bytesRead);
174
- let crlfCount = 0;
175
- let lfCount = 0;
176
- for (let i = 0; i < content.length; i++) {
177
- if (content[i] === "\n") {
178
- if (i > 0 && content[i - 1] === "\r") {
179
- crlfCount++;
180
- } else {
181
- lfCount++;
182
- }
183
- }
184
- }
185
- return crlfCount > lfCount ? "CRLF" : "LF";
186
- } catch (error) {
187
- logError(`Error detecting line endings for file ${filePath}: ${error}`);
188
- return "LF";
189
- }
190
- }
191
- function normalizeFilePath(filePath) {
192
- const absoluteFilePath = isAbsolute(filePath) ? filePath : resolve(getCwd(), filePath);
193
- if (absoluteFilePath.endsWith(" AM.png")) {
194
- return absoluteFilePath.replace(
195
- " AM.png",
196
- `${String.fromCharCode(8239)}AM.png`
197
- );
198
- }
199
- if (absoluteFilePath.endsWith(" PM.png")) {
200
- return absoluteFilePath.replace(
201
- " PM.png",
202
- `${String.fromCharCode(8239)}PM.png`
203
- );
204
- }
205
- return absoluteFilePath;
206
- }
207
- function getAbsolutePath(path) {
208
- return path ? isAbsolute(path) ? path : resolve(getCwd(), path) : void 0;
209
- }
210
- function getAbsoluteAndRelativePaths(path) {
211
- const absolutePath = getAbsolutePath(path);
212
- const relativePath = absolutePath ? relative(getCwd(), absolutePath) : void 0;
213
- return { absolutePath, relativePath };
214
- }
215
- function findSimilarFile(filePath) {
216
- try {
217
- const dir = dirname(filePath);
218
- const fileBaseName = basename(filePath, extname(filePath));
219
- if (!existsSync(dir)) {
220
- return void 0;
221
- }
222
- const files = readdirSync(dir);
223
- const similarFiles = files.filter(
224
- (file) => basename(file, extname(file)) === fileBaseName && join(dir, file) !== filePath
225
- );
226
- const firstMatch = similarFiles[0];
227
- if (firstMatch) {
228
- return firstMatch;
229
- }
230
- return void 0;
231
- } catch (error) {
232
- logError(`Error finding similar file for ${filePath}: ${error}`);
233
- return void 0;
234
- }
235
- }
236
- function addLineNumbers({
237
- content,
238
- // 1-indexed
239
- startLine
240
- }) {
241
- if (!content) {
242
- return "";
243
- }
244
- return content.split(/\r?\n/).map((line, index) => {
245
- const lineNum = index + startLine;
246
- const numStr = String(lineNum);
247
- if (numStr.length >= 6) {
248
- return `${numStr} ${line}`;
249
- }
250
- const n = numStr.padStart(6, " ");
251
- return `${n} ${line}`;
252
- }).join("\n");
253
- }
254
- function isDirEmpty(dirPath) {
255
- try {
256
- const entries = readdirSync(dirPath);
257
- return entries.length === 0;
258
- } catch (error) {
259
- logError(`Error checking directory: ${error}`);
260
- return false;
261
- }
262
- }
263
- export {
264
- addLineNumbers,
265
- detectFileEncoding,
266
- detectFileEncodingDirect,
267
- detectLineEndings,
268
- detectLineEndingsDirect,
269
- detectRepoLineEndings,
270
- detectRepoLineEndingsDirect,
271
- findSimilarFile,
272
- getAbsoluteAndRelativePaths,
273
- getAbsolutePath,
274
- glob,
275
- isDirEmpty,
276
- isInDirectory,
277
- normalizeFilePath,
278
- readFileSafe,
279
- readTextContent,
280
- writeTextContent
281
- };
282
- //# sourceMappingURL=file.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/file.ts"],
4
- "sourcesContent": ["import {\n readFileSync,\n writeFileSync,\n openSync,\n readSync,\n closeSync,\n existsSync,\n readdirSync,\n} from 'fs'\nimport { logError } from './log'\nimport {\n isAbsolute,\n normalize,\n resolve,\n resolve as resolvePath,\n relative,\n sep,\n basename,\n dirname,\n extname,\n join,\n} from 'path'\nimport { glob as globLib } from 'glob'\nimport { cwd } from 'process'\nimport { listAllContentFiles } from './ripgrep'\nimport { LRUCache } from 'lru-cache'\nimport { getCwd } from './state'\n\nexport type File = {\n filename: string\n content: string\n}\n\nexport type LineEndingType = 'CRLF' | 'LF'\n\nexport async function glob(\n filePattern: string,\n cwd: string,\n { limit, offset }: { limit: number; offset: number },\n abortSignal: AbortSignal,\n): Promise<{ files: string[]; truncated: boolean }> {\n // TODO: Use worker threads\n const paths = await globLib([filePattern], {\n cwd,\n nocase: true,\n nodir: true,\n signal: abortSignal,\n stat: true,\n withFileTypes: true,\n })\n const sortedPaths = paths.sort((a, b) => (a.mtimeMs ?? 0) - (b.mtimeMs ?? 0))\n const truncated = sortedPaths.length > offset + limit\n return {\n files: sortedPaths\n .slice(offset, offset + limit)\n .map(path => path.fullpath()),\n truncated,\n }\n}\n\nexport function readFileSafe(filepath: string): string | null {\n try {\n return readFileSync(filepath, 'utf-8')\n } catch (error) {\n logError(error)\n return null\n }\n}\n\nexport function isInDirectory(\n relativePath: string,\n relativeCwd: string,\n): boolean {\n if (relativePath === '.') {\n return true\n }\n\n // Reject paths starting with ~ (home directory)\n if (relativePath.startsWith('~')) {\n return false\n }\n\n // Reject paths containing null bytes or other sneaky characters\n if (relativePath.includes('\\0') || relativeCwd.includes('\\0')) {\n return false\n }\n\n // Normalize paths to resolve any '..' or '.' segments\n // and add trailing slashes\n let normalizedPath = normalize(relativePath)\n let normalizedCwd = normalize(relativeCwd)\n\n normalizedPath = normalizedPath.endsWith(sep)\n ? normalizedPath\n : normalizedPath + sep\n normalizedCwd = normalizedCwd.endsWith(sep)\n ? normalizedCwd\n : normalizedCwd + sep\n\n // Join with a base directory to make them absolute-like for comparison\n const fullPath = resolvePath(cwd(), normalizedCwd, normalizedPath)\n const fullCwd = resolvePath(cwd(), normalizedCwd)\n\n // Robust subpath check using path.relative (case-insensitive on Windows)\n const rel = relative(fullCwd, fullPath)\n if (!rel || rel === '') return true\n if (rel.startsWith('..')) return false\n if (isAbsolute(rel)) return false\n return true\n}\n\nexport function readTextContent(\n filePath: string,\n offset = 0,\n maxLines?: number,\n): { content: string; lineCount: number; totalLines: number } {\n const enc = detectFileEncoding(filePath)\n const content = readFileSync(filePath, enc)\n const lines = content.split(/\\r?\\n/)\n\n // Truncate number of lines if needed\n const toReturn =\n maxLines !== undefined && lines.length - offset > maxLines\n ? lines.slice(offset, offset + maxLines)\n : lines.slice(offset)\n\n return {\n content: toReturn.join('\\n'), // TODO: This probably won't work for Windows\n lineCount: toReturn.length,\n totalLines: lines.length,\n }\n}\n\nexport function writeTextContent(\n filePath: string,\n content: string,\n encoding: BufferEncoding,\n endings: LineEndingType,\n): void {\n let toWrite = content\n if (endings === 'CRLF') {\n toWrite = content.split('\\n').join('\\r\\n')\n }\n\n writeFileSync(filePath, toWrite, { encoding, flush: true })\n}\n\nconst repoEndingCache = new LRUCache<string, LineEndingType>({\n fetchMethod: path => detectRepoLineEndingsDirect(path),\n ttl: 5 * 60 * 1000,\n ttlAutopurge: false,\n max: 1000,\n})\n\nexport async function detectRepoLineEndings(\n filePath: string,\n): Promise<LineEndingType | undefined> {\n return repoEndingCache.fetch(resolve(filePath))\n}\n\nexport async function detectRepoLineEndingsDirect(\n cwd: string,\n): Promise<LineEndingType> {\n const abortController = new AbortController()\n setTimeout(() => {\n abortController.abort()\n }, 1_000)\n const allFiles = await listAllContentFiles(cwd, abortController.signal, 15)\n\n let crlfCount = 0\n for (const file of allFiles) {\n const lineEnding = detectLineEndings(file)\n if (lineEnding === 'CRLF') {\n crlfCount++\n }\n }\n\n return crlfCount > 3 ? 'CRLF' : 'LF'\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nfunction fetch<K extends {}, V extends {}>(\n cache: LRUCache<K, V>,\n key: K,\n value: () => V,\n): V {\n if (cache.has(key)) {\n return cache.get(key)!\n }\n\n const v = value()\n cache.set(key, v)\n return v\n}\n\nconst fileEncodingCache = new LRUCache<string, BufferEncoding>({\n fetchMethod: path => detectFileEncodingDirect(path),\n ttl: 5 * 60 * 1000,\n ttlAutopurge: false,\n max: 1000,\n})\n\nexport function detectFileEncoding(filePath: string): BufferEncoding {\n const k = resolve(filePath)\n return fetch(fileEncodingCache, k, () => detectFileEncodingDirect(k))\n}\n\nexport function detectFileEncodingDirect(filePath: string): BufferEncoding {\n const BUFFER_SIZE = 4096\n const buffer = Buffer.alloc(BUFFER_SIZE)\n\n let fd: number | undefined = undefined\n try {\n fd = openSync(filePath, 'r')\n const bytesRead = readSync(fd, buffer, 0, BUFFER_SIZE, 0)\n\n if (bytesRead >= 2) {\n if (buffer[0] === 0xff && buffer[1] === 0xfe) return 'utf16le'\n }\n\n if (\n bytesRead >= 3 &&\n buffer[0] === 0xef &&\n buffer[1] === 0xbb &&\n buffer[2] === 0xbf\n ) {\n return 'utf8'\n }\n\n const isUtf8 = buffer.slice(0, bytesRead).toString('utf8').length > 0\n return isUtf8 ? 'utf8' : 'ascii'\n } catch (error) {\n logError(`Error detecting encoding for file ${filePath}: ${error}`)\n return 'utf8'\n } finally {\n if (fd) closeSync(fd)\n }\n}\n\nconst lineEndingCache = new LRUCache<string, LineEndingType>({\n fetchMethod: path => detectLineEndingsDirect(path),\n ttl: 5 * 60 * 1000,\n ttlAutopurge: false,\n max: 1000,\n})\n\nexport function detectLineEndings(filePath: string): LineEndingType {\n const k = resolve(filePath)\n return fetch(lineEndingCache, k, () => detectLineEndingsDirect(k))\n}\n\nexport function detectLineEndingsDirect(\n filePath: string,\n encoding: BufferEncoding = 'utf8',\n): LineEndingType {\n try {\n const buffer = Buffer.alloc(4096)\n const fd = openSync(filePath, 'r')\n const bytesRead = readSync(fd, buffer, 0, 4096, 0)\n closeSync(fd)\n\n const content = buffer.toString(encoding, 0, bytesRead)\n let crlfCount = 0\n let lfCount = 0\n\n for (let i = 0; i < content.length; i++) {\n if (content[i] === '\\n') {\n if (i > 0 && content[i - 1] === '\\r') {\n crlfCount++\n } else {\n lfCount++\n }\n }\n }\n\n return crlfCount > lfCount ? 'CRLF' : 'LF'\n } catch (error) {\n logError(`Error detecting line endings for file ${filePath}: ${error}`)\n return 'LF'\n }\n}\n\nexport function normalizeFilePath(filePath: string): string {\n const absoluteFilePath = isAbsolute(filePath)\n ? filePath\n : resolve(getCwd(), filePath)\n\n // One weird trick for half-width space characters in MacOS screenshot filenames\n if (absoluteFilePath.endsWith(' AM.png')) {\n return absoluteFilePath.replace(\n ' AM.png',\n `${String.fromCharCode(8239)}AM.png`,\n )\n }\n\n // One weird trick for half-width space characters in MacOS screenshot filenames\n if (absoluteFilePath.endsWith(' PM.png')) {\n return absoluteFilePath.replace(\n ' PM.png',\n `${String.fromCharCode(8239)}PM.png`,\n )\n }\n\n return absoluteFilePath\n}\n\nexport function getAbsolutePath(path: string | undefined): string | undefined {\n return path ? (isAbsolute(path) ? path : resolve(getCwd(), path)) : undefined\n}\n\nexport function getAbsoluteAndRelativePaths(path: string | undefined): {\n absolutePath: string | undefined\n relativePath: string | undefined\n} {\n const absolutePath = getAbsolutePath(path)\n const relativePath = absolutePath\n ? relative(getCwd(), absolutePath)\n : undefined\n return { absolutePath, relativePath }\n}\n\n/**\n * Find files with the same name but different extensions in the same directory\n * @param filePath The path to the file that doesn't exist\n * @returns The found file with a different extension, or undefined if none found\n */\n\nexport function findSimilarFile(filePath: string): string | undefined {\n try {\n const dir = dirname(filePath)\n const fileBaseName = basename(filePath, extname(filePath))\n\n // Check if directory exists\n if (!existsSync(dir)) {\n return undefined\n }\n\n // Get all files in the directory\n const files = readdirSync(dir)\n\n // Find files with the same base name but different extension\n const similarFiles = files.filter(\n file =>\n basename(file, extname(file)) === fileBaseName &&\n join(dir, file) !== filePath,\n )\n\n // Return just the filename of the first match if found\n const firstMatch = similarFiles[0]\n if (firstMatch) {\n return firstMatch\n }\n return undefined\n } catch (error) {\n // In case of any errors, return undefined\n logError(`Error finding similar file for ${filePath}: ${error}`)\n return undefined\n }\n}\n\n/**\n * Adds cat -n style line numbers to the content\n */\nexport function addLineNumbers({\n content,\n // 1-indexed\n startLine,\n}: {\n content: string\n startLine: number\n}): string {\n if (!content) {\n return ''\n }\n\n return content\n .split(/\\r?\\n/)\n .map((line, index) => {\n const lineNum = index + startLine\n const numStr = String(lineNum)\n // Handle large numbers differently\n if (numStr.length >= 6) {\n return `${numStr}\\t${line}`\n }\n // Regular numbers get padding to 6 characters\n const n = numStr.padStart(6, ' ')\n return `${n}\\t${line}`\n })\n .join('\\n') // TODO: This probably won't work for Windows\n}\n\n/**\n * Checks if a directory is empty by efficiently reading just the first entry\n * @param dirPath The path to the directory to check\n * @returns true if the directory is empty, false otherwise\n */\nexport function isDirEmpty(dirPath: string): boolean {\n try {\n const entries = readdirSync(dirPath)\n return entries.length === 0\n } catch (error) {\n logError(`Error checking directory: ${error}`)\n return false\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["cwd"]
7
- }
@@ -1,41 +0,0 @@
1
- import { readTextContent } from "./file.js";
2
- import { fileFreshnessService } from "../services/fileFreshness.js";
3
- const MAX_FILES_TO_RECOVER = 5;
4
- const MAX_TOKENS_PER_FILE = 1e4;
5
- const MAX_TOTAL_FILE_TOKENS = 5e4;
6
- async function selectAndReadFiles() {
7
- const importantFiles = fileFreshnessService.getImportantFiles(MAX_FILES_TO_RECOVER);
8
- const results = [];
9
- let totalTokens = 0;
10
- for (const fileInfo of importantFiles) {
11
- try {
12
- const { content } = readTextContent(fileInfo.path);
13
- const estimatedTokens = Math.ceil(content.length * 0.25);
14
- let finalContent = content;
15
- let truncated = false;
16
- if (estimatedTokens > MAX_TOKENS_PER_FILE) {
17
- const maxChars = Math.floor(MAX_TOKENS_PER_FILE / 0.25);
18
- finalContent = content.substring(0, maxChars);
19
- truncated = true;
20
- }
21
- const finalTokens = Math.min(estimatedTokens, MAX_TOKENS_PER_FILE);
22
- if (totalTokens + finalTokens > MAX_TOTAL_FILE_TOKENS) {
23
- break;
24
- }
25
- totalTokens += finalTokens;
26
- results.push({
27
- path: fileInfo.path,
28
- content: finalContent,
29
- tokens: finalTokens,
30
- truncated
31
- });
32
- } catch (error) {
33
- console.error(`Failed to read file for recovery: ${fileInfo.path}`, error);
34
- }
35
- }
36
- return results;
37
- }
38
- export {
39
- selectAndReadFiles
40
- };
41
- //# sourceMappingURL=fileRecoveryCore.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/fileRecoveryCore.ts"],
4
- "sourcesContent": ["import { readTextContent } from './file'\nimport { fileFreshnessService } from '../services/fileFreshness'\n\n/**\n * File recovery configuration for auto-compact feature\n * These limits ensure recovered files don't overwhelm the compressed context\n */\nconst MAX_FILES_TO_RECOVER = 5\nconst MAX_TOKENS_PER_FILE = 10_000\nconst MAX_TOTAL_FILE_TOKENS = 50_000\n\n/**\n * Selects and reads recently accessed files for context recovery\n *\n * During auto-compact, this function preserves development context by:\n * - Selecting files based on recent access patterns\n * - Enforcing token budgets to prevent context bloat\n * - Truncating large files while preserving essential content\n *\n * @returns Array of file data with content, token counts, and truncation flags\n */\nexport async function selectAndReadFiles(): Promise<\n Array<{\n path: string\n content: string\n tokens: number\n truncated: boolean\n }>\n> {\n const importantFiles =\n fileFreshnessService.getImportantFiles(MAX_FILES_TO_RECOVER)\n const results = []\n let totalTokens = 0\n\n for (const fileInfo of importantFiles) {\n try {\n const { content } = readTextContent(fileInfo.path)\n const estimatedTokens = Math.ceil(content.length * 0.25)\n\n // Apply per-file token limit to prevent any single file from dominating context\n let finalContent = content\n let truncated = false\n\n if (estimatedTokens > MAX_TOKENS_PER_FILE) {\n const maxChars = Math.floor(MAX_TOKENS_PER_FILE / 0.25)\n finalContent = content.substring(0, maxChars)\n truncated = true\n }\n\n const finalTokens = Math.min(estimatedTokens, MAX_TOKENS_PER_FILE)\n\n // Enforce total token budget to maintain auto-compact effectiveness\n if (totalTokens + finalTokens > MAX_TOTAL_FILE_TOKENS) {\n break\n }\n\n totalTokens += finalTokens\n results.push({\n path: fileInfo.path,\n content: finalContent,\n tokens: finalTokens,\n truncated,\n })\n } catch (error) {\n // Skip files that cannot be read, don't let one failure stop the process\n console.error(`Failed to read file for recovery: ${fileInfo.path}`, error)\n }\n }\n\n return results\n}\n"],
5
- "mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,4BAA4B;AAMrC,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB;AAC5B,MAAM,wBAAwB;AAY9B,eAAsB,qBAOpB;AACA,QAAM,iBACJ,qBAAqB,kBAAkB,oBAAoB;AAC7D,QAAM,UAAU,CAAC;AACjB,MAAI,cAAc;AAElB,aAAW,YAAY,gBAAgB;AACrC,QAAI;AACF,YAAM,EAAE,QAAQ,IAAI,gBAAgB,SAAS,IAAI;AACjD,YAAM,kBAAkB,KAAK,KAAK,QAAQ,SAAS,IAAI;AAGvD,UAAI,eAAe;AACnB,UAAI,YAAY;AAEhB,UAAI,kBAAkB,qBAAqB;AACzC,cAAM,WAAW,KAAK,MAAM,sBAAsB,IAAI;AACtD,uBAAe,QAAQ,UAAU,GAAG,QAAQ;AAC5C,oBAAY;AAAA,MACd;AAEA,YAAM,cAAc,KAAK,IAAI,iBAAiB,mBAAmB;AAGjE,UAAI,cAAc,cAAc,uBAAuB;AACrD;AAAA,MACF;AAEA,qBAAe;AACf,cAAQ,KAAK;AAAA,QACX,MAAM,SAAS;AAAA,QACf,SAAS;AAAA,QACT,QAAQ;AAAA,QACR;AAAA,MACF,CAAC;AAAA,IACH,SAAS,OAAO;AAEd,cAAQ,MAAM,qCAAqC,SAAS,IAAI,IAAI,KAAK;AAAA,IAC3E;AAAA,EACF;AAEA,SAAO;AACT;",
6
- "names": []
7
- }
@@ -1,41 +0,0 @@
1
- function wrapText(text, width) {
2
- const lines = [];
3
- let currentLine = "";
4
- for (const char of text) {
5
- if ([...currentLine].length < width) {
6
- currentLine += char;
7
- } else {
8
- lines.push(currentLine);
9
- currentLine = char;
10
- }
11
- }
12
- if (currentLine) lines.push(currentLine);
13
- return lines;
14
- }
15
- function formatDuration(ms) {
16
- if (ms < 6e4) {
17
- return `${(ms / 1e3).toFixed(1)}s`;
18
- }
19
- const hours = Math.floor(ms / 36e5);
20
- const minutes = Math.floor(ms % 36e5 / 6e4);
21
- const seconds = (ms % 6e4 / 1e3).toFixed(1);
22
- if (hours > 0) {
23
- return `${hours}h ${minutes}m ${seconds}s`;
24
- }
25
- if (minutes > 0) {
26
- return `${minutes}m ${seconds}s`;
27
- }
28
- return `${seconds}s`;
29
- }
30
- function formatNumber(number) {
31
- return new Intl.NumberFormat("en", {
32
- notation: "compact",
33
- maximumFractionDigits: 1
34
- }).format(number).toLowerCase();
35
- }
36
- export {
37
- formatDuration,
38
- formatNumber,
39
- wrapText
40
- };
41
- //# sourceMappingURL=format.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/format.tsx"],
4
- "sourcesContent": ["export function wrapText(text: string, width: number): string[] {\n const lines: string[] = []\n let currentLine = ''\n\n for (const char of text) {\n // Important: we need the spread to properly count multi-plane UTF-8 characters (eg. \uD805\uDE96)\n if ([...currentLine].length < width) {\n currentLine += char\n } else {\n lines.push(currentLine)\n currentLine = char\n }\n }\n\n if (currentLine) lines.push(currentLine)\n return lines\n}\n\nexport function formatDuration(ms: number): string {\n if (ms < 60000) {\n return `${(ms / 1000).toFixed(1)}s`\n }\n\n const hours = Math.floor(ms / 3600000)\n const minutes = Math.floor((ms % 3600000) / 60000)\n const seconds = ((ms % 60000) / 1000).toFixed(1)\n\n if (hours > 0) {\n return `${hours}h ${minutes}m ${seconds}s`\n }\n if (minutes > 0) {\n return `${minutes}m ${seconds}s`\n }\n return `${seconds}s`\n}\n\nexport function formatNumber(number: number): string {\n return new Intl.NumberFormat('en', {\n notation: 'compact',\n maximumFractionDigits: 1,\n })\n .format(number) // eg. \"1321\" => \"1.3K\"\n .toLowerCase() // eg. \"1.3K\" => \"1.3k\"\n}\n"],
5
- "mappings": "AAAO,SAAS,SAAS,MAAc,OAAyB;AAC9D,QAAM,QAAkB,CAAC;AACzB,MAAI,cAAc;AAElB,aAAW,QAAQ,MAAM;AAEvB,QAAI,CAAC,GAAG,WAAW,EAAE,SAAS,OAAO;AACnC,qBAAe;AAAA,IACjB,OAAO;AACL,YAAM,KAAK,WAAW;AACtB,oBAAc;AAAA,IAChB;AAAA,EACF;AAEA,MAAI,YAAa,OAAM,KAAK,WAAW;AACvC,SAAO;AACT;AAEO,SAAS,eAAe,IAAoB;AACjD,MAAI,KAAK,KAAO;AACd,WAAO,IAAI,KAAK,KAAM,QAAQ,CAAC,CAAC;AAAA,EAClC;AAEA,QAAM,QAAQ,KAAK,MAAM,KAAK,IAAO;AACrC,QAAM,UAAU,KAAK,MAAO,KAAK,OAAW,GAAK;AACjD,QAAM,WAAY,KAAK,MAAS,KAAM,QAAQ,CAAC;AAE/C,MAAI,QAAQ,GAAG;AACb,WAAO,GAAG,KAAK,KAAK,OAAO,KAAK,OAAO;AAAA,EACzC;AACA,MAAI,UAAU,GAAG;AACf,WAAO,GAAG,OAAO,KAAK,OAAO;AAAA,EAC/B;AACA,SAAO,GAAG,OAAO;AACnB;AAEO,SAAS,aAAa,QAAwB;AACnD,SAAO,IAAI,KAAK,aAAa,MAAM;AAAA,IACjC,UAAU;AAAA,IACV,uBAAuB;AAAA,EACzB,CAAC,EACE,OAAO,MAAM,EACb,YAAY;AACjB;",
6
- "names": []
7
- }