httpcat-cli 0.3.0 → 0.3.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 (322) hide show
  1. package/.github/workflows/ci.yml +3 -0
  2. package/.github/workflows/rc-publish.yml +6 -0
  3. package/.github/workflows/release.yml +102 -0
  4. package/.github/workflows/sync-version.yml +31 -2
  5. package/README.md +1408 -109
  6. package/additions.txt +3 -0
  7. package/bun.lock +260 -25
  8. package/dist/agent/autonomous-trader.d.ts.map +1 -0
  9. package/dist/agent/autonomous-trader.js +362 -0
  10. package/dist/agent/autonomous-trader.js.map +1 -0
  11. package/dist/agent/ax-agent.d.ts.map +1 -1
  12. package/dist/agent/ax-agent.js +356 -18
  13. package/dist/agent/ax-agent.js.map +1 -1
  14. package/dist/agent/event-client.d.ts.map +1 -0
  15. package/dist/agent/event-client.js +82 -0
  16. package/dist/agent/event-client.js.map +1 -0
  17. package/dist/agent/log-stream.d.ts.map +1 -0
  18. package/dist/agent/log-stream.js +95 -0
  19. package/dist/agent/log-stream.js.map +1 -0
  20. package/dist/agent/memory/conversation-session.d.ts.map +1 -0
  21. package/dist/agent/memory/conversation-session.js +232 -0
  22. package/dist/agent/memory/conversation-session.js.map +1 -0
  23. package/dist/agent/memory/conversation-store.d.ts.map +1 -0
  24. package/dist/agent/memory/conversation-store.js +214 -0
  25. package/dist/agent/memory/conversation-store.js.map +1 -0
  26. package/dist/agent/memory/database-schema.d.ts.map +1 -0
  27. package/dist/agent/memory/database-schema.js +355 -0
  28. package/dist/agent/memory/database-schema.js.map +1 -0
  29. package/dist/agent/memory/decision-tracker.d.ts.map +1 -0
  30. package/dist/agent/memory/decision-tracker.js +274 -0
  31. package/dist/agent/memory/decision-tracker.js.map +1 -0
  32. package/dist/agent/memory/memory-manager.d.ts.map +1 -0
  33. package/dist/agent/memory/memory-manager.js +187 -0
  34. package/dist/agent/memory/memory-manager.js.map +1 -0
  35. package/dist/agent/memory/types.d.ts.map +1 -0
  36. package/dist/agent/memory/types.js +5 -0
  37. package/dist/agent/memory/types.js.map +1 -0
  38. package/dist/agent/message-formatter.d.ts.map +1 -0
  39. package/dist/agent/message-formatter.js +76 -0
  40. package/dist/agent/message-formatter.js.map +1 -0
  41. package/dist/agent/position-db.d.ts.map +1 -0
  42. package/dist/agent/position-db.js +154 -0
  43. package/dist/agent/position-db.js.map +1 -0
  44. package/dist/agent/simple-chat-ui-static.d.ts.map +1 -0
  45. package/dist/agent/simple-chat-ui-static.js +129 -0
  46. package/dist/agent/simple-chat-ui-static.js.map +1 -0
  47. package/dist/agent/simple-chat-ui.d.ts.map +1 -0
  48. package/dist/agent/simple-chat-ui.js +90 -0
  49. package/dist/agent/simple-chat-ui.js.map +1 -0
  50. package/dist/agent/tools.d.ts.map +1 -1
  51. package/dist/agent/tools.js +297 -4
  52. package/dist/agent/tools.js.map +1 -1
  53. package/dist/agent/ui.d.ts.map +1 -0
  54. package/dist/agent/ui.js +84 -0
  55. package/dist/agent/ui.js.map +1 -0
  56. package/dist/agent/unified-runtime.d.ts.map +1 -0
  57. package/dist/agent/unified-runtime.js +397 -0
  58. package/dist/agent/unified-runtime.js.map +1 -0
  59. package/dist/client.d.ts.map +1 -1
  60. package/dist/client.js +272 -21
  61. package/dist/client.js.map +1 -1
  62. package/dist/commands/account.d.ts.map +1 -1
  63. package/dist/commands/account.js +187 -33
  64. package/dist/commands/account.js.map +1 -1
  65. package/dist/commands/agent.d.ts.map +1 -0
  66. package/dist/commands/agent.js +125 -0
  67. package/dist/commands/agent.js.map +1 -0
  68. package/dist/commands/approve.d.ts.map +1 -0
  69. package/dist/commands/approve.js +505 -0
  70. package/dist/commands/approve.js.map +1 -0
  71. package/dist/commands/automation.d.ts.map +1 -0
  72. package/dist/commands/automation.js +346 -0
  73. package/dist/commands/automation.js.map +1 -0
  74. package/dist/commands/balances.d.ts.map +1 -1
  75. package/dist/commands/balances.js +226 -73
  76. package/dist/commands/balances.js.map +1 -1
  77. package/dist/commands/buy.d.ts.map +1 -1
  78. package/dist/commands/buy.js +149 -146
  79. package/dist/commands/buy.js.map +1 -1
  80. package/dist/commands/call.d.ts.map +1 -0
  81. package/dist/commands/call.js +51 -0
  82. package/dist/commands/call.js.map +1 -0
  83. package/dist/commands/cex.d.ts.map +1 -0
  84. package/dist/commands/cex.js +958 -0
  85. package/dist/commands/cex.js.map +1 -0
  86. package/dist/commands/chat.d.ts.map +1 -1
  87. package/dist/commands/chat.js +169 -411
  88. package/dist/commands/chat.js.map +1 -1
  89. package/dist/commands/claim.d.ts.map +1 -1
  90. package/dist/commands/claim.js +313 -29
  91. package/dist/commands/claim.js.map +1 -1
  92. package/dist/commands/create.d.ts.map +1 -1
  93. package/dist/commands/create.js +151 -43
  94. package/dist/commands/create.js.map +1 -1
  95. package/dist/commands/gasless-swap.d.ts.map +1 -0
  96. package/dist/commands/gasless-swap.js +232 -0
  97. package/dist/commands/gasless-swap.js.map +1 -0
  98. package/dist/commands/health.d.ts.map +1 -1
  99. package/dist/commands/health.js +63 -7
  100. package/dist/commands/health.js.map +1 -1
  101. package/dist/commands/info.d.ts.map +1 -1
  102. package/dist/commands/info.js +131 -47
  103. package/dist/commands/info.js.map +1 -1
  104. package/dist/commands/launchpad.d.ts.map +1 -0
  105. package/dist/commands/launchpad.js +708 -0
  106. package/dist/commands/launchpad.js.map +1 -0
  107. package/dist/commands/list.d.ts.map +1 -1
  108. package/dist/commands/list.js +57 -23
  109. package/dist/commands/list.js.map +1 -1
  110. package/dist/commands/market.d.ts.map +1 -0
  111. package/dist/commands/market.js +960 -0
  112. package/dist/commands/market.js.map +1 -0
  113. package/dist/commands/mcp-install.d.ts.map +1 -0
  114. package/dist/commands/mcp-install.js +387 -0
  115. package/dist/commands/mcp-install.js.map +1 -0
  116. package/dist/commands/opps.d.ts.map +1 -0
  117. package/dist/commands/opps.js +409 -0
  118. package/dist/commands/opps.js.map +1 -0
  119. package/dist/commands/perps.d.ts.map +1 -0
  120. package/dist/commands/perps.js +248 -0
  121. package/dist/commands/perps.js.map +1 -0
  122. package/dist/commands/portfolio.d.ts.map +1 -0
  123. package/dist/commands/portfolio.js +679 -0
  124. package/dist/commands/portfolio.js.map +1 -0
  125. package/dist/commands/positions.d.ts.map +1 -1
  126. package/dist/commands/positions.js +76 -47
  127. package/dist/commands/positions.js.map +1 -1
  128. package/dist/commands/predict.d.ts.map +1 -0
  129. package/dist/commands/predict.js +280 -0
  130. package/dist/commands/predict.js.map +1 -0
  131. package/dist/commands/predictions.d.ts.map +1 -0
  132. package/dist/commands/predictions.js +486 -0
  133. package/dist/commands/predictions.js.map +1 -0
  134. package/dist/commands/risk.d.ts.map +1 -0
  135. package/dist/commands/risk.js +225 -0
  136. package/dist/commands/risk.js.map +1 -0
  137. package/dist/commands/security.d.ts.map +1 -0
  138. package/dist/commands/security.js +244 -0
  139. package/dist/commands/security.js.map +1 -0
  140. package/dist/commands/sell.d.ts.map +1 -1
  141. package/dist/commands/sell.js +67 -34
  142. package/dist/commands/sell.js.map +1 -1
  143. package/dist/commands/send.d.ts.map +1 -0
  144. package/dist/commands/send.js +733 -0
  145. package/dist/commands/send.js.map +1 -0
  146. package/dist/commands/sign.d.ts.map +1 -0
  147. package/dist/commands/sign.js +1048 -0
  148. package/dist/commands/sign.js.map +1 -0
  149. package/dist/commands/swap.d.ts.map +1 -0
  150. package/dist/commands/swap.js +744 -0
  151. package/dist/commands/swap.js.map +1 -0
  152. package/dist/commands/system.d.ts.map +1 -0
  153. package/dist/commands/system.js +417 -0
  154. package/dist/commands/system.js.map +1 -0
  155. package/dist/commands/tools/index.d.ts.map +1 -0
  156. package/dist/commands/tools/index.js +2040 -0
  157. package/dist/commands/tools/index.js.map +1 -0
  158. package/dist/commands/trade.d.ts.map +1 -0
  159. package/dist/commands/trade.js +237 -0
  160. package/dist/commands/trade.js.map +1 -0
  161. package/dist/commands/transactions.d.ts.map +1 -1
  162. package/dist/commands/transactions.js +29 -17
  163. package/dist/commands/transactions.js.map +1 -1
  164. package/dist/commands/update.d.ts.map +1 -0
  165. package/dist/commands/update.js +429 -0
  166. package/dist/commands/update.js.map +1 -0
  167. package/dist/config.d.ts.map +1 -1
  168. package/dist/config.js +351 -40
  169. package/dist/config.js.map +1 -1
  170. package/dist/index.js +4524 -924
  171. package/dist/index.js.map +1 -1
  172. package/dist/interactive/art.d.ts.map +1 -1
  173. package/dist/interactive/art.js +33 -1
  174. package/dist/interactive/art.js.map +1 -1
  175. package/dist/interactive/shell.d.ts.map +1 -1
  176. package/dist/interactive/shell.js +467 -2652
  177. package/dist/interactive/shell.js.map +1 -1
  178. package/dist/mcp/context.d.ts.map +1 -0
  179. package/dist/mcp/context.js +211 -0
  180. package/dist/mcp/context.js.map +1 -0
  181. package/dist/mcp/onboarding.d.ts.map +1 -0
  182. package/dist/mcp/onboarding.js +266 -0
  183. package/dist/mcp/onboarding.js.map +1 -0
  184. package/dist/mcp/resources.d.ts.map +1 -0
  185. package/dist/mcp/resources.js +222 -0
  186. package/dist/mcp/resources.js.map +1 -0
  187. package/dist/mcp/server.d.ts.map +1 -1
  188. package/dist/mcp/server.js +51 -1
  189. package/dist/mcp/server.js.map +1 -1
  190. package/dist/mcp/tools.d.ts.map +1 -1
  191. package/dist/mcp/tools.js +4119 -169
  192. package/dist/mcp/tools.js.map +1 -1
  193. package/dist/mcp/types.d.ts.map +1 -1
  194. package/dist/types/agent-info.d.ts.map +1 -0
  195. package/dist/types/agent-info.js +11 -0
  196. package/dist/types/agent-info.js.map +1 -0
  197. package/dist/ui/components/ScrollableList.d.ts.map +1 -0
  198. package/dist/ui/components/ScrollableList.js +72 -0
  199. package/dist/ui/components/ScrollableList.js.map +1 -0
  200. package/dist/ui/components/ThemeProvider.d.ts.map +1 -0
  201. package/dist/ui/components/ThemeProvider.js +87 -0
  202. package/dist/ui/components/ThemeProvider.js.map +1 -0
  203. package/dist/ui/components/ThemedBox.d.ts.map +1 -0
  204. package/dist/ui/components/ThemedBox.js +24 -0
  205. package/dist/ui/components/ThemedBox.js.map +1 -0
  206. package/dist/ui/components/agent/ChatHeader.d.ts.map +1 -0
  207. package/dist/ui/components/agent/ChatHeader.js +39 -0
  208. package/dist/ui/components/agent/ChatHeader.js.map +1 -0
  209. package/dist/ui/components/agent/Header.d.ts.map +1 -0
  210. package/dist/ui/components/agent/Header.js +14 -0
  211. package/dist/ui/components/agent/Header.js.map +1 -0
  212. package/dist/ui/components/agent/Input.d.ts.map +1 -0
  213. package/dist/ui/components/agent/Input.js +23 -0
  214. package/dist/ui/components/agent/Input.js.map +1 -0
  215. package/dist/ui/components/agent/Output.d.ts.map +1 -0
  216. package/dist/ui/components/agent/Output.js +23 -0
  217. package/dist/ui/components/agent/Output.js.map +1 -0
  218. package/dist/ui/components/chat/TokenChatUI.d.ts.map +1 -0
  219. package/dist/ui/components/chat/TokenChatUI.js +133 -0
  220. package/dist/ui/components/chat/TokenChatUI.js.map +1 -0
  221. package/dist/ui/components/shell/ShellHeader.d.ts.map +1 -0
  222. package/dist/ui/components/shell/ShellHeader.js +31 -0
  223. package/dist/ui/components/shell/ShellHeader.js.map +1 -0
  224. package/dist/ui/components/shell/ShellInput.d.ts.map +1 -0
  225. package/dist/ui/components/shell/ShellInput.js +151 -0
  226. package/dist/ui/components/shell/ShellInput.js.map +1 -0
  227. package/dist/ui/components/shell/ShellOutput.d.ts.map +1 -0
  228. package/dist/ui/components/shell/ShellOutput.js +8 -0
  229. package/dist/ui/components/shell/ShellOutput.js.map +1 -0
  230. package/dist/ui/hooks/useChatWebSocket.d.ts.map +1 -0
  231. package/dist/ui/hooks/useChatWebSocket.js +76 -0
  232. package/dist/ui/hooks/useChatWebSocket.js.map +1 -0
  233. package/dist/ui/hooks/useCommandHistory.d.ts.map +1 -0
  234. package/dist/ui/hooks/useCommandHistory.js +70 -0
  235. package/dist/ui/hooks/useCommandHistory.js.map +1 -0
  236. package/dist/ui/hooks/useDebounce.d.ts.map +1 -0
  237. package/dist/ui/hooks/useDebounce.js +17 -0
  238. package/dist/ui/hooks/useDebounce.js.map +1 -0
  239. package/dist/ui/hooks/useLogStream.d.ts.map +1 -0
  240. package/dist/ui/hooks/useLogStream.js +20 -0
  241. package/dist/ui/hooks/useLogStream.js.map +1 -0
  242. package/dist/ui/hooks/useVirtualScroll.d.ts.map +1 -0
  243. package/dist/ui/hooks/useVirtualScroll.js +70 -0
  244. package/dist/ui/hooks/useVirtualScroll.js.map +1 -0
  245. package/dist/utils/admin.d.ts.map +1 -0
  246. package/dist/utils/admin.js +144 -0
  247. package/dist/utils/admin.js.map +1 -0
  248. package/dist/utils/autoSetup.d.ts.map +1 -0
  249. package/dist/utils/autoSetup.js +252 -0
  250. package/dist/utils/autoSetup.js.map +1 -0
  251. package/dist/utils/build-constants.d.ts.map +1 -0
  252. package/dist/utils/build-constants.js +10 -0
  253. package/dist/utils/build-constants.js.map +1 -0
  254. package/dist/utils/constants.d.ts.map +1 -1
  255. package/dist/utils/errors.d.ts.map +1 -1
  256. package/dist/utils/errors.js +10 -1
  257. package/dist/utils/errors.js.map +1 -1
  258. package/dist/utils/formatting.d.ts.map +1 -1
  259. package/dist/utils/formatting.js +46 -9
  260. package/dist/utils/formatting.js.map +1 -1
  261. package/dist/utils/llm-cli-config.d.ts.map +1 -0
  262. package/dist/utils/llm-cli-config.js +963 -0
  263. package/dist/utils/llm-cli-config.js.map +1 -0
  264. package/dist/utils/llm-cli-detector.d.ts.map +1 -0
  265. package/dist/utils/llm-cli-detector.js +202 -0
  266. package/dist/utils/llm-cli-detector.js.map +1 -0
  267. package/dist/utils/loading.d.ts.map +1 -1
  268. package/dist/utils/loading.js +25 -3
  269. package/dist/utils/loading.js.map +1 -1
  270. package/dist/utils/maintenance.d.ts.map +1 -0
  271. package/dist/utils/maintenance.js +17 -0
  272. package/dist/utils/maintenance.js.map +1 -0
  273. package/dist/utils/mcp-config.d.ts.map +1 -0
  274. package/dist/utils/mcp-config.js +77 -0
  275. package/dist/utils/mcp-config.js.map +1 -0
  276. package/dist/utils/privateKeyPrompt.d.ts.map +1 -1
  277. package/dist/utils/privateKeyPrompt.js +308 -129
  278. package/dist/utils/privateKeyPrompt.js.map +1 -1
  279. package/dist/utils/process-cleanup.d.ts.map +1 -0
  280. package/dist/utils/process-cleanup.js +136 -0
  281. package/dist/utils/process-cleanup.js.map +1 -0
  282. package/dist/utils/retry.d.ts.map +1 -0
  283. package/dist/utils/retry.js +56 -0
  284. package/dist/utils/retry.js.map +1 -0
  285. package/dist/utils/rpc-helpers.d.ts.map +1 -0
  286. package/dist/utils/rpc-helpers.js +70 -0
  287. package/dist/utils/rpc-helpers.js.map +1 -0
  288. package/dist/utils/rpc-transport.d.ts.map +1 -0
  289. package/dist/utils/rpc-transport.js +87 -0
  290. package/dist/utils/rpc-transport.js.map +1 -0
  291. package/dist/utils/shell-setup.d.ts.map +1 -0
  292. package/dist/utils/shell-setup.js +531 -0
  293. package/dist/utils/shell-setup.js.map +1 -0
  294. package/dist/utils/status.d.ts.map +1 -1
  295. package/dist/utils/status.js +34 -5
  296. package/dist/utils/status.js.map +1 -1
  297. package/dist/utils/token-resolver.d.ts.map +1 -1
  298. package/dist/utils/token-resolver.js +51 -8
  299. package/dist/utils/token-resolver.js.map +1 -1
  300. package/dist/utils/x402-caller.d.ts.map +1 -0
  301. package/dist/utils/x402-caller.js +17 -0
  302. package/dist/utils/x402-caller.js.map +1 -0
  303. package/docs/README.md +28 -0
  304. package/docs/agent/README.md +18 -0
  305. package/docs/api/README.md +41 -0
  306. package/docs/cli/README.md +42 -0
  307. package/docs/guides/README.md +26 -0
  308. package/docs/implementation/README.md +18 -0
  309. package/docs/planning/README.md +19 -0
  310. package/docs/testing/README.md +15 -0
  311. package/docs/ux/README.md +16 -0
  312. package/issues.txt +2 -0
  313. package/package.json +24 -9
  314. package/scripts/cat-spin.sh +417 -0
  315. package/scripts/deprecate-rc-versions.js +58 -0
  316. package/scripts/inject-build-constants.js +43 -0
  317. package/scripts/monitor-foobar.js +117 -0
  318. package/swap.logs +61 -0
  319. package/swapping.txt +108 -0
  320. package/test.txt +12 -0
  321. package/tests/fixtures/test-data.json +16 -0
  322. package/Screenshot 2025-12-21 at 8.56.02/342/200/257PM.png +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-cli-config.js","sourceRoot":"","sources":["../../src/utils/llm-cli-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;;;;;;GAOG;AACH,SAAS,eAAe;IACvB,IAAI,CAAC;QACJ,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,kBAAkB;IAI1B,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,OAAO;QACN,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;QACrC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC;QACzE,qFAAqF;KACrF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,UAAkB;IAElB,IAAI,CAAC;QACJ,iCAAiC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,kDAAkD;QAClD,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC;gBACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACR,8DAA8D;gBAC9D,MAAM,GAAG,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACxB,CAAC;QAED,6CAA6C;QAC7C,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,kBAAkB,EAAE,CAAC;QACjD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAEvE,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,UAAkB;IAElB,IAAI,CAAC;QACJ,iCAAiC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,kDAAkD;QAClD,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC;gBACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACR,mCAAmC;gBACnC,MAAM,GAAG,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACxB,CAAC;QAED,6CAA6C;QAC7C,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,kBAAkB,EAAE,CAAC;QACjD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAEvE,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,UAAkB;IAElB,IAAI,CAAC;QACJ,iCAAiC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,kDAAkD;QAClD,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC;gBACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACR,mCAAmC;gBACnC,MAAM,GAAG,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACxB,CAAC;QAED,6CAA6C;QAC7C,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,kBAAkB,EAAE,CAAC;QACjD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAEvE,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;QAC7D,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACpC,IAAI,CAAC;QACJ,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAC5D,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;QAElD,IAAI,CAAC;YACJ,wCAAwC;YACxC,QAAQ,CACP,yCAAyC,OAAO,aAAa,IAAI,GAAG,EACpE,EAAE,KAAK,EAAE,QAAQ,EAAE,CACnB,CAAC;YACF,OAAO,IAAI,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACR,0EAA0E;YAC1E,wCAAwC;YACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;YAChF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC3C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE7C,kDAAkD;YAClD,IAAI,MAAM,GAAQ,EAAE,CAAC;YACrB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACrD,IAAI,CAAC;oBACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC9B,CAAC;gBAAC,MAAM,CAAC;oBACR,MAAM,GAAG,EAAE,CAAC;gBACb,CAAC;YACF,CAAC;YAED,kCAAkC;YAClC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;YACxB,CAAC;YAED,6CAA6C;YAC7C,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,kBAAkB,EAAE,CAAC;YACjD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEvE,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,UAAkB;IAElB,IAAI,CAAC;QACJ,iCAAiC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,kDAAkD;QAClD,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC;gBACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACR,mCAAmC;gBACnC,MAAM,GAAG,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACxB,CAAC;QAED,6CAA6C;QAC7C,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,kBAAkB,EAAE,CAAC;QACjD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAEvE,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,SAAS,CAAC,OAAe;IACjC,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,cAAc,GAAkB,IAAI,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,gCAAgC;QAChC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAElD,uCAAuC;QACvC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACrD,IAAI,YAAY,EAAE,CAAC;YAClB,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;YAC7B,CAAC;YACD,SAAS;QACV,CAAC;QAED,0BAA0B;QAC1B,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5D,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,KAAK,GAAQ,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEzC,mCAAmC;YACnC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACjD,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACjD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YACD,qCAAqC;iBAChC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;YAChG,CAAC;YACD,4DAA4D;iBACvD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxC,KAAK,GAAG,EAAE,CAAC;gBACX,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;oBAChD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACpD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBACZ,kCAAkC;wBAClC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;oBAC1C,CAAC;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACrC,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,aAAa,CAAC,GAAQ;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACtD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrD,uBAAuB;YACvB,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;YAE3B,wCAAwC;YACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC/B,8BAA8B;oBAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC;gBACnC,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,0CAA0C;oBAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnE,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACxD,+CAA+C;oBAC/C,uEAAuE;oBACvE,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;yBACxC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;yBACxC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACb,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,YAAY,IAAI,CAAC,CAAC;gBAC5C,CAAC;YACF,CAAC;YACD,oDAAoD;YACpD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,UAAkB;IAElB,IAAI,CAAC;QACJ,2CAA2C;QAC3C,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,0BAA0B,CAAC;gBAEjE,wCAAwC;gBACxC,QAAQ,CACP,4BAA4B,OAAO,IAAI,IAAI,EAAE,EAC7C,EAAE,KAAK,EAAE,QAAQ,EAAE,CACnB,CAAC;gBACF,OAAO,IAAI,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACR,6DAA6D;YAC9D,CAAC;QACF,CAAC;QAED,yCAAyC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,uDAAuD;QACvD,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC;gBACJ,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACR,mCAAmC;gBACnC,MAAM,GAAG,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QAED,4EAA4E;QAC5E,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;QACzB,CAAC;QAED,6CAA6C;QAC7C,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACvC,qDAAqD;QACrD,MAAM,CAAC,WAAW,CAAC,OAAO,GAAG;YAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,qDAAqD;SACrD,CAAC;QACF,qBAAqB;QACrB,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,aAAqB;IAErB,IAAI,CAAC;QACJ,2CAA2C;QAC3C,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,0BAA0B,CAAC;gBAEjE,wCAAwC;gBACxC,QAAQ,CACP,qCAAqC,OAAO,aAAa,IAAI,GAAG,EAChE,EAAE,KAAK,EAAE,QAAQ,EAAE,CACnB,CAAC;gBACF,OAAO,IAAI,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACR,6DAA6D;YAC9D,CAAC;QACF,CAAC;QAED,mDAAmD;QACnD,oCAAoC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACjD,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhD,4DAA4D;QAC5D,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACvC,MAAM,eAAe,GAAG;YACvB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE;gBACX,OAAO,EAAE,SAAS;aAClB;SACD,CAAC;QAEF,+BAA+B;QAC/B,EAAE,CAAC,aAAa,CACf,aAAa,EACb,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,EACxC,OAAO,CACP,CAAC;QAEF,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,OAAe;IACrC,IAAI,CAAC;QACJ,QAAQ,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,UAAkB;IAElB,IAAI,CAAC;QACJ,iCAAiC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,kDAAkD;QAClD,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC;gBACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACR,mCAAmC;gBACnC,MAAM,GAAG,EAAE,CAAC;YACb,CAAC;QACF,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACxB,CAAC;QAED,6CAA6C;QAC7C,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,kBAAkB,EAAE,CAAC;QACjD,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAEvE,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,GAAgB;IAEhB,8DAA8D;IAC9D,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC;QAChB,KAAK,gBAAgB;YACpB,OAAO,MAAM,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrD,KAAK,YAAY;YAChB,OAAO,MAAM,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,KAAK,QAAQ;YACZ,OAAO,MAAM,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C,KAAK,eAAe;YACnB,OAAO,MAAM,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnD,KAAK,SAAS;YACb,OAAO,MAAM,eAAe,EAAE,CAAC;QAChC,KAAK,YAAY;YAChB,OAAO,MAAM,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,KAAK,OAAO;YACX,OAAO,MAAM,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,KAAK,QAAQ;YACZ,OAAO,MAAM,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC9C;YACC,gCAAgC;YAChC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,UAAkB;IAC/C,IAAI,CAAC;QACJ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,CAAC,mCAAmC;QACjD,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,IAAI,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACR,mCAAmC;YACnC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,8CAA8C;QAC9C,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACpD,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;YAEjC,wCAAwC;YACxC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjD,OAAO,MAAM,CAAC,UAAU,CAAC;YAC1B,CAAC;YAED,gCAAgC;YAChC,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,UAAkB;IAC/C,IAAI,CAAC;QACJ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,CAAC,mCAAmC;QACjD,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,IAAI,CAAC;YACJ,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACR,mCAAmC;YACnC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,+CAA+C;QAC/C,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACtD,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;YAElC,yCAAyC;YACzC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,OAAO,MAAM,CAAC,WAAW,CAAC;YAC3B,CAAC;YAED,8BAA8B;YAC9B,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,aAAqB;IACnD,IAAI,CAAC;QACJ,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC7B,iDAAiD;YACjD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACjD,IAAI,CAAC;gBACJ,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,mCAAmC;YACpC,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB;IACxB,IAAI,CAAC;QACJ,wBAAwB;QACxB,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACJ,QAAQ,CAAC,+BAA+B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC/D,OAAO,IAAI,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACR,qCAAqC;YACtC,CAAC;QACF,CAAC;QAED,iCAAiC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAChF,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,UAAkB;IAC1C,IAAI,CAAC;QACJ,wBAAwB;QACxB,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACJ,QAAQ,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACR,qCAAqC;YACtC,CAAC;QACF,CAAC;QAED,iCAAiC;QACjC,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,aAAqB;IAC9C,IAAI,CAAC;QACJ,wBAAwB;QACxB,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACJ,QAAQ,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC3D,OAAO,IAAI,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACR,qCAAqC;YACtC,CAAC;QACF,CAAC;QAED,iCAAiC;QACjC,OAAO,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAgB;IACtD,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC;QAChB,KAAK,gBAAgB,CAAC;QACtB,KAAK,QAAQ,CAAC;QACd,KAAK,eAAe,CAAC;QACrB,KAAK,YAAY;YAChB,OAAO,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,KAAK,SAAS;YACb,OAAO,gBAAgB,EAAE,CAAC;QAC3B,KAAK,OAAO;YACX,OAAO,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxC,KAAK,QAAQ;YACZ,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzC;YACC,OAAO,KAAK,CAAC;IACf,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,0BAA0B;IAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,IAAI,CACf,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EACtB,SAAS,EACT,qBAAqB,EACrB,QAAQ,EACR,4BAA4B,CAC5B,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,IAAI,CACf,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EACzB,QAAQ,EACR,4BAA4B,CAC5B,CAAC;IACH,CAAC;SAAM,CAAC;QACP,OAAO,IAAI,CAAC,IAAI,CACf,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EACtB,SAAS,EACT,QAAQ,EACR,4BAA4B,CAC5B,CAAC;IACH,CAAC;AACF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAG/C,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACjD,MAAM,OAAO,GAA8C,EAAE,CAAC;IAE9D,qCAAqC;IACrC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO;aACP,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,KAAK;aACd,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,yEAAyE;IACzE,yDAAyD;IACzD,MAAM,YAAY,GAAG;QACpB;YACC,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,0BAA0B,EAAE;YAClC,IAAI,EAAE,MAAe;SACrB;QACD;YACC,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC;YAC9D,IAAI,EAAE,MAAe;SACrB;QACD;YACC,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,gBAAgB,EAAE,UAAU,CAAC;YACrE,IAAI,EAAE,MAAe;SACrB;QACD;YACC,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC;YAC9D,IAAI,EAAE,MAAe;SACrB;QACD;YACC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC;YAClE,IAAI,EAAE,MAAe;SACrB;QACD;YACC,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC;YAChE,IAAI,EAAE,MAAe;SACrB;QACD;YACC,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CACd,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EACtB,SAAS,EACT,YAAY,EACZ,SAAS,EACT,uBAAuB,CACvB;YACD,IAAI,EAAE,WAAoB;SAC1B;KACD,CAAC;IAEF,yDAAyD;IACzD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACxC,gDAAgD;QAChD,MAAM,gBAAgB,GAAG,YAAY,CAAC,IAAI,CACzC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,WAAW,CAAC,IAAI,CAC5C,CAAC;QAEF,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC;gBACJ,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACjC,OAAO,GAAG,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACxC,OAAO,GAAG,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClD,CAAC;qBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC7C,OAAO,GAAG,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACnD,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,OAAO;iBACP,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,OAAO,EAAE,KAAK;iBACd,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB;IAClC,IAAI,CAAC;QACJ,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EACtB,SAAS,EACT,SAAS,EACT,UAAU,CACV,CAAC;QAEF,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-cli-detector.d.ts","sourceRoot":"","sources":["../../src/utils/llm-cli-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAOH;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACvC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAwDD;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAqIlE"}
