@shareai-lab/kode 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +649 -25
  3. package/README.zh-CN.md +579 -0
  4. package/cli-acp.js +3 -17
  5. package/cli.js +5 -7
  6. package/dist/chunks/Doctor-M3J7GRTJ.js +12 -0
  7. package/dist/chunks/LogList-ISWZ6DDD.js +121 -0
  8. package/dist/chunks/LogList-ISWZ6DDD.js.map +7 -0
  9. package/dist/chunks/REPL-RQ6LO6S7.js +56 -0
  10. package/dist/chunks/ResumeConversation-6DMVBEGH.js +56 -0
  11. package/dist/chunks/agentLoader-FCRG3TFJ.js +31 -0
  12. package/dist/{agentsValidate-XP3CFN6F.js → chunks/agentsValidate-PEWMYN4Q.js} +97 -69
  13. package/dist/chunks/agentsValidate-PEWMYN4Q.js.map +7 -0
  14. package/dist/{ask-3G5H5KD5.js → chunks/ask-D7SOHJ6Z.js} +36 -44
  15. package/dist/chunks/ask-D7SOHJ6Z.js.map +7 -0
  16. package/dist/chunks/autoUpdater-CNESBOKO.js +19 -0
  17. package/dist/{chunk-EH34V7CY.js → chunks/chunk-2JN5MY67.js} +12 -14
  18. package/dist/chunks/chunk-2JN5MY67.js.map +7 -0
  19. package/dist/chunks/chunk-2QONJ5MG.js +14 -0
  20. package/dist/chunks/chunk-2QONJ5MG.js.map +7 -0
  21. package/dist/chunks/chunk-2WEXPKHH.js +903 -0
  22. package/dist/chunks/chunk-2WEXPKHH.js.map +7 -0
  23. package/dist/{chunk-K2MI4TPB.js → chunks/chunk-3BYE3ME6.js} +717 -792
  24. package/dist/chunks/chunk-3BYE3ME6.js.map +7 -0
  25. package/dist/chunks/chunk-3JDNWX7W.js +1264 -0
  26. package/dist/chunks/chunk-3JDNWX7W.js.map +7 -0
  27. package/dist/chunks/chunk-3OEJVB5A.js +906 -0
  28. package/dist/chunks/chunk-3OEJVB5A.js.map +7 -0
  29. package/dist/chunks/chunk-3TNIOEBO.js +369 -0
  30. package/dist/chunks/chunk-3TNIOEBO.js.map +7 -0
  31. package/dist/chunks/chunk-4A46ZXMJ.js +67 -0
  32. package/dist/chunks/chunk-4A46ZXMJ.js.map +7 -0
  33. package/dist/{chunk-4GAIJGRH.js → chunks/chunk-4ATBQOFO.js} +107 -55
  34. package/dist/chunks/chunk-4ATBQOFO.js.map +7 -0
  35. package/dist/chunks/chunk-4CRUCZR4.js +0 -0
  36. package/dist/{chunk-54DNHKOD.js → chunks/chunk-4EO6SIQY.js} +32 -75
  37. package/dist/chunks/chunk-4EO6SIQY.js.map +7 -0
  38. package/dist/chunks/chunk-53M46S5I.js +64 -0
  39. package/dist/chunks/chunk-53M46S5I.js.map +7 -0
  40. package/dist/{chunk-JC6NCUG5.js → chunks/chunk-54KOYG5C.js} +0 -2
  41. package/dist/{chunk-EZXMVTDU.js → chunks/chunk-6BAS4WY6.js} +29 -45
  42. package/dist/chunks/chunk-6BAS4WY6.js.map +7 -0
  43. package/dist/{chunk-BHGTA6JQ.js → chunks/chunk-6KRRFSDN.js} +4 -6
  44. package/dist/chunks/chunk-6KRRFSDN.js.map +7 -0
  45. package/dist/chunks/chunk-6LJNZK4K.js +39 -0
  46. package/dist/chunks/chunk-6LJNZK4K.js.map +7 -0
  47. package/dist/chunks/chunk-6ZWEOSEI.js +666 -0
  48. package/dist/chunks/chunk-6ZWEOSEI.js.map +7 -0
  49. package/dist/chunks/chunk-77XDJMBP.js +3326 -0
  50. package/dist/chunks/chunk-77XDJMBP.js.map +7 -0
  51. package/dist/chunks/chunk-7RRW4NTB.js +6454 -0
  52. package/dist/chunks/chunk-7RRW4NTB.js.map +7 -0
  53. package/dist/chunks/chunk-7X3TW4JB.js +4520 -0
  54. package/dist/chunks/chunk-7X3TW4JB.js.map +7 -0
  55. package/dist/chunks/chunk-B3MW3YGY.js +1409 -0
  56. package/dist/chunks/chunk-B3MW3YGY.js.map +7 -0
  57. package/dist/chunks/chunk-BBJFHTBC.js +28 -0
  58. package/dist/chunks/chunk-BBJFHTBC.js.map +7 -0
  59. package/dist/chunks/chunk-BHDHXOXB.js +24 -0
  60. package/dist/chunks/chunk-BHDHXOXB.js.map +7 -0
  61. package/dist/{chunk-OZNRLY3E.js → chunks/chunk-BTA7SZ26.js} +152 -223
  62. package/dist/chunks/chunk-BTA7SZ26.js.map +7 -0
  63. package/dist/chunks/chunk-CDGRYGPZ.js +103 -0
  64. package/dist/chunks/chunk-CDGRYGPZ.js.map +7 -0
  65. package/dist/{chunk-S6HRABTA.js → chunks/chunk-CP6E5UG6.js} +1 -4
  66. package/dist/chunks/chunk-CP6E5UG6.js.map +7 -0
  67. package/dist/{chunk-2PMO2FS2.js → chunks/chunk-DQ4JHXMT.js} +462 -424
  68. package/dist/chunks/chunk-DQ4JHXMT.js.map +7 -0
  69. package/dist/chunks/chunk-DXD76CMV.js +208 -0
  70. package/dist/chunks/chunk-DXD76CMV.js.map +7 -0
  71. package/dist/chunks/chunk-GCQCAXJZ.js +0 -0
  72. package/dist/chunks/chunk-GELCZWMB.js +42 -0
  73. package/dist/chunks/chunk-GELCZWMB.js.map +7 -0
  74. package/dist/{chunk-NQLEUHMS.js → chunks/chunk-HJYOH4HC.js} +23 -18
  75. package/dist/chunks/chunk-HJYOH4HC.js.map +7 -0
  76. package/dist/chunks/chunk-HPYNW6TT.js +744 -0
  77. package/dist/chunks/chunk-HPYNW6TT.js.map +7 -0
  78. package/dist/{chunk-2KWKUXLT.js → chunks/chunk-HRJ3ICQK.js} +59 -55
  79. package/dist/chunks/chunk-HRJ3ICQK.js.map +7 -0
  80. package/dist/{chunk-ZQU3TXLC.js → chunks/chunk-IFCIADS3.js} +571 -573
  81. package/dist/chunks/chunk-IFCIADS3.js.map +7 -0
  82. package/dist/chunks/chunk-IN7XZ7BC.js +27 -0
  83. package/dist/chunks/chunk-IN7XZ7BC.js.map +7 -0
  84. package/dist/chunks/chunk-L7P4M4KW.js +193 -0
  85. package/dist/chunks/chunk-L7P4M4KW.js.map +7 -0
  86. package/dist/chunks/chunk-LB6TCPDI.js +0 -0
  87. package/dist/{chunk-3RUXVV4S.js → chunks/chunk-LOCXPQNJ.js} +1 -4
  88. package/dist/{chunk-3RUXVV4S.js.map → chunks/chunk-LOCXPQNJ.js.map} +2 -2
  89. package/dist/{chunk-IE2CG2TV.js → chunks/chunk-LOD5ZHCI.js} +213 -208
  90. package/dist/chunks/chunk-LOD5ZHCI.js.map +7 -0
  91. package/dist/{chunk-S3J2TLV6.js → chunks/chunk-M7P3QNRU.js} +1 -4
  92. package/dist/{chunk-S3J2TLV6.js.map → chunks/chunk-M7P3QNRU.js.map} +2 -2
  93. package/dist/chunks/chunk-PPHLQVL7.js +4234 -0
  94. package/dist/chunks/chunk-PPHLQVL7.js.map +7 -0
  95. package/dist/{chunk-ABLVTESJ.js → chunks/chunk-QAXE37B5.js} +1 -4
  96. package/dist/chunks/chunk-QAXE37B5.js.map +7 -0
  97. package/dist/chunks/chunk-QHQOBUF6.js +60 -0
  98. package/dist/chunks/chunk-QHQOBUF6.js.map +7 -0
  99. package/dist/{chunk-SRZZFAS7.js → chunks/chunk-RPJXO7GG.js} +241 -214
  100. package/dist/chunks/chunk-RPJXO7GG.js.map +7 -0
  101. package/dist/{chunk-NPFOMITO.js → chunks/chunk-SWQV4KSY.js} +1 -4
  102. package/dist/{chunk-NPFOMITO.js.map → chunks/chunk-SWQV4KSY.js.map} +2 -2
  103. package/dist/chunks/chunk-SZLAPULP.js +28 -0
  104. package/dist/chunks/chunk-SZLAPULP.js.map +7 -0
  105. package/dist/{chunk-SDGKPKDK.js → chunks/chunk-T7RB5V5J.js} +23 -25
  106. package/dist/chunks/chunk-T7RB5V5J.js.map +7 -0
  107. package/dist/{chunk-HN4E4UUQ.js → chunks/chunk-TI2CTTMA.js} +25 -17
  108. package/dist/chunks/chunk-TI2CTTMA.js.map +7 -0
  109. package/dist/{chunk-G6I7XROM.js → chunks/chunk-TNGVRTO5.js} +45 -20
  110. package/dist/chunks/chunk-TNGVRTO5.js.map +7 -0
  111. package/dist/chunks/chunk-TNWB3U5Y.js +2077 -0
  112. package/dist/chunks/chunk-TNWB3U5Y.js.map +7 -0
  113. package/dist/chunks/chunk-U2IHWPCU.js +12 -0
  114. package/dist/chunks/chunk-U2IHWPCU.js.map +7 -0
  115. package/dist/{chunk-KAA5BGMQ.js → chunks/chunk-UNOY3VJ2.js} +1 -4
  116. package/dist/{chunk-KAA5BGMQ.js.map → chunks/chunk-UNOY3VJ2.js.map} +2 -2
  117. package/dist/{chunk-3TXNP6HH.js → chunks/chunk-UVDJL6ZZ.js} +97 -58
  118. package/dist/chunks/chunk-UVDJL6ZZ.js.map +7 -0
  119. package/dist/chunks/chunk-VNCW4C2Z.js +13452 -0
  120. package/dist/chunks/chunk-VNCW4C2Z.js.map +7 -0
  121. package/dist/chunks/chunk-W5EGGA44.js +15 -0
  122. package/dist/chunks/chunk-W5EGGA44.js.map +7 -0
  123. package/dist/chunks/chunk-XR2W3MAM.js +1533 -0
  124. package/dist/chunks/chunk-XR2W3MAM.js.map +7 -0
  125. package/dist/{chunk-QYFKRZQC.js → chunks/chunk-YIO5EBMQ.js} +423 -377
  126. package/dist/chunks/chunk-YIO5EBMQ.js.map +7 -0
  127. package/dist/chunks/chunk-ZBVLKZ5V.js +1062 -0
  128. package/dist/chunks/chunk-ZBVLKZ5V.js.map +7 -0
  129. package/dist/{chunk-E6YNABER.js → chunks/chunk-ZCLTZIVP.js} +1 -4
  130. package/dist/chunks/chunk-ZCLTZIVP.js.map +7 -0
  131. package/dist/chunks/client-SILZNM5N.js +42 -0
  132. package/dist/{config-6ZMBCL23.js → chunks/config-25HRTPSP.js} +48 -10
  133. package/dist/chunks/cost-tracker-Z2UZT2J5.js +28 -0
  134. package/dist/{customCommands-DNEJS3ZU.js → chunks/customCommands-TYMYZRG5.js} +11 -8
  135. package/dist/chunks/engine-MRVF6FK6.js +39 -0
  136. package/dist/{env-OFAXZ3XG.js → chunks/env-TJ5NOBEB.js} +7 -5
  137. package/dist/{kodeAgentSessionId-X6XWQW7B.js → chunks/kodeAgentSessionId-VTNISJ2L.js} +2 -4
  138. package/dist/chunks/kodeAgentSessionLoad-YB2RKBGJ.js +15 -0
  139. package/dist/chunks/kodeAgentSessionResume-DZSIVKVA.js +13 -0
  140. package/dist/chunks/kodeAgentStreamJson-X5PLS2S6.js +11 -0
  141. package/dist/{kodeAgentStreamJsonSession-GRWG3SPE.js → chunks/kodeAgentStreamJsonSession-RDXM4XYF.js} +38 -24
  142. package/dist/chunks/kodeAgentStreamJsonSession-RDXM4XYF.js.map +7 -0
  143. package/dist/{chunk-4RTX4AG4.js → chunks/kodeAgentStructuredStdio-SVGDSB4P.js} +14 -9
  144. package/dist/chunks/kodeAgentStructuredStdio-SVGDSB4P.js.map +7 -0
  145. package/dist/{kodeHooks-TDMXFWSO.js → chunks/kodeHooks-RVKYRJHG.js} +11 -9
  146. package/dist/{llm-XVXWYOHK.js → chunks/llm-62N6T5ZT.js} +1734 -1526
  147. package/dist/chunks/llm-62N6T5ZT.js.map +7 -0
  148. package/dist/chunks/llmLazy-ZUSSE3ZA.js +13 -0
  149. package/dist/{mentionProcessor-YD7YXYGF.js → chunks/mentionProcessor-RJW5UPJD.js} +46 -16
  150. package/dist/chunks/mentionProcessor-RJW5UPJD.js.map +7 -0
  151. package/dist/{messages-OFUJSPRV.js → chunks/messages-EEWWLPHN.js} +2 -6
  152. package/dist/chunks/model-5TIEKQPD.js +37 -0
  153. package/dist/{openai-5G5D5Q4B.js → chunks/openai-XXK3YZG4.js} +13 -10
  154. package/dist/{outputStyles-HLDXFQK3.js → chunks/outputStyles-FAJTXN2A.js} +6 -9
  155. package/dist/chunks/permissions-HO7INPWM.js +27 -0
  156. package/dist/{pluginRuntime-FPTKK6NY.js → chunks/pluginRuntime-C7K5ULK2.js} +31 -48
  157. package/dist/chunks/pluginRuntime-C7K5ULK2.js.map +7 -0
  158. package/dist/chunks/pluginValidation-DAM7WRTC.js +20 -0
  159. package/dist/chunks/registry-XYJXMOA5.js +60 -0
  160. package/dist/chunks/responsesStreaming-JNGE2P3D.js +8 -0
  161. package/dist/chunks/runNonTextPrintMode-SVBLCZQX.js +577 -0
  162. package/dist/chunks/runNonTextPrintMode-SVBLCZQX.js.map +7 -0
  163. package/dist/chunks/server-REXXF5IK.js +46 -0
  164. package/dist/{skillMarketplace-PSNKDINM.js → chunks/skillMarketplace-N4HVHNST.js} +8 -6
  165. package/dist/chunks/src-OROQIWP3.js +44 -0
  166. package/dist/chunks/src-QXLGGMUW.js +1647 -0
  167. package/dist/chunks/src-QXLGGMUW.js.map +7 -0
  168. package/dist/{cli-SRV2INSL.js → chunks/src-SSDT6MVP.js} +2659 -3384
  169. package/dist/chunks/src-SSDT6MVP.js.map +7 -0
  170. package/dist/chunks/theme-YBJUIMWK.js +10 -0
  171. package/dist/{toolPermissionContext-65L65VEZ.js → chunks/toolPermissionContext-MOCTRR7N.js} +2 -4
  172. package/dist/chunks/toolPermissionSettings-EV2EJAXL.js +18 -0
  173. package/dist/chunks/toolPermissionSettings-EV2EJAXL.js.map +7 -0
  174. package/dist/chunks/uuid-6577SO6X.js +7 -0
  175. package/dist/chunks/uuid-6577SO6X.js.map +7 -0
  176. package/dist/chunks/webOnlyMode-ALXX7UQY.js +66 -0
  177. package/dist/chunks/webOnlyMode-ALXX7UQY.js.map +7 -0
  178. package/dist/entrypoints/cli.js +10 -0
  179. package/dist/entrypoints/cli.js.map +7 -0
  180. package/dist/entrypoints/daemon.js +10 -0
  181. package/dist/entrypoints/daemon.js.map +7 -0
  182. package/dist/entrypoints/mcp.js +71 -0
  183. package/dist/entrypoints/mcp.js.map +7 -0
  184. package/dist/index.js +6 -7
  185. package/dist/index.js.map +3 -3
  186. package/dist/sdk/client.cjs +391 -0
  187. package/dist/sdk/client.cjs.map +7 -0
  188. package/dist/sdk/client.js +364 -0
  189. package/dist/sdk/client.js.map +7 -0
  190. package/dist/sdk/core.cjs +19932 -0
  191. package/dist/sdk/core.cjs.map +7 -0
  192. package/dist/sdk/core.js +19893 -0
  193. package/dist/sdk/core.js.map +7 -0
  194. package/dist/sdk/daemon-client.cjs +257 -0
  195. package/dist/sdk/daemon-client.cjs.map +7 -0
  196. package/dist/sdk/daemon-client.js +221 -0
  197. package/dist/sdk/daemon-client.js.map +7 -0
  198. package/dist/sdk/protocol.cjs +170 -0
  199. package/dist/sdk/protocol.cjs.map +7 -0
  200. package/dist/sdk/protocol.js +140 -0
  201. package/dist/sdk/protocol.js.map +7 -0
  202. package/dist/sdk/runtime-node.cjs +236 -0
  203. package/dist/sdk/runtime-node.cjs.map +7 -0
  204. package/dist/sdk/runtime-node.js +222 -0
  205. package/dist/sdk/runtime-node.js.map +7 -0
  206. package/dist/sdk/runtime.cjs +17 -0
  207. package/dist/sdk/runtime.cjs.map +7 -0
  208. package/dist/sdk/runtime.js +0 -0
  209. package/dist/sdk/runtime.js.map +7 -0
  210. package/dist/sdk/tools.cjs +30300 -0
  211. package/dist/sdk/tools.cjs.map +7 -0
  212. package/dist/sdk/tools.js +30282 -0
  213. package/dist/sdk/tools.js.map +7 -0
  214. package/dist/webui/assets/index-5hlfByVS.css +1 -0
  215. package/dist/webui/assets/index-BR9lm1lA.js +82 -0
  216. package/dist/webui/index.html +28 -0
  217. package/package.json +93 -22
  218. package/scripts/binary-utils.cjs +12 -4
  219. package/scripts/cli-acp-wrapper.cjs +3 -17
  220. package/scripts/cli-wrapper.cjs +5 -7
  221. package/scripts/postinstall.js +8 -4
  222. package/dist/REPL-GIU4ZIXM.js +0 -42
  223. package/dist/acp-H3VJ77YG.js +0 -1357
  224. package/dist/acp-H3VJ77YG.js.map +0 -7
  225. package/dist/agentsValidate-XP3CFN6F.js.map +0 -7
  226. package/dist/ask-3G5H5KD5.js.map +0 -7
  227. package/dist/autoUpdater-DNRMJWFQ.js +0 -17
  228. package/dist/chunk-2KWKUXLT.js.map +0 -7
  229. package/dist/chunk-2PMO2FS2.js.map +0 -7
  230. package/dist/chunk-3TXNP6HH.js.map +0 -7
  231. package/dist/chunk-4GAIJGRH.js.map +0 -7
  232. package/dist/chunk-4RTX4AG4.js.map +0 -7
  233. package/dist/chunk-54DNHKOD.js.map +0 -7
  234. package/dist/chunk-67PY5IX6.js +0 -34
  235. package/dist/chunk-67PY5IX6.js.map +0 -7
  236. package/dist/chunk-6DRDLOLP.js +0 -2613
  237. package/dist/chunk-6DRDLOLP.js.map +0 -7
  238. package/dist/chunk-7CQVZNQV.js +0 -1609
  239. package/dist/chunk-7CQVZNQV.js.map +0 -7
  240. package/dist/chunk-ABLVTESJ.js.map +0 -7
  241. package/dist/chunk-AIMIPK4B.js +0 -835
  242. package/dist/chunk-AIMIPK4B.js.map +0 -7
  243. package/dist/chunk-BHGTA6JQ.js.map +0 -7
  244. package/dist/chunk-CIG63V4E.js +0 -72
  245. package/dist/chunk-CIG63V4E.js.map +0 -7
  246. package/dist/chunk-E6YNABER.js.map +0 -7
  247. package/dist/chunk-EH34V7CY.js.map +0 -7
  248. package/dist/chunk-EZXMVTDU.js.map +0 -7
  249. package/dist/chunk-FH5CHM6L.js +0 -148
  250. package/dist/chunk-FH5CHM6L.js.map +0 -7
  251. package/dist/chunk-G6I7XROM.js.map +0 -7
  252. package/dist/chunk-HN4E4UUQ.js.map +0 -7
  253. package/dist/chunk-HSPVVDIW.js +0 -30198
  254. package/dist/chunk-HSPVVDIW.js.map +0 -7
  255. package/dist/chunk-IE2CG2TV.js.map +0 -7
  256. package/dist/chunk-K2MI4TPB.js.map +0 -7
  257. package/dist/chunk-MN77D2F7.js +0 -2931
  258. package/dist/chunk-MN77D2F7.js.map +0 -7
  259. package/dist/chunk-NQLEUHMS.js.map +0 -7
  260. package/dist/chunk-OIFQB3S4.js +0 -515
  261. package/dist/chunk-OIFQB3S4.js.map +0 -7
  262. package/dist/chunk-OWTG2W3A.js +0 -164
  263. package/dist/chunk-OWTG2W3A.js.map +0 -7
  264. package/dist/chunk-OZNRLY3E.js.map +0 -7
  265. package/dist/chunk-QYFKRZQC.js.map +0 -7
  266. package/dist/chunk-S6HRABTA.js.map +0 -7
  267. package/dist/chunk-SDGKPKDK.js.map +0 -7
  268. package/dist/chunk-SRZZFAS7.js.map +0 -7
  269. package/dist/chunk-UKHTVRJM.js +0 -47
  270. package/dist/chunk-UKHTVRJM.js.map +0 -7
  271. package/dist/chunk-UYXEDKOZ.js +0 -24
  272. package/dist/chunk-UYXEDKOZ.js.map +0 -7
  273. package/dist/chunk-VBXVYQYY.js +0 -145
  274. package/dist/chunk-VBXVYQYY.js.map +0 -7
  275. package/dist/chunk-WVHORZQ5.js +0 -17
  276. package/dist/chunk-WVHORZQ5.js.map +0 -7
  277. package/dist/chunk-WWUWDNWW.js +0 -49
  278. package/dist/chunk-WWUWDNWW.js.map +0 -7
  279. package/dist/chunk-Z33T5YN5.js +0 -654
  280. package/dist/chunk-Z33T5YN5.js.map +0 -7
  281. package/dist/chunk-ZQU3TXLC.js.map +0 -7
  282. package/dist/cli-SRV2INSL.js.map +0 -7
  283. package/dist/commands-TWH6PGVG.js +0 -46
  284. package/dist/context-JQIOOI4W.js +0 -30
  285. package/dist/costTracker-6SL26FDB.js +0 -19
  286. package/dist/kodeAgentSessionLoad-6N27AC5K.js +0 -18
  287. package/dist/kodeAgentSessionResume-HUSAEO24.js +0 -16
  288. package/dist/kodeAgentStreamJson-NXFN7TXH.js +0 -13
  289. package/dist/kodeAgentStreamJsonSession-GRWG3SPE.js.map +0 -7
  290. package/dist/kodeAgentStructuredStdio-HGWJT7CU.js +0 -10
  291. package/dist/llm-XVXWYOHK.js.map +0 -7
  292. package/dist/llmLazy-7TD5N7XP.js +0 -15
  293. package/dist/loader-AUXIJTY6.js +0 -28
  294. package/dist/mcp-BXJ3K7NZ.js +0 -49
  295. package/dist/mentionProcessor-YD7YXYGF.js.map +0 -7
  296. package/dist/model-KPYCXWBK.js +0 -30
  297. package/dist/pluginRuntime-FPTKK6NY.js.map +0 -7
  298. package/dist/pluginValidation-DSFXZ4GF.js +0 -17
  299. package/dist/prompts-LWLAJRS2.js +0 -48
  300. package/dist/query-HVPWL27C.js +0 -50
  301. package/dist/responsesStreaming-AW344PQO.js +0 -10
  302. package/dist/ripgrep-YOPCY2GO.js +0 -17
  303. package/dist/state-KNRWP3FO.js +0 -16
  304. package/dist/theme-7S2QN2FO.js +0 -14
  305. package/dist/toolPermissionSettings-GPOBH4IV.js +0 -18
  306. package/dist/tools-FZU2FZBD.js +0 -47
  307. package/dist/userInput-VHNBN2MW.js +0 -311
  308. package/dist/userInput-VHNBN2MW.js.map +0 -7
  309. package/dist/uuid-QN2CNKKN.js +0 -9
  310. /package/dist/{REPL-GIU4ZIXM.js.map → chunks/Doctor-M3J7GRTJ.js.map} +0 -0
  311. /package/dist/{autoUpdater-DNRMJWFQ.js.map → chunks/REPL-RQ6LO6S7.js.map} +0 -0
  312. /package/dist/{chunk-JC6NCUG5.js.map → chunks/ResumeConversation-6DMVBEGH.js.map} +0 -0
  313. /package/dist/{commands-TWH6PGVG.js.map → chunks/agentLoader-FCRG3TFJ.js.map} +0 -0
  314. /package/dist/{config-6ZMBCL23.js.map → chunks/autoUpdater-CNESBOKO.js.map} +0 -0
  315. /package/dist/{context-JQIOOI4W.js.map → chunks/chunk-4CRUCZR4.js.map} +0 -0
  316. /package/dist/{costTracker-6SL26FDB.js.map → chunks/chunk-54KOYG5C.js.map} +0 -0
  317. /package/dist/{customCommands-DNEJS3ZU.js.map → chunks/chunk-GCQCAXJZ.js.map} +0 -0
  318. /package/dist/{env-OFAXZ3XG.js.map → chunks/chunk-LB6TCPDI.js.map} +0 -0
  319. /package/dist/{kodeAgentSessionId-X6XWQW7B.js.map → chunks/client-SILZNM5N.js.map} +0 -0
  320. /package/dist/{kodeAgentSessionLoad-6N27AC5K.js.map → chunks/config-25HRTPSP.js.map} +0 -0
  321. /package/dist/{kodeAgentSessionResume-HUSAEO24.js.map → chunks/cost-tracker-Z2UZT2J5.js.map} +0 -0
  322. /package/dist/{kodeAgentStreamJson-NXFN7TXH.js.map → chunks/customCommands-TYMYZRG5.js.map} +0 -0
  323. /package/dist/{kodeAgentStructuredStdio-HGWJT7CU.js.map → chunks/engine-MRVF6FK6.js.map} +0 -0
  324. /package/dist/{kodeHooks-TDMXFWSO.js.map → chunks/env-TJ5NOBEB.js.map} +0 -0
  325. /package/dist/{llmLazy-7TD5N7XP.js.map → chunks/kodeAgentSessionId-VTNISJ2L.js.map} +0 -0
  326. /package/dist/{loader-AUXIJTY6.js.map → chunks/kodeAgentSessionLoad-YB2RKBGJ.js.map} +0 -0
  327. /package/dist/{mcp-BXJ3K7NZ.js.map → chunks/kodeAgentSessionResume-DZSIVKVA.js.map} +0 -0
  328. /package/dist/{messages-OFUJSPRV.js.map → chunks/kodeAgentStreamJson-X5PLS2S6.js.map} +0 -0
  329. /package/dist/{model-KPYCXWBK.js.map → chunks/kodeHooks-RVKYRJHG.js.map} +0 -0
  330. /package/dist/{openai-5G5D5Q4B.js.map → chunks/llmLazy-ZUSSE3ZA.js.map} +0 -0
  331. /package/dist/{outputStyles-HLDXFQK3.js.map → chunks/messages-EEWWLPHN.js.map} +0 -0
  332. /package/dist/{pluginValidation-DSFXZ4GF.js.map → chunks/model-5TIEKQPD.js.map} +0 -0
  333. /package/dist/{prompts-LWLAJRS2.js.map → chunks/openai-XXK3YZG4.js.map} +0 -0
  334. /package/dist/{query-HVPWL27C.js.map → chunks/outputStyles-FAJTXN2A.js.map} +0 -0
  335. /package/dist/{responsesStreaming-AW344PQO.js.map → chunks/permissions-HO7INPWM.js.map} +0 -0
  336. /package/dist/{ripgrep-YOPCY2GO.js.map → chunks/pluginValidation-DAM7WRTC.js.map} +0 -0
  337. /package/dist/{skillMarketplace-PSNKDINM.js.map → chunks/registry-XYJXMOA5.js.map} +0 -0
  338. /package/dist/{state-KNRWP3FO.js.map → chunks/responsesStreaming-JNGE2P3D.js.map} +0 -0
  339. /package/dist/{theme-7S2QN2FO.js.map → chunks/server-REXXF5IK.js.map} +0 -0
  340. /package/dist/{toolPermissionContext-65L65VEZ.js.map → chunks/skillMarketplace-N4HVHNST.js.map} +0 -0
  341. /package/dist/{toolPermissionSettings-GPOBH4IV.js.map → chunks/src-OROQIWP3.js.map} +0 -0
  342. /package/dist/{tools-FZU2FZBD.js.map → chunks/theme-YBJUIMWK.js.map} +0 -0
  343. /package/dist/{uuid-QN2CNKKN.js.map → chunks/toolPermissionContext-MOCTRR7N.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../packages/core/src/mcp/client/config.ts", "../../packages/core/src/utils/json.ts", "../../packages/core/src/mcp/client/utils.ts", "../../packages/core/src/mcp/client/clients.ts", "../../packages/core/src/mcp/client/connection.ts", "../../packages/core/src/mcp/client/settings.ts", "../../packages/core/src/mcp/client/tools.ts", "../../packages/core/src/mcp/client/timeouts.ts", "../../packages/core/src/mcp/client/request.ts", "../../packages/core/src/mcp/client/commands.ts"],
4
+ "sourcesContent": ["import { existsSync, readFileSync, writeFileSync } from 'node:fs'\nimport { join, resolve } from 'node:path'\n\nimport {\n addMcprcServerForTesting,\n getCurrentProjectConfig,\n getGlobalConfig,\n getProjectMcpServerDefinitions,\n type McpServerConfig,\n removeMcprcServerForTesting,\n saveCurrentProjectConfig,\n saveGlobalConfig,\n} from '#core/utils/config'\nimport { safeParseJSON } from '#core/utils/json'\nimport { getSessionPlugins } from '#core/utils/sessionPlugins'\nimport { getCwd } from '#core/utils/state'\n\nimport type { McpName } from './settings'\nimport { expandTemplateDeep, isRecord, parseJsonOrJsonc } from './utils'\n\nconst VALID_SCOPES = ['project', 'global', 'mcprc', 'mcpjson'] as const\ntype ConfigScope = (typeof VALID_SCOPES)[number]\nconst EXTERNAL_SCOPES = [\n 'project',\n 'global',\n 'mcprc',\n 'mcpjson',\n] as ConfigScope[]\n\nexport type ScopedMcpServerConfig = McpServerConfig & {\n scope: ConfigScope\n}\n\nexport function parseEnvVars(\n rawEnvArgs: string[] | undefined,\n): Record<string, string> {\n const parsedEnv: Record<string, string> = {}\n\n if (!rawEnvArgs) return parsedEnv\n\n for (const envStr of rawEnvArgs) {\n const [key, ...valueParts] = envStr.split('=')\n if (!key || valueParts.length === 0) {\n throw new Error(\n `Invalid environment variable format: ${envStr}, environment variables should be added as: -e KEY1=value1 -e KEY2=value2`,\n )\n }\n parsedEnv[key] = valueParts.join('=')\n }\n\n return parsedEnv\n}\n\nexport function ensureConfigScope(scope?: string): ConfigScope {\n if (!scope) return 'project'\n\n const scopesToCheck =\n process.env.USER_TYPE === 'external' ? EXTERNAL_SCOPES : VALID_SCOPES\n\n if (!scopesToCheck.includes(scope as ConfigScope)) {\n throw new Error(\n `Invalid scope: ${scope}. Must be one of: ${scopesToCheck.join(', ')}`,\n )\n }\n\n return scope as ConfigScope\n}\n\nexport function listPluginMCPServers(): Record<string, McpServerConfig> {\n const plugins = getSessionPlugins()\n if (plugins.length === 0) return {}\n\n const out: Record<string, McpServerConfig> = {}\n\n for (const plugin of plugins) {\n const pluginRoot = plugin.rootDir\n const pluginName = plugin.name\n\n const configs: Array<Record<string, McpServerConfig>> = []\n\n for (const configPath of plugin.mcpConfigFiles ?? []) {\n try {\n const raw = readFileSync(configPath, 'utf8')\n const parsed = parseJsonOrJsonc(raw)\n if (!isRecord(parsed)) continue\n\n const maybeNested = parsed['mcpServers']\n const rawServers = isRecord(maybeNested) ? maybeNested : parsed\n if (!isRecord(rawServers)) continue\n\n const servers: Record<string, McpServerConfig> = {}\n for (const [name, cfg] of Object.entries(rawServers)) {\n if (!isRecord(cfg)) continue\n servers[name] = expandTemplateDeep(cfg, pluginRoot) as McpServerConfig\n }\n configs.push(servers)\n } catch {\n continue\n }\n }\n\n if (isRecord(plugin.manifest)) {\n const manifestRaw = plugin.manifest['mcpServers']\n if (isRecord(manifestRaw)) {\n const maybeNested = manifestRaw['mcpServers']\n const rawServers = isRecord(maybeNested) ? maybeNested : manifestRaw\n if (isRecord(rawServers)) {\n const servers: Record<string, McpServerConfig> = {}\n for (const [name, cfg] of Object.entries(rawServers)) {\n if (!isRecord(cfg)) continue\n servers[name] = expandTemplateDeep(\n cfg,\n pluginRoot,\n ) as McpServerConfig\n }\n configs.push(servers)\n }\n }\n }\n\n const merged: Record<string, McpServerConfig> = Object.assign(\n {},\n ...configs,\n )\n\n for (const [serverName, cfg] of Object.entries(merged)) {\n const fullName = `plugin_${pluginName}_${serverName}`\n out[fullName] = cfg\n }\n }\n\n return out\n}\n\nexport function getMcprcServerStatus(\n serverName: string,\n): 'approved' | 'rejected' | 'pending' {\n const config = getCurrentProjectConfig()\n if (config.approvedMcprcServers?.includes(serverName)) {\n return 'approved'\n }\n if (config.rejectedMcprcServers?.includes(serverName)) {\n return 'rejected'\n }\n return 'pending'\n}\n\nexport function addMcpServer(\n name: McpName,\n server: McpServerConfig,\n scope: ConfigScope = 'project',\n): void {\n if (scope === 'mcprc') {\n if (process.env.NODE_ENV === 'test') {\n addMcprcServerForTesting(name, server)\n return\n }\n\n const mcprcPath = join(getCwd(), '.mcprc')\n let mcprcConfig: Record<string, McpServerConfig> = {}\n\n if (existsSync(mcprcPath)) {\n try {\n const mcprcContent = readFileSync(mcprcPath, 'utf-8')\n const existingConfig = safeParseJSON(mcprcContent)\n if (isRecord(existingConfig)) {\n mcprcConfig = existingConfig as Record<string, McpServerConfig>\n }\n } catch {\n // ignore\n }\n }\n\n mcprcConfig[name] = server\n\n try {\n writeFileSync(mcprcPath, JSON.stringify(mcprcConfig, null, 2), 'utf-8')\n } catch (error) {\n throw new Error(`Failed to write to .mcprc: ${error}`)\n }\n\n return\n }\n\n if (scope === 'mcpjson') {\n const mcpJsonPath = join(getCwd(), '.mcp.json')\n let config: Record<string, unknown> = { mcpServers: {} }\n\n if (existsSync(mcpJsonPath)) {\n try {\n const content = readFileSync(mcpJsonPath, 'utf-8')\n const parsed = safeParseJSON(content)\n if (isRecord(parsed)) config = parsed\n } catch {\n // ignore\n }\n }\n\n const rawServers = config['mcpServers']\n const servers: Record<string, McpServerConfig> = isRecord(rawServers)\n ? (rawServers as Record<string, McpServerConfig>)\n : {}\n\n servers[name] = server\n config['mcpServers'] = servers\n\n try {\n writeFileSync(mcpJsonPath, JSON.stringify(config, null, 2), 'utf-8')\n } catch (error) {\n throw new Error(`Failed to write to .mcp.json: ${error}`)\n }\n\n return\n }\n\n if (scope === 'global') {\n const config = getGlobalConfig()\n if (!config.mcpServers) config.mcpServers = {}\n config.mcpServers[name] = server\n saveGlobalConfig(config)\n return\n }\n\n const config = getCurrentProjectConfig()\n if (!config.mcpServers) config.mcpServers = {}\n config.mcpServers[name] = server\n saveCurrentProjectConfig(config)\n}\n\nexport function removeMcpServer(\n name: McpName,\n scope: ConfigScope = 'project',\n): void {\n if (scope === 'mcprc') {\n if (process.env.NODE_ENV === 'test') {\n removeMcprcServerForTesting(name)\n return\n }\n\n const mcprcPath = join(getCwd(), '.mcprc')\n if (!existsSync(mcprcPath)) {\n throw new Error('No .mcprc file found in this directory')\n }\n\n const mcprcContent = readFileSync(mcprcPath, 'utf-8')\n const parsed = safeParseJSON(mcprcContent)\n if (!isRecord(parsed) || !(name in parsed)) {\n throw new Error(`No MCP server found with name: ${name} in .mcprc`)\n }\n\n delete parsed[name]\n writeFileSync(mcprcPath, JSON.stringify(parsed, null, 2), 'utf-8')\n return\n }\n\n if (scope === 'mcpjson') {\n const mcpJsonPath = join(getCwd(), '.mcp.json')\n if (!existsSync(mcpJsonPath)) {\n throw new Error('No .mcp.json file found in this directory')\n }\n\n const content = readFileSync(mcpJsonPath, 'utf-8')\n const parsed = safeParseJSON(content)\n if (!isRecord(parsed)) {\n throw new Error('Invalid .mcp.json format')\n }\n\n const rawServers = parsed['mcpServers']\n if (!isRecord(rawServers) || !(name in rawServers)) {\n throw new Error(`No MCP server found with name: ${name} in .mcp.json`)\n }\n\n delete rawServers[name]\n parsed['mcpServers'] = rawServers\n writeFileSync(mcpJsonPath, JSON.stringify(parsed, null, 2), 'utf-8')\n return\n }\n\n if (scope === 'global') {\n const config = getGlobalConfig()\n if (!config.mcpServers?.[name]) {\n throw new Error(`No MCP server found with name: ${name} in global config`)\n }\n delete config.mcpServers[name]\n saveGlobalConfig(config)\n return\n }\n\n const config = getCurrentProjectConfig()\n if (!config.mcpServers?.[name]) {\n throw new Error(`No MCP server found with name: ${name} in project config`)\n }\n delete config.mcpServers[name]\n saveCurrentProjectConfig(config)\n}\n\nexport function listMCPServers(): Record<string, McpServerConfig> {\n const pluginServers = listPluginMCPServers()\n const globalConfig = getGlobalConfig()\n const projectFileConfig = getProjectMcpServerDefinitions().servers\n const projectConfig = getCurrentProjectConfig()\n return {\n ...(pluginServers ?? {}),\n ...(globalConfig.mcpServers ?? {}),\n ...(projectFileConfig ?? {}),\n ...(projectConfig.mcpServers ?? {}),\n }\n}\n\nexport function getMcpServer(name: McpName): ScopedMcpServerConfig | undefined {\n const projectConfig = getCurrentProjectConfig()\n const projectFileDefinitions = getProjectMcpServerDefinitions()\n const projectFileConfig = projectFileDefinitions.servers\n const globalConfig = getGlobalConfig()\n\n if (projectConfig.mcpServers?.[name]) {\n return { ...projectConfig.mcpServers[name], scope: 'project' }\n }\n\n if (projectFileConfig?.[name]) {\n const source = projectFileDefinitions.sources[name]\n const scope: ConfigScope = source === '.mcp.json' ? 'mcpjson' : 'mcprc'\n return { ...projectFileConfig[name], scope }\n }\n\n if (globalConfig.mcpServers?.[name]) {\n return { ...globalConfig.mcpServers[name], scope: 'global' }\n }\n\n return undefined\n}\n\nexport function parseMcpServersFromCliConfigEntries(options: {\n entries: string[]\n projectDir: string\n}): Record<string, McpServerConfig> {\n const out: Record<string, McpServerConfig> = {}\n\n for (const rawEntry of options.entries) {\n const entry = String(rawEntry ?? '').trim()\n if (!entry) continue\n\n const resolvedPath = resolve(options.projectDir, entry)\n const payload = existsSync(resolvedPath)\n ? readFileSync(resolvedPath, 'utf8')\n : existsSync(entry)\n ? readFileSync(entry, 'utf8')\n : entry\n\n const parsed = parseJsonOrJsonc(payload)\n if (!isRecord(parsed)) continue\n\n const maybeNested = parsed['mcpServers']\n const rawServers = isRecord(maybeNested) ? maybeNested : parsed\n if (!isRecord(rawServers)) continue\n\n for (const [name, cfg] of Object.entries(rawServers)) {\n if (!isRecord(cfg)) continue\n out[name] = cfg as McpServerConfig\n }\n }\n\n return out\n}\n", "import { logError } from './log'\n\nexport function safeParseJSON(json: string | null | undefined): unknown {\n if (!json) {\n return null\n }\n try {\n return JSON.parse(json)\n } catch (e) {\n logError(e)\n return null\n }\n}\n", "export function isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nfunction stripJsonComments(input: string): string {\n let out = ''\n let inString = false\n let escaped = false\n let inLineComment = false\n let inBlockComment = false\n\n for (let i = 0; i < input.length; i++) {\n const ch = input[i]!\n const next = i + 1 < input.length ? input[i + 1]! : ''\n\n if (inLineComment) {\n if (ch === '\\n') {\n inLineComment = false\n out += ch\n }\n continue\n }\n\n if (inBlockComment) {\n if (ch === '*' && next === '/') {\n inBlockComment = false\n i++\n }\n continue\n }\n\n if (inString) {\n out += ch\n if (escaped) {\n escaped = false\n continue\n }\n if (ch === '\\\\') {\n escaped = true\n continue\n }\n if (ch === '\"') inString = false\n continue\n }\n\n if (ch === '\"') {\n inString = true\n out += ch\n continue\n }\n\n if (ch === '/' && next === '/') {\n inLineComment = true\n i++\n continue\n }\n\n if (ch === '/' && next === '*') {\n inBlockComment = true\n i++\n continue\n }\n\n out += ch\n }\n\n return out\n}\n\nexport function parseJsonOrJsonc(text: string): unknown {\n const raw = String(text ?? '')\n if (!raw.trim()) return null\n try {\n return JSON.parse(raw)\n } catch {\n try {\n return JSON.parse(stripJsonComments(raw))\n } catch {\n return null\n }\n }\n}\n\nfunction expandTemplateString(value: string, pluginRoot: string): string {\n return value.replace(/\\$\\{([^}]+)\\}/g, (match, key) => {\n const k = String(key ?? '').trim()\n if (!k) return match\n if (k === 'CLAUDE_PLUGIN_ROOT') return pluginRoot\n const env = process.env[k]\n return env !== undefined ? env : match\n })\n}\n\nexport function expandTemplateDeep(\n value: unknown,\n pluginRoot: string,\n): unknown {\n if (typeof value === 'string') return expandTemplateString(value, pluginRoot)\n if (Array.isArray(value))\n return value.map(v => expandTemplateDeep(v, pluginRoot))\n if (isRecord(value)) {\n const out: Record<string, unknown> = {}\n for (const [k, v] of Object.entries(value)) {\n out[k] = expandTemplateDeep(v, pluginRoot)\n }\n return out\n }\n return value\n}\n", "import { memoize, pickBy } from 'lodash-es'\nimport type { ServerCapabilities } from '@modelcontextprotocol/sdk/types.js'\n\nimport type { McpServerConfig } from '#core/utils/config'\nimport {\n getCurrentProjectConfig,\n getGlobalConfig,\n getProjectMcpServerDefinitions,\n} from '#core/utils/config'\nimport { getCwd } from '#core/utils/state'\nimport { logMCPError } from '#core/utils/log'\n\nimport {\n getMcprcServerStatus,\n listPluginMCPServers,\n parseMcpServersFromCliConfigEntries,\n} from './config'\nimport { connectToServer } from './connection'\nimport { getMcpServerConnectionBatchSize } from './settings'\nimport type { WrappedClient } from './types'\n\nexport const getClients = memoize(async (): Promise<WrappedClient[]> => {\n if (process.env.CI && process.env.NODE_ENV !== 'test') {\n return []\n }\n\n const pluginServers = listPluginMCPServers()\n const globalServers = getGlobalConfig().mcpServers ?? {}\n const projectFileServers = getProjectMcpServerDefinitions().servers\n const projectServers = getCurrentProjectConfig().mcpServers ?? {}\n\n const approvedProjectFileServers = pickBy(\n projectFileServers,\n (_, name) => getMcprcServerStatus(name) === 'approved',\n )\n\n const allServers: Record<string, McpServerConfig> = {\n ...pluginServers,\n ...globalServers,\n ...approvedProjectFileServers,\n ...projectServers,\n }\n\n const batchSize = getMcpServerConnectionBatchSize()\n const entries = Object.entries(allServers)\n const results: WrappedClient[] = []\n\n for (let i = 0; i < entries.length; i += batchSize) {\n const batch = entries.slice(i, i + batchSize)\n const batchResults = await Promise.all(\n batch.map(async ([name, serverRef]) => {\n try {\n const client = await connectToServer(name, serverRef)\n let capabilities: ServerCapabilities | null = null\n try {\n capabilities = client.getServerCapabilities() ?? null\n } catch {\n capabilities = null\n }\n return { name, client, capabilities, type: 'connected' as const }\n } catch (error) {\n logMCPError(\n name,\n `Connection failed: ${error instanceof Error ? error.message : String(error)}`,\n )\n return { name, type: 'failed' as const }\n }\n }),\n )\n results.push(...batchResults)\n }\n\n return results\n})\n\nexport async function getClientsForCliMcpConfig(options: {\n mcpConfig?: string[]\n strictMcpConfig?: boolean\n projectDir?: string\n}): Promise<WrappedClient[]> {\n const projectDir = options.projectDir ?? getCwd()\n const entries =\n Array.isArray(options.mcpConfig) && options.mcpConfig.length > 0\n ? options.mcpConfig\n : []\n const strict = options.strictMcpConfig === true\n\n if (entries.length === 0 && !strict) {\n return getClients()\n }\n\n const cliServers = parseMcpServersFromCliConfigEntries({\n entries,\n projectDir,\n })\n\n const pluginServers = strict ? {} : listPluginMCPServers()\n const globalServers = strict ? {} : (getGlobalConfig().mcpServers ?? {})\n const projectFileServers = strict\n ? {}\n : getProjectMcpServerDefinitions().servers\n const projectServers = strict\n ? {}\n : (getCurrentProjectConfig().mcpServers ?? {})\n\n const approvedProjectFileServers = strict\n ? {}\n : pickBy(\n projectFileServers,\n (_, name) => getMcprcServerStatus(name) === 'approved',\n )\n\n const allServers: Record<string, McpServerConfig> = {\n ...(pluginServers ?? {}),\n ...(globalServers ?? {}),\n ...(approvedProjectFileServers ?? {}),\n ...(projectServers ?? {}),\n ...(cliServers ?? {}),\n }\n\n const batchSize = getMcpServerConnectionBatchSize()\n const entriesToConnect = Object.entries(allServers)\n const results: WrappedClient[] = []\n\n for (let i = 0; i < entriesToConnect.length; i += batchSize) {\n const batch = entriesToConnect.slice(i, i + batchSize)\n const batchResults = await Promise.all(\n batch.map(async ([name, serverRef]) => {\n try {\n const client = await connectToServer(name, serverRef)\n let capabilities: ServerCapabilities | null = null\n try {\n capabilities = client.getServerCapabilities() ?? null\n } catch {\n capabilities = null\n }\n return { name, client, capabilities, type: 'connected' as const }\n } catch (error) {\n logMCPError(\n name,\n `Connection failed: ${error instanceof Error ? error.message : String(error)}`,\n )\n return { name, type: 'failed' as const }\n }\n }),\n )\n results.push(...batchResults)\n }\n\n return results\n}\n", "import type { Buffer } from 'node:buffer'\n\nimport { Client } from '@modelcontextprotocol/sdk/client/index.js'\nimport { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js'\nimport { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js'\nimport { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js'\nimport { WebSocketClientTransport } from '@modelcontextprotocol/sdk/client/websocket.js'\n\nimport type { McpServerConfig } from '#core/utils/config'\nimport { PRODUCT_COMMAND } from '#core/constants/product'\nimport { logMCPError } from '#core/utils/log'\n\ntype GlobalWithWebSocket = { WebSocket?: unknown }\n\nasync function ensureWebSocketGlobal(): Promise<void> {\n const global = globalThis as unknown as GlobalWithWebSocket\n if (typeof global.WebSocket === 'function') return\n\n try {\n const undiciModule = await import('undici')\n const maybeWs = (undiciModule as unknown as GlobalWithWebSocket).WebSocket\n if (typeof maybeWs === 'function') {\n global.WebSocket = maybeWs\n }\n } catch {\n // ignore\n }\n}\n\nfunction buildStdioEnv(extra?: Record<string, string>): Record<string, string> {\n const env: Record<string, string> = {}\n for (const [key, value] of Object.entries(process.env)) {\n if (typeof value === 'string') env[key] = value\n }\n if (extra) Object.assign(env, extra)\n return env\n}\n\ntype Candidate =\n | { kind: 'stdio'; transport: StdioClientTransport }\n | { kind: 'sse'; transport: SSEClientTransport }\n | { kind: 'http'; transport: StreamableHTTPClientTransport }\n | { kind: 'ws'; transport: WebSocketClientTransport }\n\nexport async function connectToServer(\n name: string,\n serverRef: McpServerConfig,\n): Promise<Client> {\n const candidates: Candidate[] = await (async () => {\n switch (serverRef.type) {\n case 'sse': {\n const ref = serverRef\n return [\n {\n kind: 'sse',\n transport: new SSEClientTransport(new URL(ref.url), {\n ...(ref.headers ? { requestInit: { headers: ref.headers } } : {}),\n }),\n },\n {\n kind: 'http',\n transport: new StreamableHTTPClientTransport(new URL(ref.url), {\n ...(ref.headers ? { requestInit: { headers: ref.headers } } : {}),\n }),\n },\n ]\n }\n case 'sse-ide': {\n const ref = serverRef\n return [\n {\n kind: 'sse',\n transport: new SSEClientTransport(new URL(ref.url), {\n ...(ref.headers ? { requestInit: { headers: ref.headers } } : {}),\n }),\n },\n ]\n }\n case 'http': {\n const ref = serverRef\n return [\n {\n kind: 'http',\n transport: new StreamableHTTPClientTransport(new URL(ref.url), {\n ...(ref.headers ? { requestInit: { headers: ref.headers } } : {}),\n }),\n },\n {\n kind: 'sse',\n transport: new SSEClientTransport(new URL(ref.url), {\n ...(ref.headers ? { requestInit: { headers: ref.headers } } : {}),\n }),\n },\n ]\n }\n case 'ws': {\n const ref = serverRef\n await ensureWebSocketGlobal()\n return [\n {\n kind: 'ws',\n transport: new WebSocketClientTransport(new URL(ref.url)),\n },\n ]\n }\n case 'ws-ide': {\n const ref = serverRef\n\n let url = ref.url\n if (ref.authToken) {\n try {\n const parsed = new URL(url)\n if (!parsed.searchParams.has('authToken')) {\n parsed.searchParams.set('authToken', ref.authToken)\n url = parsed.toString()\n }\n } catch {\n // ignore\n }\n }\n\n await ensureWebSocketGlobal()\n return [\n {\n kind: 'ws',\n transport: new WebSocketClientTransport(new URL(url)),\n },\n ]\n }\n case 'stdio':\n default: {\n const ref = serverRef\n return [\n {\n kind: 'stdio',\n transport: new StdioClientTransport({\n command: ref.command,\n args: ref.args,\n env: buildStdioEnv(ref.env),\n stderr: 'pipe',\n }),\n },\n ]\n }\n }\n })()\n\n const rawTimeout = process.env.MCP_CONNECTION_TIMEOUT_MS\n const parsedTimeout = rawTimeout ? Number.parseInt(rawTimeout, 10) : NaN\n const connectionTimeoutMs = Number.isFinite(parsedTimeout)\n ? parsedTimeout\n : 30_000\n\n let lastError: unknown\n\n for (const candidate of candidates) {\n const client = new Client(\n { name: PRODUCT_COMMAND, version: '0.1.0' },\n { capabilities: {} },\n )\n\n try {\n const connectPromise = client.connect(candidate.transport)\n\n if (connectionTimeoutMs > 0) {\n const timeoutPromise = new Promise<never>((_, reject) => {\n const timeoutId = setTimeout(() => {\n reject(\n new Error(\n `Connection to MCP server \"${name}\" timed out after ${connectionTimeoutMs}ms`,\n ),\n )\n }, connectionTimeoutMs)\n\n connectPromise.finally(() => clearTimeout(timeoutId))\n })\n\n await Promise.race([connectPromise, timeoutPromise])\n } else {\n await connectPromise\n }\n\n if (candidate.kind === 'stdio') {\n candidate.transport.stderr?.on('data', (data: Buffer) => {\n const errorText = data.toString().trim()\n if (errorText) logMCPError(name, `Server stderr: ${errorText}`)\n })\n }\n\n if (candidates.length > 1 && candidate !== candidates[0]) {\n logMCPError(\n name,\n `Connected using fallback transport \"${candidate.kind}\". Consider setting the server type explicitly in your MCP config.`,\n )\n }\n\n return client\n } catch (error) {\n lastError = error\n try {\n await client.close()\n } catch {}\n }\n }\n\n throw lastError instanceof Error\n ? lastError\n : new Error(`Failed to connect to MCP server \"${name}\"`)\n}\n", "export type McpName = string\n\nexport function sanitizeMcpIdentifierPart(value: string): string {\n return value.replace(/[^a-zA-Z0-9_-]/g, '_')\n}\n\nexport function getMcpServerConnectionBatchSize(): number {\n const raw = process.env.MCP_SERVER_CONNECTION_BATCH_SIZE\n const parsed = raw ? Number.parseInt(raw, 10) : Number.NaN\n if (Number.isFinite(parsed) && parsed > 0 && parsed <= 50) return parsed\n return 3\n}\n\nexport function getMcpToolTimeoutMs(): number | null {\n const raw = process.env.MCP_TOOL_TIMEOUT\n const parsed = raw ? Number.parseInt(raw, 10) : Number.NaN\n if (!Number.isFinite(parsed) || parsed <= 0) return null\n return parsed\n}\n\nexport const IDE_MCP_TOOL_ALLOWLIST = new Set([\n 'mcp__ide__executeCode',\n 'mcp__ide__getDiagnostics',\n])\n", "import type {\n ImageBlockParam,\n ToolResultBlockParam,\n} from '@anthropic-ai/sdk/resources/index.mjs'\nimport type { RequestOptions } from '@modelcontextprotocol/sdk/shared/protocol.js'\nimport {\n CallToolResultSchema,\n type ListToolsResult,\n ListToolsResultSchema,\n} from '@modelcontextprotocol/sdk/types.js'\nimport { memoize } from 'lodash-es'\nimport { z } from 'zod'\n\nimport type { Tool } from '#core/tooling/Tool'\nimport { logMCPError } from '#core/utils/log'\n\nimport {\n IDE_MCP_TOOL_ALLOWLIST,\n getMcpToolTimeoutMs,\n sanitizeMcpIdentifierPart,\n} from './settings'\nimport { requestAll } from './request'\nimport { createTimeoutSignal, mergeAbortSignals } from './timeouts'\nimport type { ConnectedClient } from './types'\nimport { isRecord } from './utils'\n\ntype AnthropicImageMediaType = Extract<\n ImageBlockParam['source'],\n { type: 'base64' }\n>['media_type']\n\nfunction isTextBlock(value: unknown): value is { type: 'text'; text: string } {\n return (\n isRecord(value) && value.type === 'text' && typeof value.text === 'string'\n )\n}\n\nfunction isImageBlock(value: unknown): value is { type: 'image' } {\n return isRecord(value) && value.type === 'image'\n}\n\nfunction renderToolUseMessage(input: unknown): string {\n if (!isRecord(input)) return String(input ?? '')\n return Object.entries(input)\n .map(([key, value]) => `${key}: ${JSON.stringify(value)}`)\n .join(', ')\n}\n\nfunction renderToolResultMessage(output: unknown): string {\n if (Array.isArray(output)) {\n return output\n .map(item => {\n if (!item || typeof item !== 'object') return String(item ?? '')\n if (isImageBlock(item)) return '[Image]'\n if (isTextBlock(item)) return item.text\n return JSON.stringify(item)\n })\n .join('\\n')\n }\n if (!output) return '(No content)'\n return typeof output === 'string' ? output : JSON.stringify(output)\n}\n\nfunction renderResultForAssistant(content: unknown): string | unknown[] {\n if (typeof content === 'string') return content\n if (Array.isArray(content)) return content\n if (!content) return ''\n try {\n return JSON.stringify(content)\n } catch {\n return String(content)\n }\n}\n\nexport const getMCPTools = memoize(async (): Promise<Tool[]> => {\n const toolsList = await requestAll<\n ListToolsResult,\n typeof ListToolsResultSchema\n >({ method: 'tools/list' }, ListToolsResultSchema, 'tools')\n\n const inputSchema = z.object({}).passthrough()\n\n return toolsList.flatMap(({ client, result: { tools } }) => {\n const serverPart = sanitizeMcpIdentifierPart(client.name)\n\n return tools\n .map((tool): Tool | null => {\n const toolPart = sanitizeMcpIdentifierPart(tool.name)\n const name = `mcp__${serverPart}__${toolPart}`\n\n if (\n name.startsWith('mcp__ide__') &&\n !IDE_MCP_TOOL_ALLOWLIST.has(name)\n ) {\n return null\n }\n\n return {\n name,\n cachedDescription: tool.description ?? '',\n async isEnabled() {\n return true\n },\n isConcurrencySafe() {\n return tool.annotations?.readOnlyHint ?? false\n },\n isReadOnly() {\n return tool.annotations?.readOnlyHint ?? false\n },\n async description() {\n return tool.description ?? ''\n },\n async prompt() {\n return tool.description ?? ''\n },\n inputSchema,\n inputJSONSchema: tool.inputSchema as Tool['inputJSONSchema'],\n needsPermissions() {\n return true\n },\n async validateInput() {\n return { result: true }\n },\n renderToolUseMessage,\n renderToolUseRejectedMessage() {\n return null\n },\n renderToolResultMessage,\n renderResultForAssistant,\n async *call(args: Record<string, unknown>, context) {\n const data = await callMcpTool({\n client,\n tool: tool.name,\n args,\n toolUseId: context.toolUseId,\n signal: context.abortController.signal,\n })\n yield {\n type: 'result' as const,\n data,\n resultForAssistant: data,\n }\n },\n userFacingName() {\n const title = tool.annotations?.title || tool.name\n return `${client.name} - ${title} (MCP)`\n },\n }\n })\n .filter((tool): tool is Tool => tool !== null)\n })\n})\n\nasync function callMcpTool({\n client: { client, name },\n tool,\n args,\n toolUseId,\n signal,\n}: {\n client: ConnectedClient\n tool: string\n args: Record<string, unknown>\n toolUseId?: string\n signal?: AbortSignal\n}): Promise<ToolResultBlockParam['content']> {\n const timeoutMs = getMcpToolTimeoutMs()\n const timeoutSignal = timeoutMs ? createTimeoutSignal(timeoutMs) : null\n const merged = mergeAbortSignals([signal, timeoutSignal?.signal])\n\n const meta =\n toolUseId && toolUseId.trim()\n ? { 'claudecode/toolUseId': toolUseId }\n : undefined\n\n try {\n const options: RequestOptions | undefined = merged?.signal\n ? { signal: merged.signal }\n : undefined\n\n const rawResult = await client.callTool(\n {\n name: tool,\n arguments: args,\n ...(meta ? { _meta: meta } : {}),\n },\n CallToolResultSchema,\n options,\n )\n\n const result = CallToolResultSchema.parse(rawResult)\n\n if (result.isError) {\n const contentText = result.content.find(item => item.type === 'text')\n\n const extraError =\n isRecord(rawResult) && typeof rawResult.error === 'string'\n ? rawResult.error\n : isRecord(result) && typeof result.error === 'string'\n ? result.error\n : ''\n\n const message =\n contentText?.text?.trim() || extraError || `Error calling tool ${tool}`\n\n logMCPError(name, `Error calling tool ${tool}: ${message}`)\n throw new Error(message)\n }\n\n const toolResult =\n isRecord(rawResult) && rawResult.toolResult !== undefined\n ? rawResult.toolResult\n : isRecord(result) && result.toolResult !== undefined\n ? result.toolResult\n : undefined\n if (toolResult !== undefined) return String(toolResult)\n\n if (result.structuredContent !== undefined) {\n return JSON.stringify(result.structuredContent)\n }\n\n const blocks: Array<{ type: 'text'; text: string } | ImageBlockParam> = []\n\n for (const item of result.content) {\n switch (item.type) {\n case 'text':\n blocks.push({ type: 'text', text: item.text })\n break\n case 'image':\n blocks.push({\n type: 'image',\n source: {\n type: 'base64',\n data: item.data,\n media_type: item.mimeType as AnthropicImageMediaType,\n },\n })\n break\n default: {\n let text = ''\n try {\n text = JSON.stringify(item)\n } catch {\n text = String(item)\n }\n blocks.push({ type: 'text', text })\n break\n }\n }\n }\n\n return blocks.length > 0 ? blocks : '(No content)'\n } finally {\n merged?.cleanup()\n timeoutSignal?.cleanup()\n }\n}\n", "export type TimeoutSignal = { signal: AbortSignal; cleanup: () => void }\n\nexport function createTimeoutSignal(timeoutMs: number): TimeoutSignal {\n if (typeof AbortSignal.timeout === 'function') {\n return { signal: AbortSignal.timeout(timeoutMs), cleanup: () => {} }\n }\n\n const controller = new AbortController()\n const id = setTimeout(() => controller.abort(), timeoutMs)\n return { signal: controller.signal, cleanup: () => clearTimeout(id) }\n}\n\nexport function mergeAbortSignals(\n signals: Array<AbortSignal | undefined>,\n): TimeoutSignal | null {\n const active = signals.filter((s): s is AbortSignal => !!s)\n if (active.length === 0) return null\n if (active.length === 1) return { signal: active[0]!, cleanup: () => {} }\n\n const controller = new AbortController()\n const unsubscribers: Array<() => void> = []\n\n const abort = () => {\n try {\n controller.abort()\n } catch {}\n }\n\n for (const signal of active) {\n if (signal.aborted) {\n abort()\n return { signal: controller.signal, cleanup: () => {} }\n }\n signal.addEventListener('abort', abort, { once: true })\n unsubscribers.push(() => {\n try {\n signal.removeEventListener('abort', abort)\n } catch {}\n })\n }\n\n return {\n signal: controller.signal,\n cleanup: () => {\n for (const unsubscribe of unsubscribers) unsubscribe()\n },\n }\n}\n", "import type { RequestOptions } from '@modelcontextprotocol/sdk/shared/protocol.js'\nimport type {\n ClientRequest,\n Result,\n ServerCapabilities,\n} from '@modelcontextprotocol/sdk/types.js'\nimport { ResultSchema } from '@modelcontextprotocol/sdk/types.js'\n\nimport { logMCPError } from '#core/utils/log'\n\nimport { getClients } from './clients'\nimport { getMcpToolTimeoutMs } from './settings'\nimport {\n createTimeoutSignal,\n mergeAbortSignals,\n type TimeoutSignal,\n} from './timeouts'\nimport type { ConnectedClient } from './types'\n\nexport async function requestAll<\n ResultT extends Result,\n ResultSchemaT extends typeof ResultSchema,\n>(\n req: ClientRequest,\n resultSchema: ResultSchemaT,\n requiredCapability: keyof ServerCapabilities,\n): Promise<{ client: ConnectedClient; result: ResultT }[]> {\n const timeoutMs = getMcpToolTimeoutMs()\n const clients = await getClients()\n const results = await Promise.allSettled(\n clients.map(async client => {\n if (client.type === 'failed') return null\n\n let timeoutSignal: TimeoutSignal | null = null\n let mergedSignal: TimeoutSignal | null = null\n\n try {\n let capabilities = client.capabilities ?? null\n\n if (!capabilities) {\n try {\n capabilities = client.client.getServerCapabilities() ?? null\n } catch {\n capabilities = null\n }\n client.capabilities = capabilities\n }\n\n if (!capabilities?.[requiredCapability]) {\n return null\n }\n\n timeoutSignal = timeoutMs ? createTimeoutSignal(timeoutMs) : null\n mergedSignal = mergeAbortSignals([timeoutSignal?.signal])\n\n const options: RequestOptions | undefined = mergedSignal?.signal\n ? { signal: mergedSignal.signal }\n : undefined\n\n return {\n client,\n result: (await client.client.request(\n req,\n resultSchema,\n options,\n )) as ResultT,\n }\n } catch (error) {\n logMCPError(\n client.name,\n `Failed to request '${req.method}': ${error instanceof Error ? error.message : String(error)}`,\n )\n return null\n } finally {\n mergedSignal?.cleanup()\n timeoutSignal?.cleanup()\n }\n }),\n )\n\n return results\n .filter(\n (\n result,\n ): result is PromiseFulfilledResult<{\n client: ConnectedClient\n result: ResultT\n } | null> => result.status === 'fulfilled',\n )\n .map(result => result.value)\n .filter(\n (result): result is { client: ConnectedClient; result: ResultT } =>\n result !== null,\n )\n}\n", "import type {\n ImageBlockParam,\n MessageParam,\n} from '@anthropic-ai/sdk/resources/index.mjs'\nimport { memoize, zipObject } from 'lodash-es'\nimport type { ListPromptsResult } from '@modelcontextprotocol/sdk/types.js'\nimport { ListPromptsResultSchema } from '@modelcontextprotocol/sdk/types.js'\n\nimport { logMCPError } from '#core/utils/log'\n\nimport { sanitizeMcpIdentifierPart } from './settings'\nimport { requestAll } from './request'\nimport type { ConnectedClient } from './types'\n\ntype AnthropicImageMediaType = Extract<\n ImageBlockParam['source'],\n { type: 'base64' }\n>['media_type']\n\nexport type McpPromptCommand = {\n type: 'prompt'\n name: string\n description: string\n isEnabled: boolean\n isHidden: boolean\n progressMessage: string\n argNames: string[]\n userFacingName(): string\n getPromptForCommand(args: string): Promise<MessageParam[]>\n}\n\nexport const getMCPCommands = memoize(async (): Promise<McpPromptCommand[]> => {\n const results = await requestAll<\n ListPromptsResult,\n typeof ListPromptsResultSchema\n >({ method: 'prompts/list' }, ListPromptsResultSchema, 'prompts')\n\n return results.flatMap(({ client, result }) =>\n result.prompts?.map(prompt => {\n const serverPart = sanitizeMcpIdentifierPart(client.name)\n const argNames = (prompt.arguments ?? []).map(arg => arg.name)\n\n return {\n type: 'prompt',\n name: `mcp__${serverPart}__${prompt.name}`,\n description: prompt.description ?? '',\n isEnabled: true,\n isHidden: false,\n progressMessage: 'running',\n userFacingName() {\n const title = prompt.title?.trim() || prompt.name\n return `${client.name}:${title} (MCP)`\n },\n argNames,\n async getPromptForCommand(args: string) {\n const argsArray = args.split(' ')\n return await runCommand(\n { name: prompt.name, client },\n zipObject(argNames, argsArray),\n )\n },\n }\n }),\n )\n})\n\nexport async function runCommand(\n { name, client }: { name: string; client: ConnectedClient },\n args: Record<string, string>,\n): Promise<MessageParam[]> {\n try {\n const result = await client.client.getPrompt({ name, arguments: args })\n\n return result.messages.map((message): MessageParam => {\n const content = message.content\n switch (content.type) {\n case 'text':\n return {\n role: message.role,\n content: [{ type: 'text', text: content.text }],\n }\n case 'image':\n return {\n role: message.role,\n content: [\n {\n type: 'image',\n source: {\n type: 'base64',\n data: content.data,\n media_type: content.mimeType as AnthropicImageMediaType,\n },\n },\n ],\n }\n default:\n return {\n role: message.role,\n content: [\n {\n type: 'text',\n text: `Unsupported MCP content type ${content.type}`,\n },\n ],\n }\n }\n })\n } catch (error) {\n logMCPError(\n client.name,\n `Error running command '${name}': ${error instanceof Error ? error.message : String(error)}`,\n )\n throw error\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["config", "memoize", "memoize", "memoize", "memoize"]
7
+ }
@@ -1,7 +1,4 @@
1
- import { createRequire as __kodeCreateRequire } from "node:module";
2
- const require = __kodeCreateRequire(import.meta.url);
3
-
4
- // src/utils/session/sessionState.ts
1
+ // packages/core/src/utils/sessionState.ts
5
2
  var isDebug = process.argv.includes("--debug") || process.argv.includes("-d") || process.env.DEBUG === "true";
6
3
  var sessionState = {
7
4
  modelErrors: {},
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../packages/core/src/utils/sessionState.ts"],
4
+ "sourcesContent": ["type SessionState = {\n modelErrors: Record<string, unknown>\n currentError: string | null\n [key: string]: unknown\n}\n\nconst isDebug =\n process.argv.includes('--debug') ||\n process.argv.includes('-d') ||\n process.env.DEBUG === 'true'\n\nconst sessionState: SessionState = {\n modelErrors: {},\n currentError: null,\n}\n\nfunction setSessionState<K extends keyof SessionState>(\n key: K,\n value: SessionState[K],\n): void\nfunction setSessionState(partialState: Partial<SessionState>): void\nfunction setSessionState(\n keyOrState: keyof SessionState | Partial<SessionState>,\n value?: any,\n): void {\n if (typeof keyOrState === 'string') {\n sessionState[keyOrState] = value\n } else {\n Object.assign(sessionState, keyOrState)\n }\n}\n\nfunction getSessionState(): SessionState\nfunction getSessionState<K extends keyof SessionState>(key: K): SessionState[K]\nfunction getSessionState<K extends keyof SessionState>(key?: K) {\n return key === undefined ? sessionState : sessionState[key]\n}\n\nexport type { SessionState }\nexport { setSessionState, getSessionState }\nexport default sessionState\n"],
5
+ "mappings": ";AAMA,IAAM,UACJ,QAAQ,KAAK,SAAS,SAAS,KAC/B,QAAQ,KAAK,SAAS,IAAI,KAC1B,QAAQ,IAAI,UAAU;AAExB,IAAM,eAA6B;AAAA,EACjC,aAAa,CAAC;AAAA,EACd,cAAc;AAChB;AAOA,SAAS,gBACP,YACA,OACM;AACN,MAAI,OAAO,eAAe,UAAU;AAClC,iBAAa,UAAU,IAAI;AAAA,EAC7B,OAAO;AACL,WAAO,OAAO,cAAc,UAAU;AAAA,EACxC;AACF;AAIA,SAAS,gBAA8C,KAAS;AAC9D,SAAO,QAAQ,SAAY,eAAe,aAAa,GAAG;AAC5D;",
6
+ "names": []
7
+ }
@@ -0,0 +1,42 @@
1
+ import {
2
+ addMcpServer,
3
+ ensureConfigScope,
4
+ getClients,
5
+ getClientsForCliMcpConfig,
6
+ getMCPCommands,
7
+ getMCPTools,
8
+ getMcpServer,
9
+ getMcprcServerStatus,
10
+ listMCPServers,
11
+ listPluginMCPServers,
12
+ parseEnvVars,
13
+ parseMcpServersFromCliConfigEntries,
14
+ removeMcpServer,
15
+ runCommand
16
+ } from "./chunk-ZBVLKZ5V.js";
17
+ import "./chunk-M7P3QNRU.js";
18
+ import "./chunk-3OEJVB5A.js";
19
+ import "./chunk-BBJFHTBC.js";
20
+ import "./chunk-QHQOBUF6.js";
21
+ import "./chunk-W5EGGA44.js";
22
+ import "./chunk-DXD76CMV.js";
23
+ import "./chunk-LB6TCPDI.js";
24
+ import "./chunk-XR2W3MAM.js";
25
+ import "./chunk-B3MW3YGY.js";
26
+ import "./chunk-54KOYG5C.js";
27
+ export {
28
+ addMcpServer,
29
+ ensureConfigScope,
30
+ getClients,
31
+ getClientsForCliMcpConfig,
32
+ getMCPCommands,
33
+ getMCPTools,
34
+ getMcpServer,
35
+ getMcprcServerStatus,
36
+ listMCPServers,
37
+ listPluginMCPServers,
38
+ parseEnvVars,
39
+ parseMcpServersFromCliConfigEntries,
40
+ removeMcpServer,
41
+ runCommand
42
+ };
@@ -1,81 +1,119 @@
1
- import { createRequire as __kodeCreateRequire } from "node:module";
2
- const require = __kodeCreateRequire(import.meta.url);
1
+ import "./chunk-LB6TCPDI.js";
3
2
  import {
3
+ ConfigParseError,
4
4
  DEFAULT_GLOBAL_CONFIG,
5
+ DEFAULT_PROJECT_CONFIG,
5
6
  GLOBAL_CONFIG_KEYS,
6
7
  PROJECT_CONFIG_KEYS,
7
8
  TEST_MCPRC_CONFIG_FOR_TESTING,
9
+ __resetSettingSourcesForTests,
8
10
  addMcprcServerForTesting,
11
+ applyModelConfigYamlImport,
9
12
  checkHasTrustDialogAccepted,
10
13
  clearMcprcConfigForTesting,
11
14
  createGPT5ModelProfile,
15
+ defaultConfigForProject,
12
16
  deleteConfigForCLI,
13
17
  enableConfigs,
18
+ formatModelConfigYamlForSharing,
14
19
  getAnthropicApiKey,
15
20
  getConfigForCLI,
16
21
  getCurrentProjectConfig,
17
22
  getCustomApiKeyStatus,
18
23
  getGPT5ConfigRecommendations,
19
24
  getGlobalConfig,
25
+ getGlobalConfigFilePath,
26
+ getKodeBaseDir,
27
+ getLocalSettingsPath,
20
28
  getMcprcConfig,
21
29
  getOpenAIApiKey,
22
30
  getOrCreateUserID,
23
31
  getProjectMcpServerDefinitions,
32
+ getSettingsFileCandidates,
24
33
  isAutoUpdaterDisabled,
25
34
  isAutoUpdaterStatus,
26
35
  isGPT5ModelName,
27
36
  isGlobalConfigKey,
28
37
  isProjectConfigKey,
38
+ isSettingSourceEnabled,
29
39
  listConfigForCLI,
40
+ loadSettingsWithLegacyFallback,
30
41
  normalizeApiKeyForConfig,
42
+ parseModelConfigYaml,
43
+ readLocalSettings,
44
+ readSettingsFile,
31
45
  removeMcprcServerForTesting,
32
46
  saveCurrentProjectConfig,
33
47
  saveGlobalConfig,
48
+ saveSettingsToPrimaryAndSyncLegacy,
34
49
  setAllPointersToModel,
35
50
  setConfigForCLI,
51
+ setEnabledSettingSourcesFromCli,
36
52
  setModelPointer,
53
+ testGPT5Connection,
54
+ updateLocalSettings,
37
55
  validateAndRepairAllGPT5Profiles,
38
- validateAndRepairGPT5Profile
39
- } from "./chunk-AIMIPK4B.js";
40
- import "./chunk-UYXEDKOZ.js";
41
- import "./chunk-QYFKRZQC.js";
42
- import "./chunk-MN77D2F7.js";
43
- import "./chunk-FH5CHM6L.js";
44
- import "./chunk-JC6NCUG5.js";
56
+ validateAndRepairGPT5Profile,
57
+ validateGPT5Config,
58
+ writeSettingsFile
59
+ } from "./chunk-XR2W3MAM.js";
60
+ import "./chunk-B3MW3YGY.js";
61
+ import "./chunk-54KOYG5C.js";
45
62
  export {
63
+ ConfigParseError,
46
64
  DEFAULT_GLOBAL_CONFIG,
65
+ DEFAULT_PROJECT_CONFIG,
47
66
  GLOBAL_CONFIG_KEYS,
48
67
  PROJECT_CONFIG_KEYS,
49
68
  TEST_MCPRC_CONFIG_FOR_TESTING,
69
+ __resetSettingSourcesForTests,
50
70
  addMcprcServerForTesting,
71
+ applyModelConfigYamlImport,
51
72
  checkHasTrustDialogAccepted,
52
73
  clearMcprcConfigForTesting,
53
74
  createGPT5ModelProfile,
75
+ defaultConfigForProject,
54
76
  deleteConfigForCLI,
55
77
  enableConfigs,
78
+ formatModelConfigYamlForSharing,
56
79
  getAnthropicApiKey,
57
80
  getConfigForCLI,
58
81
  getCurrentProjectConfig,
59
82
  getCustomApiKeyStatus,
60
83
  getGPT5ConfigRecommendations,
61
84
  getGlobalConfig,
85
+ getGlobalConfigFilePath,
86
+ getKodeBaseDir,
87
+ getLocalSettingsPath,
62
88
  getMcprcConfig,
63
89
  getOpenAIApiKey,
64
90
  getOrCreateUserID,
65
91
  getProjectMcpServerDefinitions,
92
+ getSettingsFileCandidates,
66
93
  isAutoUpdaterDisabled,
67
94
  isAutoUpdaterStatus,
68
95
  isGPT5ModelName,
69
96
  isGlobalConfigKey,
70
97
  isProjectConfigKey,
98
+ isSettingSourceEnabled,
71
99
  listConfigForCLI,
100
+ loadSettingsWithLegacyFallback,
72
101
  normalizeApiKeyForConfig,
102
+ parseModelConfigYaml,
103
+ readLocalSettings,
104
+ readSettingsFile,
73
105
  removeMcprcServerForTesting,
74
106
  saveCurrentProjectConfig,
75
107
  saveGlobalConfig,
108
+ saveSettingsToPrimaryAndSyncLegacy,
76
109
  setAllPointersToModel,
77
110
  setConfigForCLI,
111
+ setEnabledSettingSourcesFromCli,
78
112
  setModelPointer,
113
+ testGPT5Connection,
114
+ updateLocalSettings,
79
115
  validateAndRepairAllGPT5Profiles,
80
- validateAndRepairGPT5Profile
116
+ validateAndRepairGPT5Profile,
117
+ validateGPT5Config,
118
+ writeSettingsFile
81
119
  };
@@ -0,0 +1,28 @@
1
+ import {
2
+ addToTotalCost,
3
+ formatTotalCost,
4
+ getTotalAPIDuration,
5
+ getTotalCost,
6
+ getTotalDuration,
7
+ registerCostSummaryOnExit,
8
+ resetStateForTests
9
+ } from "./chunk-6BAS4WY6.js";
10
+ import "./chunk-GELCZWMB.js";
11
+ import "./chunk-3OEJVB5A.js";
12
+ import "./chunk-BBJFHTBC.js";
13
+ import "./chunk-QHQOBUF6.js";
14
+ import "./chunk-W5EGGA44.js";
15
+ import "./chunk-DXD76CMV.js";
16
+ import "./chunk-LB6TCPDI.js";
17
+ import "./chunk-XR2W3MAM.js";
18
+ import "./chunk-B3MW3YGY.js";
19
+ import "./chunk-54KOYG5C.js";
20
+ export {
21
+ addToTotalCost,
22
+ formatTotalCost,
23
+ getTotalAPIDuration,
24
+ getTotalCost,
25
+ getTotalDuration,
26
+ registerCostSummaryOnExit,
27
+ resetStateForTests
28
+ };
@@ -1,5 +1,3 @@
1
- import { createRequire as __kodeCreateRequire } from "node:module";
2
- const require = __kodeCreateRequire(import.meta.url);
3
1
  import {
4
2
  executeBashCommands,
5
3
  getCustomCommandDirectories,
@@ -8,12 +6,17 @@ import {
8
6
  parseFrontmatter,
9
7
  reloadCustomCommands,
10
8
  resolveFileReferences
11
- } from "./chunk-SRZZFAS7.js";
12
- import "./chunk-S3J2TLV6.js";
13
- import "./chunk-QYFKRZQC.js";
14
- import "./chunk-MN77D2F7.js";
15
- import "./chunk-FH5CHM6L.js";
16
- import "./chunk-JC6NCUG5.js";
9
+ } from "./chunk-RPJXO7GG.js";
10
+ import "./chunk-M7P3QNRU.js";
11
+ import "./chunk-4CRUCZR4.js";
12
+ import "./chunk-YIO5EBMQ.js";
13
+ import "./chunk-3OEJVB5A.js";
14
+ import "./chunk-BBJFHTBC.js";
15
+ import "./chunk-QHQOBUF6.js";
16
+ import "./chunk-W5EGGA44.js";
17
+ import "./chunk-DXD76CMV.js";
18
+ import "./chunk-B3MW3YGY.js";
19
+ import "./chunk-54KOYG5C.js";
17
20
  export {
18
21
  executeBashCommands,
19
22
  getCustomCommandDirectories,
@@ -0,0 +1,39 @@
1
+ import {
2
+ buildSystemPromptForSession,
3
+ getSessionContext,
4
+ runTurn,
5
+ runTurnEvents
6
+ } from "./chunk-4A46ZXMJ.js";
7
+ import {
8
+ query
9
+ } from "./chunk-TNWB3U5Y.js";
10
+ import "./chunk-UVDJL6ZZ.js";
11
+ import "./chunk-CDGRYGPZ.js";
12
+ import "./chunk-HPYNW6TT.js";
13
+ import "./chunk-LOD5ZHCI.js";
14
+ import "./chunk-3BYE3ME6.js";
15
+ import "./chunk-M7P3QNRU.js";
16
+ import "./chunk-SWQV4KSY.js";
17
+ import "./chunk-LOCXPQNJ.js";
18
+ import "./chunk-ZCLTZIVP.js";
19
+ import "./chunk-4CRUCZR4.js";
20
+ import "./chunk-BHDHXOXB.js";
21
+ import "./chunk-HRJ3ICQK.js";
22
+ import "./chunk-6ZWEOSEI.js";
23
+ import "./chunk-YIO5EBMQ.js";
24
+ import "./chunk-3OEJVB5A.js";
25
+ import "./chunk-BBJFHTBC.js";
26
+ import "./chunk-QHQOBUF6.js";
27
+ import "./chunk-W5EGGA44.js";
28
+ import "./chunk-DXD76CMV.js";
29
+ import "./chunk-LB6TCPDI.js";
30
+ import "./chunk-XR2W3MAM.js";
31
+ import "./chunk-B3MW3YGY.js";
32
+ import "./chunk-54KOYG5C.js";
33
+ export {
34
+ buildSystemPromptForSession,
35
+ getSessionContext,
36
+ query,
37
+ runTurn,
38
+ runTurnEvents
39
+ };
@@ -1,5 +1,3 @@
1
- import { createRequire as __kodeCreateRequire } from "node:module";
2
- const require = __kodeCreateRequire(import.meta.url);
3
1
  import {
4
2
  GLOBAL_CONFIG_FILE,
5
3
  KODE_BASE_DIR,
@@ -8,9 +6,13 @@ import {
8
6
  getGlobalConfigFilePath,
9
7
  getKodeBaseDir,
10
8
  getMemoryDir
11
- } from "./chunk-MN77D2F7.js";
12
- import "./chunk-FH5CHM6L.js";
13
- import "./chunk-JC6NCUG5.js";
9
+ } from "./chunk-3OEJVB5A.js";
10
+ import "./chunk-BBJFHTBC.js";
11
+ import "./chunk-QHQOBUF6.js";
12
+ import "./chunk-W5EGGA44.js";
13
+ import "./chunk-DXD76CMV.js";
14
+ import "./chunk-B3MW3YGY.js";
15
+ import "./chunk-54KOYG5C.js";
14
16
  export {
15
17
  GLOBAL_CONFIG_FILE,
16
18
  KODE_BASE_DIR,
@@ -1,11 +1,9 @@
1
- import { createRequire as __kodeCreateRequire } from "node:module";
2
- const require = __kodeCreateRequire(import.meta.url);
3
1
  import {
4
2
  getKodeAgentSessionId,
5
3
  resetKodeAgentSessionIdForTests,
6
4
  setKodeAgentSessionId
7
- } from "./chunk-NPFOMITO.js";
8
- import "./chunk-JC6NCUG5.js";
5
+ } from "./chunk-SWQV4KSY.js";
6
+ import "./chunk-54KOYG5C.js";
9
7
  export {
10
8
  getKodeAgentSessionId,
11
9
  resetKodeAgentSessionIdForTests,
@@ -0,0 +1,15 @@
1
+ import {
2
+ findMostRecentKodeAgentSessionId,
3
+ loadKodeAgentSessionLogData,
4
+ loadKodeAgentSessionMessages
5
+ } from "./chunk-TNGVRTO5.js";
6
+ import "./chunk-UVDJL6ZZ.js";
7
+ import "./chunk-SWQV4KSY.js";
8
+ import "./chunk-QHQOBUF6.js";
9
+ import "./chunk-DXD76CMV.js";
10
+ import "./chunk-54KOYG5C.js";
11
+ export {
12
+ findMostRecentKodeAgentSessionId,
13
+ loadKodeAgentSessionLogData,
14
+ loadKodeAgentSessionMessages
15
+ };
@@ -0,0 +1,13 @@
1
+ import {
2
+ listKodeAgentSessions,
3
+ resolveResumeSessionIdentifier
4
+ } from "./chunk-HJYOH4HC.js";
5
+ import "./chunk-UVDJL6ZZ.js";
6
+ import "./chunk-SWQV4KSY.js";
7
+ import "./chunk-QHQOBUF6.js";
8
+ import "./chunk-DXD76CMV.js";
9
+ import "./chunk-54KOYG5C.js";
10
+ export {
11
+ listKodeAgentSessions,
12
+ resolveResumeSessionIdentifier
13
+ };
@@ -0,0 +1,11 @@
1
+ import {
2
+ kodeMessageToSdkMessage,
3
+ makeSdkInitMessage,
4
+ makeSdkResultMessage
5
+ } from "./chunk-CDGRYGPZ.js";
6
+ import "./chunk-54KOYG5C.js";
7
+ export {
8
+ kodeMessageToSdkMessage,
9
+ makeSdkInitMessage,
10
+ makeSdkResultMessage
11
+ };
@@ -1,15 +1,32 @@
1
- import { createRequire as __kodeCreateRequire } from "node:module";
2
- const require = __kodeCreateRequire(import.meta.url);
3
1
  import {
4
2
  kodeMessageToSdkMessage,
5
3
  makeSdkResultMessage
6
- } from "./chunk-CIG63V4E.js";
7
- import {
8
- createUserMessage
9
- } from "./chunk-2KWKUXLT.js";
10
- import "./chunk-JC6NCUG5.js";
4
+ } from "./chunk-CDGRYGPZ.js";
5
+ import "./chunk-54KOYG5C.js";
11
6
 
12
- // src/utils/protocol/kodeAgentStreamJsonSession.ts
7
+ // packages/protocol/src/utils/kodeAgentStreamJsonSession.ts
8
+ function isRecord(value) {
9
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
10
+ }
11
+ function extractAssistantTextFromMessage(message) {
12
+ if (!isRecord(message) || message.type !== "assistant") return "";
13
+ const msg = isRecord(message.message) ? message.message : null;
14
+ const content = msg?.content;
15
+ if (!Array.isArray(content)) return "";
16
+ for (const block of content) {
17
+ const record = isRecord(block) ? block : null;
18
+ if (!record) continue;
19
+ if (record.type === "text" && typeof record.text === "string") {
20
+ return record.text;
21
+ }
22
+ }
23
+ return "";
24
+ }
25
+ function extractAssistantUsage(message) {
26
+ if (!isRecord(message) || message.type !== "assistant") return void 0;
27
+ const msg = isRecord(message.message) ? message.message : null;
28
+ return msg?.usage;
29
+ }
13
30
  async function runKodeAgentStreamJsonSession(args) {
14
31
  const conversation = [...args.initialMessages ?? []];
15
32
  const seenUserUuids = /* @__PURE__ */ new Set();
@@ -20,17 +37,15 @@ async function runKodeAgentStreamJsonSession(args) {
20
37
  } catch {
21
38
  return;
22
39
  }
23
- const sdkMessage = sdkUser?.message;
40
+ const sdkUserRecord = isRecord(sdkUser) ? sdkUser : null;
41
+ const sdkMessage = isRecord(sdkUserRecord?.message) ? sdkUserRecord?.message : null;
24
42
  const sdkContent = sdkMessage?.content;
25
43
  if (typeof sdkContent !== "string" && !Array.isArray(sdkContent)) {
26
44
  throw new Error("Error: Invalid stream-json user message content");
27
45
  }
28
- const providedUuid = typeof sdkUser?.uuid === "string" && sdkUser.uuid ? String(sdkUser.uuid) : null;
29
- const userMsg = createUserMessage(sdkContent);
30
- if (providedUuid) {
31
- userMsg.uuid = providedUuid;
32
- }
46
+ const providedUuid = typeof sdkUserRecord?.uuid === "string" && sdkUserRecord.uuid ? String(sdkUserRecord.uuid) : null;
33
47
  const isDuplicate = Boolean(providedUuid && seenUserUuids.has(providedUuid));
48
+ const userMsg = args.makeUserMessage(sdkContent, providedUuid);
34
49
  if (args.replayUserMessages) {
35
50
  const sdkUserOut = kodeMessageToSdkMessage(userMsg, args.sessionId);
36
51
  if (sdkUserOut) args.writeSdkLine(sdkUserOut);
@@ -49,15 +64,16 @@ async function runKodeAgentStreamJsonSession(args) {
49
64
  const toAppend = [];
50
65
  try {
51
66
  const inputForTurn = [...conversation];
67
+ const toolUseContext = {
68
+ ...args.toolUseContextBase,
69
+ abortController: turnAbortController
70
+ };
52
71
  for await (const m of args.query(
53
72
  inputForTurn,
54
73
  args.systemPrompt,
55
74
  args.context,
56
75
  args.canUseTool,
57
- {
58
- ...args.toolUseContextBase,
59
- abortController: turnAbortController
60
- }
76
+ toolUseContext
61
77
  )) {
62
78
  if (m.type === "assistant") lastAssistant = m;
63
79
  if (m.type !== "progress") {
@@ -76,10 +92,8 @@ async function runKodeAgentStreamJsonSession(args) {
76
92
  args.onActiveTurnAbortControllerChanged?.(null);
77
93
  }
78
94
  conversation.push(...toAppend);
79
- const textFromAssistant = lastAssistant?.message?.content?.find(
80
- (c) => c.type === "text"
81
- )?.text;
82
- const resultText = typeof textFromAssistant === "string" ? textFromAssistant : queryError instanceof Error ? queryError.message : queryError ? String(queryError) : "";
95
+ const textFromAssistant = extractAssistantTextFromMessage(lastAssistant);
96
+ const resultText = typeof textFromAssistant === "string" && textFromAssistant ? textFromAssistant : queryError instanceof Error ? queryError.message : queryError ? String(queryError) : "";
83
97
  let structuredOutput;
84
98
  if (args.jsonSchema && !queryError) {
85
99
  try {
@@ -89,7 +103,7 @@ async function runKodeAgentStreamJsonSession(args) {
89
103
  return m ? m[1].trim() : fenced;
90
104
  })();
91
105
  const parsed = JSON.parse(unfenced);
92
- const Ajv = (await import("ajv")).default;
106
+ const { default: Ajv } = await import("ajv");
93
107
  const ajv = new Ajv({ allErrors: true, strict: false });
94
108
  const validate = ajv.compile(args.jsonSchema);
95
109
  const ok = validate(parsed);
@@ -107,7 +121,7 @@ async function runKodeAgentStreamJsonSession(args) {
107
121
  queryError = e;
108
122
  }
109
123
  }
110
- const usage = lastAssistant?.message?.usage;
124
+ const usage = extractAssistantUsage(lastAssistant);
111
125
  const durationMs = Date.now() - startedAt;
112
126
  const totalCostUsd = Math.max(0, args.getTotalCostUsd() - costBefore);
113
127
  const isError = Boolean(queryError) || turnAbortController.signal.aborted;