@@ -0,0 +1,202 @@
1
+ /**
2
+ * LLM CLI Detection System
3
+ *
4
+ * This module detects installed LLM CLI tools that support MCP (Model Context Protocol) integration.
5
+ * It scans the system for:
6
+ * 1. CLI binaries in PATH (e.g., "codex", "gemini", "llm")
7
+ * 2. Configuration file locations (platform-specific)
8
+ * 3. Config directory existence
9
+ *
10
+ * Detection Strategy:
11
+ * - For each LLM tool, check both CLI availability AND config file locations
12
+ * - Some tools (like Claude Desktop) are file-only (no CLI)
13
+ * - Some tools (like Codex, Gemini) support both CLI commands and file-based config
14
+ * - Detection is non-intrusive - only checks for existence, doesn't modify anything
15
+ *
16
+ * Supported LLM Tools:
17
+ * 1. Claude Desktop - Desktop app (file-based config only)
18
+ * 2. Cursor IDE - Code editor (file-based config, workspace or global)
19
+ * 3. LLM Tools MCP - Simon Willison's LLM CLI with MCP plugin
20
+ * 4. MCP-Use CLI - Standalone MCP client CLI
21
+ * 5. MCP Client CLI - Another MCP client implementation
22
+ * 6. Codex CLI - OpenAI's Codex CLI (supports CLI + TOML file)
23
+ * 7. Gemini CLI - Google's Gemini CLI (supports CLI + extension JSON)
24
+ */
25
+ import fs from "fs";
26
+ import path from "path";
27
+ import os from "os";
28
+ import { execSync } from "child_process";
29
+ /**
30
+ * Check if a command exists in PATH
31
+ *
32
+ * Uses `which` command to check if a CLI tool is available in the system PATH.
33
+ * This is used to detect CLI-based tools like Codex, Gemini, etc.
34
+ *
35
+ * @param command - Command name to check (e.g., "codex", "gemini")
36
+ * @returns true if command exists in PATH, false otherwise
37
+ */
38
+ function commandExists(command) {
39
+ try {
40
+ // Use `which` to find command in PATH
41
+ execSync(`which ${command}`, { stdio: "ignore" });
42
+ return true;
43
+ }
44
+ catch {
45
+ // Command not found in PATH
46
+ return false;
47
+ }
48
+ }
49
+ /**
50
+ * Get platform-specific Claude Desktop config path
51
+ *
52
+ * Claude Desktop stores its config in different locations based on OS:
53
+ * - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
54
+ * - Windows: %APPDATA%/Claude/claude_desktop_config.json
55
+ * - Linux: ~/.config/Claude/claude_desktop_config.json
56
+ *
57
+ * @returns Platform-appropriate config file path
58
+ */
59
+ function getClaudeDesktopConfigPath() {
60
+ const platform = process.platform;
61
+ if (platform === "darwin") {
62
+ // macOS: Application Support directory
63
+ return path.join(os.homedir(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
64
+ }
65
+ else if (platform === "win32") {
66
+ // Windows: APPDATA environment variable
67
+ return path.join(process.env.APPDATA || "", "Claude", "claude_desktop_config.json");
68
+ }
69
+ else {
70
+ // Linux and other Unix-like systems: ~/.config
71
+ return path.join(os.homedir(), ".config", "Claude", "claude_desktop_config.json");
72
+ }
73
+ }
74
+ /**
75
+ * Detect installed LLM CLI tools that support MCP integration
76
+ *
77
+ * Scans the system for all supported LLM CLI tools by checking:
78
+ * 1. CLI command availability (for tools with CLI interfaces)
79
+ * 2. Configuration file/directory existence (for file-based tools)
80
+ *
81
+ * Detection is done in parallel for all tools. Each tool has its own detection logic
82
+ * based on how it's typically installed and configured.
83
+ *
84
+ * @returns Array of detected LLM tools with their configuration metadata
85
+ */
86
+ export async function detectInstalledLlms() {
87
+ const detected = [];
88
+ // 1. Claude Desktop - Desktop application (no CLI, file-based only)
89
+ // Check for config file or config directory existence
90
+ const claudeConfigPath = getClaudeDesktopConfigPath();
91
+ if (fs.existsSync(claudeConfigPath) || fs.existsSync(path.dirname(claudeConfigPath))) {
92
+ detected.push({
93
+ id: "claude-desktop",
94
+ name: "Claude Desktop",
95
+ configPath: claudeConfigPath,
96
+ installMethod: "file", // No CLI, only file-based config
97
+ configType: "json",
98
+ });
99
+ }
100
+ // 2. Cursor IDE - Code editor with MCP support
101
+ // Check both global (~/.cursor/mcp.json) and workspace (.cursor/mcp.json) configs
102
+ // Prefer global if both exist
103
+ const cursorGlobalPath = path.join(os.homedir(), ".cursor", "mcp.json");
104
+ const cursorWorkspacePath = path.join(process.cwd(), ".cursor", "mcp.json");
105
+ if (fs.existsSync(cursorGlobalPath) || fs.existsSync(path.dirname(cursorGlobalPath))) {
106
+ detected.push({
107
+ id: "cursor",
108
+ name: "Cursor IDE",
109
+ configPath: cursorGlobalPath,
110
+ installMethod: "file",
111
+ configType: "json",
112
+ });
113
+ }
114
+ else if (fs.existsSync(cursorWorkspacePath) || fs.existsSync(path.dirname(cursorWorkspacePath))) {
115
+ // Fall back to workspace config if global doesn't exist
116
+ detected.push({
117
+ id: "cursor",
118
+ name: "Cursor IDE (Workspace)",
119
+ configPath: cursorWorkspacePath,
120
+ installMethod: "file",
121
+ configType: "json",
122
+ });
123
+ }
124
+ // 3. LLM by Simon Willison (requires llm-tools-mcp plugin)
125
+ // Requires both: "llm" CLI command AND llm-tools-mcp plugin config directory
126
+ const llmToolsMcpPath = path.join(os.homedir(), ".llm-tools-mcp", "mcp.json");
127
+ if (commandExists("llm") && (fs.existsSync(llmToolsMcpPath) || fs.existsSync(path.dirname(llmToolsMcpPath)))) {
128
+ detected.push({
129
+ id: "llm-tools-mcp",
130
+ name: "LLM Tools MCP",
131
+ configPath: llmToolsMcpPath,
132
+ installMethod: "file",
133
+ configType: "json",
134
+ });
135
+ }
136
+ // 4. MCP-Use CLI - Standalone MCP client
137
+ // Detection based on CLI command availability
138
+ if (commandExists("mcp-use")) {
139
+ detected.push({
140
+ id: "mcp-use",
141
+ name: "MCP-Use CLI",
142
+ configPath: path.join(os.homedir(), ".mcp-use", "config.json"),
143
+ installMethod: "cli", // Primarily CLI-based, but can fall back to file
144
+ configType: "json",
145
+ cliCommand: "mcp-use",
146
+ });
147
+ }
148
+ // 5. MCP Client CLI - Another MCP client implementation
149
+ // Check for CLI command OR config file existence
150
+ const mcpClientPath = path.join(os.homedir(), ".llm", "config.json");
151
+ if (commandExists("mcp-client") || fs.existsSync(mcpClientPath) || fs.existsSync(path.dirname(mcpClientPath))) {
152
+ detected.push({
153
+ id: "mcp-client",
154
+ name: "MCP Client CLI",
155
+ configPath: mcpClientPath,
156
+ installMethod: "file",
157
+ configType: "json",
158
+ });
159
+ }
160
+ // 6. Codex CLI (OpenAI) - Supports both CLI commands and TOML file config
161
+ // Check for CLI command OR config directory/file existence
162
+ const codexConfigPath = path.join(os.homedir(), ".codex", "config.toml");
163
+ if (commandExists("codex") || fs.existsSync(codexConfigPath) || fs.existsSync(path.dirname(codexConfigPath))) {
164
+ detected.push({
165
+ id: "codex",
166
+ name: "Codex CLI",
167
+ configPath: codexConfigPath,
168
+ installMethod: "both", // Supports both CLI and file-based config
169
+ configType: "toml", // Uses TOML format instead of JSON
170
+ cliCommand: "codex",
171
+ });
172
+ }
173
+ // 7. Gemini CLI (Google) - Supports both CLI commands and extension JSON files
174
+ // Uses extension-based architecture with JSON files in extensions directory
175
+ const geminiExtensionPath = path.join(os.homedir(), ".gemini", "extensions", "httpcat", "gemini-extension.json");
176
+ if (commandExists("gemini") || fs.existsSync(path.dirname(geminiExtensionPath))) {
177
+ detected.push({
178
+ id: "gemini",
179
+ name: "Gemini CLI",
180
+ configPath: geminiExtensionPath,
181
+ installMethod: "both", // Supports both CLI and file-based config
182
+ configType: "extension", // Uses extension JSON format
183
+ cliCommand: "gemini",
184
+ });
185
+ }
186
+ // 8. Claude CLI (Anthropic) - CLI tool for Claude
187
+ // Check for CLI command OR config file existence
188
+ // Claude CLI likely uses similar config format to Claude Desktop
189
+ const claudeCliConfigPath = path.join(os.homedir(), ".claude", "config.json");
190
+ if (commandExists("claude") || fs.existsSync(claudeCliConfigPath) || fs.existsSync(path.dirname(claudeCliConfigPath))) {
191
+ detected.push({
192
+ id: "claude-cli",
193
+ name: "Claude CLI",
194
+ configPath: claudeCliConfigPath,
195
+ installMethod: "both", // Supports both CLI and file-based config
196
+ configType: "json",
197
+ cliCommand: "claude",
198
+ });
199
+ }
200
+ return detected;
201
+ }
202
+ //# sourceMappingURL=llm-cli-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-cli-detector.js","sourceRoot":"","sources":["../../src/utils/llm-cli-detector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"loading.d.ts","sourceRoot":"","sources":["../../src/utils/loading.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAU/B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC7B;AA2BD;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,CAAC,CAAC,CAiDZ;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,GAAG,GAAG,IAAI,CAExE"}
1
+ {"version":3,"file":"loading.d.ts","sourceRoot":"","sources":["../../src/utils/loading.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAW/B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA2BD;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,CAAC,CAAC,CAoEZ;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,GAAG,GAAG,IAAI,CAExE"}
@@ -1,6 +1,7 @@
1
1
  import ora from "ora";
2
2
  import chalk from "chalk";
3
3
  import { HttpcatError } from "../client.js";
4
+ import { clearStatusLine } from "./status.js";
4
5
  // Custom cat-themed spinner frames
5
6
  const CAT_SPINNER_FRAMES = ["🐱 ", " 🐱 ", " 🐱 ", " 🐱", " 🐱 ", " 🐱 "];
6
7
  // Fallback spinner for terminals that don't support emoji
@@ -45,7 +46,17 @@ export async function withLoading(operation, options) {
45
46
  }
46
47
  const result = await operation();
47
48
  if (spinner) {
48
- spinner.succeed();
49
+ if (options.clearOnSuccess) {
50
+ // Stop spinner without showing success message
51
+ spinner.stop();
52
+ // Clear the spinner line first (ora might leave text on the line)
53
+ process.stdout.write("\r\x1b[K");
54
+ // Clear all status lines (including any added during the operation, like "Found token")
55
+ clearStatusLine();
56
+ }
57
+ else {
58
+ spinner.succeed();
59
+ }
49
60
  }
50
61
  return result;
51
62
  }
@@ -53,7 +64,8 @@ export async function withLoading(operation, options) {
53
64
  // Special handling for 402 errors: x402-fetch handles payments automatically,
54
65
  // but there may be a brief moment where the error surfaces before the payment completes.
55
66
  // If we get a 402, wait a moment and retry once to give x402-fetch time to complete the payment.
56
- if (error instanceof HttpcatError && error.status === 402) {
67
+ // Skip retry if disableRetry is true
68
+ if (error instanceof HttpcatError && error.status === 402 && !options.disableRetry) {
57
69
  // Don't mark spinner as failed yet - we'll retry
58
70
  // Wait a short time for x402-fetch to complete payment processing
59
71
  await new Promise(resolve => setTimeout(resolve, 1500));
@@ -62,7 +74,17 @@ export async function withLoading(operation, options) {
62
74
  const retryResult = await operation();
63
75
  // If retry succeeded, update spinner to success (spinner is still running)
64
76
  if (spinner) {
65
- spinner.succeed();
77
+ if (options.clearOnSuccess) {
78
+ // Stop spinner without showing success message
79
+ spinner.stop();
80
+ // Clear the spinner line first (ora might leave text on the line)
81
+ process.stdout.write("\r\x1b[K");
82
+ // Clear all status lines (including any added during the operation, like "Found token")
83
+ clearStatusLine();
84
+ }
85
+ else {
86
+ spinner.succeed();
87
+ }
66
88
  }
67
89
  return retryResult;
68
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loading.js","sourceRoot":"","sources":["../../src/utils/loading.ts"],"names":[],"mappings":"AAAA,OAAO,GAAY,MAAM,KAAK,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,mCAAmC;AACnC,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAElF,0DAA0D;AAC1D,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AASnF;;;GAGG;AACH,SAAS,aAAa,CAAC,OAAuB;IAC5C,2CAA2C;IAC3C,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B;IAC3B,MAAM,MAAM,GACV,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAE3E,MAAM,OAAO,GAAG,GAAG,CAAC;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,mBAAmB;QACtD,OAAO,EAAE;YACP,QAAQ,EAAE,GAAG,EAAE,uCAAuC;YACtD,MAAM,EAAE,MAAM;SACf;KACF,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAA2B,EAC3B,OAAuB;IAEvB,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QAEjC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,8EAA8E;QAC9E,yFAAyF;QACzF,iGAAiG;QACjG,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1D,iDAAiD;YACjD,kEAAkE;YAClE,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAExD,IAAI,CAAC;gBACH,2BAA2B;gBAC3B,MAAM,WAAW,GAAG,MAAM,SAAS,EAAE,CAAC;gBAEtC,2EAA2E;gBAC3E,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,CAAC;gBAED,OAAO,WAAW,CAAC;YACrB,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,8DAA8D;gBAC9D,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,CAAC;gBACD,MAAM,UAAU,CAAC;YACnB,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAuB;IAC1D,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"loading.js","sourceRoot":"","sources":["../../src/utils/loading.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../../src/utils/maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CASlF"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Check if the API is currently in maintenance mode by querying the health endpoint
3
+ * @param client - HttpcatClient instance to use for the health check
4
+ * @returns Promise<boolean> - true if maintenance mode is active, false otherwise
5
+ */
6
+ export async function checkMaintenanceMode(client) {
7
+ try {
8
+ const health = await client.get('/health');
9
+ return health.maintenance_mode === true || health.status === 'maintenance';
10
+ }
11
+ catch (error) {
12
+ // If health check fails, assume API is down (not maintenance)
13
+ // This prevents false positives when the API is completely unavailable
14
+ return false;
15
+ }
16
+ }
17
+ //# sourceMappingURL=maintenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/utils/maintenance.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAqB;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,gBAAgB,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC;IAC7E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,8DAA8D;QAC9D,uEAAuE;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../src/utils/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACzB,UAAU,EAAE;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;KAC/B,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CA6BxD"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * MCP Configuration File Generator
3
+ *
4
+ * This module creates the base MCP configuration file (mcp.json) in the httpcat config directory.
5
+ * This file serves as a reference configuration that can be used by MCP clients or copied to
6
+ * other LLM CLI tool configurations.
7
+ *
8
+ * The configuration file format follows the MCP (Model Context Protocol) standard:
9
+ * - mcpServers: Object containing MCP server definitions
10
+ * - Each server has: command, args, and optional env variables
11
+ * - The private key is NOT included - MCP server reads from config file instead
12
+ */
13
+ import fs from "fs";
14
+ import path from "path";
15
+ import os from "os";
16
+ import { execSync } from "child_process";
17
+ /**
18
+ * Create MCP configuration file in the config directory
19
+ *
20
+ * This function creates ~/.config/httpcat/mcp.json with the httpcat MCP server configuration.
21
+ * The file can be used as a reference or imported by other LLM CLI tools.
22
+ *
23
+ * Flow:
24
+ * 1. Determine config directory (defaults to ~/.config/httpcat)
25
+ * 2. Check if httpcat is globally installed (affects command/args)
26
+ * 3. Create config object with appropriate command and args
27
+ * 4. Note: Private key is NOT included - MCP server reads from config file instead
28
+ * 5. Write JSON file to disk
29
+ *
30
+ * @param configDir - Optional config directory path (defaults to ~/.config/httpcat)
31
+ */
32
+ export function createMcpConfig(configDir) {
33
+ // Use provided directory or default to ~/.config/httpcat
34
+ const configPath = configDir || path.join(os.homedir(), ".config", "httpcat");
35
+ const mcpConfigPath = path.join(configPath, "mcp.json");
36
+ // Ensure config directory exists (create if it doesn't)
37
+ fs.mkdirSync(configPath, { recursive: true });
38
+ // Check if httpcat is globally installed to determine command format
39
+ // Global install: "httpcat mcp start"
40
+ // NPM package: "npx -y httpcat-cli mcp start"
41
+ const isGlobal = isHttpcatGlobal();
42
+ // Build MCP configuration object following MCP standard format
43
+ // Note: No HTTPCAT_PRIVATE_KEY in env - server reads from ~/.config/httpcat/config.json
44
+ const mcpConfig = {
45
+ mcpServers: {
46
+ httpcat: {
47
+ // Use "httpcat" if globally installed, otherwise "npx"
48
+ command: isGlobal ? "httpcat" : "npx",
49
+ // Args differ based on installation method
50
+ args: isGlobal ? ["mcp", "start"] : ["-y", "httpcat-cli", "mcp", "start"],
51
+ // No env vars - private key is read from config file by MCP server
52
+ },
53
+ },
54
+ };
55
+ // Write config file with pretty-printed JSON (2-space indent)
56
+ fs.writeFileSync(mcpConfigPath, JSON.stringify(mcpConfig, null, 2), "utf-8");
57
+ }
58
+ /**
59
+ * Check if httpcat is globally installed
60
+ *
61
+ * Uses `which` command to check if "httpcat" is available in PATH.
62
+ * This determines whether to use "httpcat" directly or "npx httpcat-cli".
63
+ *
64
+ * @returns true if httpcat command exists in PATH, false otherwise
65
+ */
66
+ function isHttpcatGlobal() {
67
+ try {
68
+ // Check if "httpcat" command exists in system PATH
69
+ execSync("which httpcat", { stdio: "ignore" });
70
+ return true;
71
+ }
72
+ catch {
73
+ // Command not found - httpcat is not globally installed
74
+ return false;
75
+ }
76
+ }
77
+ //# sourceMappingURL=mcp-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../src/utils/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAsBzC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,SAAkB;IACjD,yDAAyD;IACzD,MAAM,UAAU,GAAG,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAExD,wDAAwD;IACxD,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,qEAAqE;IACrE,sCAAsC;IACtC,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IAEnC,+DAA+D;IAC/D,wFAAwF;IACxF,MAAM,SAAS,GAAc;QAC5B,UAAU,EAAE;YACX,OAAO,EAAE;gBACR,uDAAuD;gBACvD,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;gBACrC,2CAA2C;gBAC3C,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC;gBACzE,mEAAmE;aACnE;SACD;KACD,CAAC;IAEF,8DAA8D;IAC9D,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe;IACvB,IAAI,CAAC;QACJ,mDAAmD;QACnD,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,wDAAwD;QACxD,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"privateKeyPrompt.d.ts","sourceRoot":"","sources":["../../src/utils/privateKeyPrompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAehC;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,CAwExD;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC,CA6ChE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CA2B9D;AAsOD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxD"}
1
+ {"version":3,"file":"privateKeyPrompt.d.ts","sourceRoot":"","sources":["../../src/utils/privateKeyPrompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAmBhC;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,CA8ExD;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,CAAC,CAqDhE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CA2B9D;AA4cD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxD"}