@shareai-lab/kode 2.0.1 → 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-7LH4HTNR.js → chunks/agentsValidate-PEWMYN4Q.js} +97 -69
  13. package/dist/chunks/agentsValidate-PEWMYN4Q.js.map +7 -0
  14. package/dist/{ask-3NHFFUQG.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-AFFSCMYS.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-ARZSBOAO.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-UHYRLID6.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-YC6LJCDE.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-3IN27HA5.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-73WGVYLQ.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-QVLYOPO5.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-K2CWOTI2.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-RZWOUA25.js → chunks/chunk-HRJ3ICQK.js} +59 -55
  79. package/dist/chunks/chunk-HRJ3ICQK.js.map +7 -0
  80. package/dist/{chunk-DZE5YA7L.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-7M2YN6TU.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-W7GRKO7Q.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-7U7L4NMD.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-ZVDRDPII.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-MWRSY4X6.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-STSX7GIX.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-RUSD6G5Y.js → chunks/config-25HRTPSP.js} +48 -10
  133. package/dist/chunks/cost-tracker-Z2UZT2J5.js +28 -0
  134. package/dist/{customCommands-TOIJFZAL.js → chunks/customCommands-TYMYZRG5.js} +11 -8
  135. package/dist/chunks/engine-MRVF6FK6.js +39 -0
  136. package/dist/{env-XGKBLU3D.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-UGEZJJEB.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-QWM36A3D.js → chunks/kodeHooks-RVKYRJHG.js} +11 -9
  146. package/dist/{llm-ZUQC4WYM.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-EE3XFHCJ.js → chunks/mentionProcessor-RJW5UPJD.js} +46 -16
  150. package/dist/chunks/mentionProcessor-RJW5UPJD.js.map +7 -0
  151. package/dist/{messages-EOYQKPGM.js → chunks/messages-EEWWLPHN.js} +2 -6
  152. package/dist/chunks/model-5TIEKQPD.js +37 -0
  153. package/dist/{openai-RRCWW33N.js → chunks/openai-XXK3YZG4.js} +13 -10
  154. package/dist/{outputStyles-62Q3VH2J.js → chunks/outputStyles-FAJTXN2A.js} +6 -9
  155. package/dist/chunks/permissions-HO7INPWM.js +27 -0
  156. package/dist/{pluginRuntime-6ETCZ2LL.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-3RXQBVOL.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-DOPVY2CW.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-CW7AYLVL.js +0 -42
  223. package/dist/acp-VEPJ74LT.js +0 -1357
  224. package/dist/acp-VEPJ74LT.js.map +0 -7
  225. package/dist/agentsValidate-7LH4HTNR.js.map +0 -7
  226. package/dist/ask-3NHFFUQG.js.map +0 -7
  227. package/dist/autoUpdater-ITPIHCOI.js +0 -17
  228. package/dist/chunk-3IN27HA5.js.map +0 -7
  229. package/dist/chunk-4FX3IVPT.js +0 -164
  230. package/dist/chunk-4FX3IVPT.js.map +0 -7
  231. package/dist/chunk-4RTX4AG4.js.map +0 -7
  232. package/dist/chunk-5PDP7R6N.js +0 -515
  233. package/dist/chunk-5PDP7R6N.js.map +0 -7
  234. package/dist/chunk-73WGVYLQ.js.map +0 -7
  235. package/dist/chunk-7M2YN6TU.js.map +0 -7
  236. package/dist/chunk-7U7L4NMD.js.map +0 -7
  237. package/dist/chunk-ABLVTESJ.js.map +0 -7
  238. package/dist/chunk-AFFSCMYS.js.map +0 -7
  239. package/dist/chunk-ARZSBOAO.js.map +0 -7
  240. package/dist/chunk-CIG63V4E.js +0 -72
  241. package/dist/chunk-CIG63V4E.js.map +0 -7
  242. package/dist/chunk-CM3EGTG6.js +0 -1609
  243. package/dist/chunk-CM3EGTG6.js.map +0 -7
  244. package/dist/chunk-DZE5YA7L.js.map +0 -7
  245. package/dist/chunk-E6YNABER.js.map +0 -7
  246. package/dist/chunk-EZXMVTDU.js.map +0 -7
  247. package/dist/chunk-F2SJXUDI.js +0 -148
  248. package/dist/chunk-F2SJXUDI.js.map +0 -7
  249. package/dist/chunk-FC5ZCKBI.js +0 -30167
  250. package/dist/chunk-FC5ZCKBI.js.map +0 -7
  251. package/dist/chunk-HCBELH4J.js +0 -145
  252. package/dist/chunk-HCBELH4J.js.map +0 -7
  253. package/dist/chunk-HN4E4UUQ.js.map +0 -7
  254. package/dist/chunk-IZVMU4S2.js +0 -654
  255. package/dist/chunk-IZVMU4S2.js.map +0 -7
  256. package/dist/chunk-K2CWOTI2.js.map +0 -7
  257. package/dist/chunk-LC4TVOCZ.js +0 -835
  258. package/dist/chunk-LC4TVOCZ.js.map +0 -7
  259. package/dist/chunk-MIW7N2MY.js +0 -2613
  260. package/dist/chunk-MIW7N2MY.js.map +0 -7
  261. package/dist/chunk-MWRSY4X6.js.map +0 -7
  262. package/dist/chunk-ND3XWFO6.js +0 -34
  263. package/dist/chunk-ND3XWFO6.js.map +0 -7
  264. package/dist/chunk-QVLYOPO5.js.map +0 -7
  265. package/dist/chunk-RZWOUA25.js.map +0 -7
  266. package/dist/chunk-S6HRABTA.js.map +0 -7
  267. package/dist/chunk-STSX7GIX.js.map +0 -7
  268. package/dist/chunk-UHYRLID6.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-W7GRKO7Q.js.map +0 -7
  274. package/dist/chunk-WVHORZQ5.js +0 -17
  275. package/dist/chunk-WVHORZQ5.js.map +0 -7
  276. package/dist/chunk-WWUWDNWW.js +0 -49
  277. package/dist/chunk-WWUWDNWW.js.map +0 -7
  278. package/dist/chunk-YC6LJCDE.js.map +0 -7
  279. package/dist/chunk-YXYYDIMI.js +0 -2931
  280. package/dist/chunk-YXYYDIMI.js.map +0 -7
  281. package/dist/chunk-ZVDRDPII.js.map +0 -7
  282. package/dist/cli-DOPVY2CW.js.map +0 -7
  283. package/dist/commands-2BF2CJ3A.js +0 -46
  284. package/dist/context-6FXPETYH.js +0 -30
  285. package/dist/costTracker-6SL26FDB.js +0 -19
  286. package/dist/kodeAgentSessionLoad-MITZADPB.js +0 -18
  287. package/dist/kodeAgentSessionResume-GVRWB4WO.js +0 -16
  288. package/dist/kodeAgentStreamJson-NXFN7TXH.js +0 -13
  289. package/dist/kodeAgentStreamJsonSession-UGEZJJEB.js.map +0 -7
  290. package/dist/kodeAgentStructuredStdio-HGWJT7CU.js +0 -10
  291. package/dist/llm-ZUQC4WYM.js.map +0 -7
  292. package/dist/llmLazy-54QQHA54.js +0 -15
  293. package/dist/loader-FYHJQES5.js +0 -28
  294. package/dist/mcp-J332IKT3.js +0 -49
  295. package/dist/mentionProcessor-EE3XFHCJ.js.map +0 -7
  296. package/dist/model-FV3JDJKH.js +0 -30
  297. package/dist/pluginRuntime-6ETCZ2LL.js.map +0 -7
  298. package/dist/pluginValidation-I4YKUWGS.js +0 -17
  299. package/dist/prompts-ZLEKDD77.js +0 -48
  300. package/dist/query-VFRJPBGD.js +0 -50
  301. package/dist/responsesStreaming-AW344PQO.js +0 -10
  302. package/dist/ripgrep-3NTIKQYW.js +0 -17
  303. package/dist/state-P5G6CO5V.js +0 -16
  304. package/dist/theme-3LWP3BG7.js +0 -14
  305. package/dist/toolPermissionSettings-3ROBVTUK.js +0 -18
  306. package/dist/tools-RO7HSSE5.js +0 -47
  307. package/dist/userInput-JSBJRFSK.js +0 -311
  308. package/dist/userInput-JSBJRFSK.js.map +0 -7
  309. package/dist/uuid-QN2CNKKN.js +0 -9
  310. /package/dist/{REPL-CW7AYLVL.js.map → chunks/Doctor-M3J7GRTJ.js.map} +0 -0
  311. /package/dist/{autoUpdater-ITPIHCOI.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-2BF2CJ3A.js.map → chunks/agentLoader-FCRG3TFJ.js.map} +0 -0
  314. /package/dist/{config-RUSD6G5Y.js.map → chunks/autoUpdater-CNESBOKO.js.map} +0 -0
  315. /package/dist/{context-6FXPETYH.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-TOIJFZAL.js.map → chunks/chunk-GCQCAXJZ.js.map} +0 -0
  318. /package/dist/{env-XGKBLU3D.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-MITZADPB.js.map → chunks/config-25HRTPSP.js.map} +0 -0
  321. /package/dist/{kodeAgentSessionResume-GVRWB4WO.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-QWM36A3D.js.map → chunks/env-TJ5NOBEB.js.map} +0 -0
  325. /package/dist/{llmLazy-54QQHA54.js.map → chunks/kodeAgentSessionId-VTNISJ2L.js.map} +0 -0
  326. /package/dist/{loader-FYHJQES5.js.map → chunks/kodeAgentSessionLoad-YB2RKBGJ.js.map} +0 -0
  327. /package/dist/{mcp-J332IKT3.js.map → chunks/kodeAgentSessionResume-DZSIVKVA.js.map} +0 -0
  328. /package/dist/{messages-EOYQKPGM.js.map → chunks/kodeAgentStreamJson-X5PLS2S6.js.map} +0 -0
  329. /package/dist/{model-FV3JDJKH.js.map → chunks/kodeHooks-RVKYRJHG.js.map} +0 -0
  330. /package/dist/{openai-RRCWW33N.js.map → chunks/llmLazy-ZUSSE3ZA.js.map} +0 -0
  331. /package/dist/{outputStyles-62Q3VH2J.js.map → chunks/messages-EEWWLPHN.js.map} +0 -0
  332. /package/dist/{pluginValidation-I4YKUWGS.js.map → chunks/model-5TIEKQPD.js.map} +0 -0
  333. /package/dist/{prompts-ZLEKDD77.js.map → chunks/openai-XXK3YZG4.js.map} +0 -0
  334. /package/dist/{query-VFRJPBGD.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-3NTIKQYW.js.map → chunks/pluginValidation-DAM7WRTC.js.map} +0 -0
  337. /package/dist/{skillMarketplace-3RXQBVOL.js.map → chunks/registry-XYJXMOA5.js.map} +0 -0
  338. /package/dist/{state-P5G6CO5V.js.map → chunks/responsesStreaming-JNGE2P3D.js.map} +0 -0
  339. /package/dist/{theme-3LWP3BG7.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-3ROBVTUK.js.map → chunks/src-OROQIWP3.js.map} +0 -0
  342. /package/dist/{tools-RO7HSSE5.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/protocol/src/utils/kodeAgentStreamJsonSession.ts"],
4
+ "sourcesContent": ["import type { SdkMessage } from '../streamJson'\nimport {\n makeSdkResultMessage,\n kodeMessageToSdkMessage,\n} from './kodeAgentStreamJson'\nimport type { KodeAgentStructuredStdio } from './kodeAgentStructuredStdio'\n\ntype MessageWithUuid = { type: string; uuid: string }\n\ntype QueryFn<\n M extends MessageWithUuid,\n C extends { abortController: AbortController },\n> = (\n messages: M[],\n systemPrompt: string[],\n context: { [k: string]: string },\n canUseTool: unknown,\n toolUseContext: C,\n) => AsyncGenerator<M, void>\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value)\n}\n\nfunction extractAssistantTextFromMessage(message: unknown): string {\n if (!isRecord(message) || message.type !== 'assistant') return ''\n const msg = isRecord(message.message) ? message.message : null\n const content = msg?.content\n if (!Array.isArray(content)) return ''\n\n for (const block of content) {\n const record = isRecord(block) ? block : null\n if (!record) continue\n if (record.type === 'text' && typeof record.text === 'string') {\n return record.text\n }\n }\n\n return ''\n}\n\nfunction extractAssistantUsage(message: unknown): unknown {\n if (!isRecord(message) || message.type !== 'assistant') return undefined\n const msg = isRecord(message.message) ? message.message : null\n return msg?.usage\n}\n\nexport async function runKodeAgentStreamJsonSession<\n M extends MessageWithUuid,\n C extends { abortController: AbortController },\n>(args: {\n structured: KodeAgentStructuredStdio\n query: QueryFn<M, C>\n makeUserMessage: (\n content: string | unknown[],\n uuidOverride: string | null,\n ) => M\n writeSdkLine: (obj: SdkMessage) => void\n sessionId: string\n systemPrompt: string[]\n jsonSchema?: Record<string, unknown> | null\n context: { [k: string]: string }\n canUseTool: unknown\n toolUseContextBase: Omit<C, 'abortController'> & {\n abortController?: never\n }\n replayUserMessages: boolean\n getTotalCostUsd: () => number\n onActiveTurnAbortControllerChanged?: (\n controller: AbortController | null,\n ) => void\n initialMessages?: M[]\n}): Promise<void> {\n const conversation: M[] = [...(args.initialMessages ?? [])]\n const seenUserUuids = new Set<string>()\n\n while (true) {\n let sdkUser: unknown\n try {\n sdkUser = await args.structured.nextUserMessage()\n } catch {\n return\n }\n\n const sdkUserRecord = isRecord(sdkUser) ? sdkUser : null\n const sdkMessage = isRecord(sdkUserRecord?.message)\n ? sdkUserRecord?.message\n : null\n const sdkContent = sdkMessage?.content\n if (typeof sdkContent !== 'string' && !Array.isArray(sdkContent)) {\n throw new Error('Error: Invalid stream-json user message content')\n }\n\n const providedUuid =\n typeof sdkUserRecord?.uuid === 'string' && sdkUserRecord.uuid\n ? String(sdkUserRecord.uuid)\n : null\n\n const isDuplicate = Boolean(providedUuid && seenUserUuids.has(providedUuid))\n\n const userMsg = args.makeUserMessage(sdkContent, providedUuid)\n\n if (args.replayUserMessages) {\n const sdkUserOut = kodeMessageToSdkMessage(userMsg, args.sessionId)\n if (sdkUserOut) args.writeSdkLine(sdkUserOut)\n }\n\n if (isDuplicate) {\n continue\n }\n\n if (providedUuid) seenUserUuids.add(providedUuid)\n\n conversation.push(userMsg)\n\n const costBefore = args.getTotalCostUsd()\n const startedAt = Date.now()\n const turnAbortController = new AbortController()\n args.onActiveTurnAbortControllerChanged?.(turnAbortController)\n\n let lastAssistant: M | null = null\n let queryError: unknown = null\n const toAppend: M[] = []\n\n try {\n const inputForTurn = [...conversation]\n const toolUseContext = {\n ...args.toolUseContextBase,\n abortController: turnAbortController,\n } as C\n\n for await (const m of args.query(\n inputForTurn,\n args.systemPrompt,\n args.context,\n args.canUseTool,\n toolUseContext,\n )) {\n if (m.type === 'assistant') lastAssistant = m\n if (m.type !== 'progress') {\n toAppend.push(m)\n }\n\n const sdk = kodeMessageToSdkMessage(m, args.sessionId)\n if (sdk) args.writeSdkLine(sdk)\n }\n } catch (e) {\n queryError = e\n try {\n turnAbortController.abort()\n } catch {}\n } finally {\n args.onActiveTurnAbortControllerChanged?.(null)\n }\n\n conversation.push(...toAppend)\n\n const textFromAssistant = extractAssistantTextFromMessage(lastAssistant)\n const resultText =\n typeof textFromAssistant === 'string' && textFromAssistant\n ? textFromAssistant\n : queryError instanceof Error\n ? queryError.message\n : queryError\n ? String(queryError)\n : ''\n\n let structuredOutput: Record<string, unknown> | undefined\n if (args.jsonSchema && !queryError) {\n try {\n const fenced = String(resultText).trim()\n const unfenced = (() => {\n const m = fenced.match(/^```(?:json)?\\\\s*([\\\\s\\\\S]*?)\\\\s*```$/i)\n return m ? m[1]!.trim() : fenced\n })()\n\n const parsed = JSON.parse(unfenced) as unknown\n const { default: Ajv } = await import('ajv')\n const ajv = new Ajv({ allErrors: true, strict: false })\n const validate = ajv.compile(args.jsonSchema)\n const ok = validate(parsed)\n if (!ok) {\n const errorText =\n typeof ajv.errorsText === 'function'\n ? ajv.errorsText(validate.errors, { separator: '; ' })\n : JSON.stringify(validate.errors ?? [])\n throw new Error(\n `Structured output failed JSON schema validation: ${errorText}`,\n )\n }\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n throw new Error('Structured output must be a JSON object')\n }\n structuredOutput = parsed as Record<string, unknown>\n } catch (e) {\n queryError = e\n }\n }\n\n const usage = extractAssistantUsage(lastAssistant)\n const durationMs = Date.now() - startedAt\n const totalCostUsd = Math.max(0, args.getTotalCostUsd() - costBefore)\n const isError = Boolean(queryError) || turnAbortController.signal.aborted\n\n args.writeSdkLine(\n makeSdkResultMessage({\n sessionId: args.sessionId,\n result: String(resultText),\n structuredOutput,\n numTurns: 1,\n usage,\n totalCostUsd,\n durationMs,\n durationApiMs: 0,\n isError,\n }),\n )\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,15 +1,13 @@
1
- import { createRequire as __kodeCreateRequire } from "node:module";
2
- const require = __kodeCreateRequire(import.meta.url);
3
- import {
4
- AbortError
5
- } from "./chunk-UYXEDKOZ.js";
1
+ import "./chunk-54KOYG5C.js";
6
2
 
7
- // src/utils/protocol/kodeAgentStructuredStdio.ts
3
+ // packages/protocol/src/utils/kodeAgentStructuredStdio.ts
8
4
  import { createInterface } from "node:readline";
5
+
6
+ // packages/protocol/src/structuredStdio.ts
9
7
  function isRecord(value) {
10
8
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
11
9
  }
12
- function tryParseLine(line) {
10
+ function tryParseStructuredInputLine(line) {
13
11
  if (!line.trim()) return null;
14
12
  try {
15
13
  const parsed = JSON.parse(line);
@@ -20,6 +18,14 @@ function tryParseLine(line) {
20
18
  return null;
21
19
  }
22
20
  }
21
+
22
+ // packages/protocol/src/utils/kodeAgentStructuredStdio.ts
23
+ var AbortError = class extends Error {
24
+ constructor(message) {
25
+ super(message);
26
+ this.name = "AbortError";
27
+ }
28
+ };
23
29
  function makeRequestId() {
24
30
  return Math.random().toString(36).slice(2, 15);
25
31
  }
@@ -92,7 +98,7 @@ var KodeAgentStructuredStdio = class {
92
98
  });
93
99
  }
94
100
  handleLine(line) {
95
- const msg = tryParseLine(line);
101
+ const msg = tryParseStructuredInputLine(line);
96
102
  if (!msg) return;
97
103
  if (msg.type === "keep_alive") {
98
104
  return;
@@ -243,7 +249,6 @@ var KodeAgentStructuredStdio = class {
243
249
  });
244
250
  }
245
251
  };
246
-
247
252
  export {
248
253
  KodeAgentStructuredStdio
249
254
  };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../packages/protocol/src/utils/kodeAgentStructuredStdio.ts", "../../packages/protocol/src/structuredStdio.ts"],
4
+ "sourcesContent": ["import { createInterface } from 'node:readline'\n\nimport type {\n ControlRequestMessage,\n ControlResponseMessage,\n UserInputMessage,\n} from '../structuredStdio'\nimport { tryParseStructuredInputLine } from '../structuredStdio'\n\nclass AbortError extends Error {\n constructor(message?: string) {\n super(message)\n this.name = 'AbortError'\n }\n}\n\nfunction makeRequestId(): string {\n return Math.random().toString(36).slice(2, 15)\n}\n\nexport class KodeAgentStructuredStdio {\n private started = false\n private inputClosed = false\n private pendingRequests = new Map<\n string,\n {\n resolve: (msg: ControlResponseMessage['response']) => void\n reject: (err: Error) => void\n cleanup: () => void\n }\n >()\n private queuedUserMessages: UserInputMessage[] = []\n private awaitingUserWaiters: Array<{\n resolve: (msg: UserInputMessage) => void\n reject: (err: Error) => void\n }> = []\n\n constructor(\n private input: NodeJS.ReadableStream,\n private output: NodeJS.WritableStream,\n private opts: {\n onInterrupt?: () => void\n onControlRequest?: (msg: ControlRequestMessage) => Promise<unknown | void>\n } = {},\n ) {}\n\n start(): void {\n if (this.started) return\n this.started = true\n\n const rl = createInterface({ input: this.input })\n ;(async () => {\n for await (const line of rl) {\n this.handleLine(String(line))\n }\n })()\n .catch(() => {})\n .finally(() => {\n this.inputClosed = true\n rl.close()\n this.rejectAllPending(new Error('Stream closed'))\n this.rejectAllUserWaiters(new Error('Stream closed'))\n })\n }\n\n private rejectAllPending(err: Error): void {\n for (const pending of this.pendingRequests.values()) {\n pending.cleanup()\n pending.reject(err)\n }\n this.pendingRequests.clear()\n }\n\n private rejectAllUserWaiters(err: Error): void {\n for (const waiter of this.awaitingUserWaiters.splice(0)) {\n waiter.reject(err)\n }\n }\n\n private write(obj: unknown): void {\n this.output.write(JSON.stringify(obj) + '\\n')\n }\n\n private sendControlResponseSuccess(\n requestId: string,\n response?: unknown,\n ): void {\n this.write({\n type: 'control_response',\n response: {\n subtype: 'success',\n request_id: requestId,\n ...(response !== undefined ? { response } : {}),\n },\n })\n }\n\n private sendControlResponseError(requestId: string, error: string): void {\n this.write({\n type: 'control_response',\n response: {\n subtype: 'error',\n request_id: requestId,\n error,\n },\n })\n }\n\n private sendControlCancelRequest(requestId: string): void {\n this.write({\n type: 'control_cancel_request',\n request_id: requestId,\n })\n }\n\n private handleLine(line: string): void {\n const msg = tryParseStructuredInputLine(line)\n if (!msg) return\n\n if (msg.type === 'keep_alive') {\n return\n }\n\n if (msg.type === 'user') {\n const userMsg = msg as UserInputMessage\n const waiter = this.awaitingUserWaiters.shift()\n if (waiter) waiter.resolve(userMsg)\n else this.queuedUserMessages.push(userMsg)\n return\n }\n\n if (msg.type === 'control_response') {\n const responseMsg = msg as ControlResponseMessage\n const requestId = responseMsg.response?.request_id\n if (typeof requestId !== 'string' || !requestId) return\n const pending = this.pendingRequests.get(requestId)\n if (!pending) return\n pending.cleanup()\n this.pendingRequests.delete(requestId)\n pending.resolve(responseMsg.response)\n return\n }\n\n if (msg.type === 'control_request') {\n const requestMsg = msg as ControlRequestMessage\n const requestId = requestMsg.request_id\n const subtype = requestMsg.request?.subtype\n if (typeof requestId !== 'string' || !requestId) return\n if (typeof subtype !== 'string' || !subtype) {\n this.sendControlResponseError(\n requestId,\n 'Invalid control request (missing subtype)',\n )\n return\n }\n\n if (subtype === 'interrupt') {\n this.opts.onInterrupt?.()\n this.sendControlResponseSuccess(requestId)\n return\n }\n\n const handler = this.opts.onControlRequest\n if (handler) {\n Promise.resolve()\n .then(async () => await handler(requestMsg))\n .then(response =>\n this.sendControlResponseSuccess(requestId, response),\n )\n .catch(err =>\n this.sendControlResponseError(\n requestId,\n err instanceof Error ? err.message : String(err),\n ),\n )\n return\n }\n\n this.sendControlResponseError(\n requestId,\n `Unsupported control request subtype: ${subtype}`,\n )\n }\n }\n\n async nextUserMessage(args?: {\n signal?: AbortSignal\n timeoutMs?: number\n }): Promise<UserInputMessage> {\n if (this.queuedUserMessages.length > 0) {\n return this.queuedUserMessages.shift()!\n }\n if (this.inputClosed) {\n throw new Error('Stream closed')\n }\n\n const timeoutMs =\n typeof args?.timeoutMs === 'number' && Number.isFinite(args.timeoutMs)\n ? Math.max(0, args.timeoutMs)\n : null\n\n return await new Promise<UserInputMessage>((resolve, reject) => {\n let settled = false\n let waiter: {\n resolve: (msg: UserInputMessage) => void\n reject: (err: Error) => void\n } | null = null\n const onAbort = () => {\n cleanup()\n reject(new AbortError('User input aborted.'))\n }\n\n const onTimeout = () => {\n cleanup()\n reject(new Error('Timed out waiting for user input.'))\n }\n\n const cleanup = () => {\n if (settled) return\n settled = true\n if (args?.signal) args.signal.removeEventListener('abort', onAbort)\n if (timeoutId) clearTimeout(timeoutId)\n if (waiter) {\n const idx = this.awaitingUserWaiters.indexOf(waiter)\n if (idx >= 0) this.awaitingUserWaiters.splice(idx, 1)\n }\n }\n\n let timeoutId: NodeJS.Timeout | null = null\n if (timeoutMs !== null) timeoutId = setTimeout(onTimeout, timeoutMs)\n if (args?.signal)\n args.signal.addEventListener('abort', onAbort, { once: true })\n\n waiter = {\n resolve: msg => {\n cleanup()\n resolve(msg)\n },\n reject: err => {\n cleanup()\n reject(err)\n },\n }\n\n this.awaitingUserWaiters.push(waiter)\n })\n }\n\n async sendRequest<TResponse = unknown>(\n request: Record<string, unknown>,\n args?: { signal?: AbortSignal; timeoutMs?: number },\n ): Promise<TResponse> {\n if (this.inputClosed) {\n throw new Error('Stream closed')\n }\n if (args?.signal?.aborted) {\n throw new AbortError('Request aborted.')\n }\n\n const requestId = makeRequestId()\n this.write({ type: 'control_request', request_id: requestId, request })\n\n const timeoutMs =\n typeof args?.timeoutMs === 'number' && Number.isFinite(args.timeoutMs)\n ? Math.max(0, args.timeoutMs)\n : null\n\n return await new Promise<TResponse>((resolve, reject) => {\n const onAbort = () => {\n this.sendControlCancelRequest(requestId)\n this.pendingRequests.delete(requestId)\n cleanup()\n reject(new AbortError('Request aborted.'))\n }\n\n const onTimeout = () => {\n this.sendControlCancelRequest(requestId)\n this.pendingRequests.delete(requestId)\n cleanup()\n reject(new Error('Timed out waiting for control response.'))\n }\n\n const cleanup = () => {\n if (args?.signal) args.signal.removeEventListener('abort', onAbort)\n if (timeoutId) clearTimeout(timeoutId)\n }\n\n let timeoutId: NodeJS.Timeout | null = null\n if (timeoutMs !== null) timeoutId = setTimeout(onTimeout, timeoutMs)\n if (args?.signal)\n args.signal.addEventListener('abort', onAbort, { once: true })\n\n this.pendingRequests.set(requestId, {\n cleanup,\n resolve: response => {\n if (response.subtype === 'error') {\n reject(\n new Error(response.error || 'Unknown control response error'),\n )\n return\n }\n resolve((response.response ?? null) as TResponse)\n },\n reject,\n })\n })\n }\n}\n", "export type ControlRequestMessage = {\n type: 'control_request'\n request_id: string\n request: { subtype: string; [key: string]: unknown }\n}\n\nexport type KeepAliveMessage = { type: 'keep_alive' }\n\nexport type ControlResponseMessage = {\n type: 'control_response'\n response: {\n request_id: string\n subtype: 'success' | 'error'\n response?: unknown\n error?: string\n }\n}\n\nexport type ControlCancelRequestMessage = {\n type: 'control_cancel_request'\n request_id: string\n}\n\nexport type UserInputMessage = {\n type: 'user'\n uuid?: string\n parent_tool_use_id?: string | null\n message: { role: 'user'; content: unknown }\n}\n\nexport type StructuredInputMessage =\n | ControlRequestMessage\n | ControlResponseMessage\n | ControlCancelRequestMessage\n | UserInputMessage\n | KeepAliveMessage\n | { type: string; [key: string]: unknown }\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value)\n}\n\nexport function tryParseStructuredInputLine(\n line: string,\n): StructuredInputMessage | null {\n if (!line.trim()) return null\n try {\n const parsed = JSON.parse(line) as unknown\n if (!isRecord(parsed)) return null\n if (typeof parsed.type !== 'string') return null\n return parsed as StructuredInputMessage\n } catch {\n return null\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,5 +1,3 @@
1
- import { createRequire as __kodeCreateRequire } from "node:module";
2
- const require = __kodeCreateRequire(import.meta.url);
3
1
  import {
4
2
  __resetKodeHooksCacheForTests,
5
3
  drainHookSystemPromptAdditions,
@@ -13,13 +11,17 @@ import {
13
11
  runStopHooks,
14
12
  runUserPromptSubmitHooks,
15
13
  updateHookTranscriptForMessages
16
- } from "./chunk-ARZSBOAO.js";
17
- import "./chunk-NPFOMITO.js";
18
- import "./chunk-HCBELH4J.js";
19
- import "./chunk-S3J2TLV6.js";
20
- import "./chunk-YXYYDIMI.js";
21
- import "./chunk-F2SJXUDI.js";
22
- import "./chunk-JC6NCUG5.js";
14
+ } from "./chunk-3BYE3ME6.js";
15
+ import "./chunk-M7P3QNRU.js";
16
+ import "./chunk-SWQV4KSY.js";
17
+ import "./chunk-3OEJVB5A.js";
18
+ import "./chunk-BBJFHTBC.js";
19
+ import "./chunk-QHQOBUF6.js";
20
+ import "./chunk-W5EGGA44.js";
21
+ import "./chunk-DXD76CMV.js";
22
+ import "./chunk-XR2W3MAM.js";
23
+ import "./chunk-B3MW3YGY.js";
24
+ import "./chunk-54KOYG5C.js";
23
25
  export {
24
26
  __resetKodeHooksCacheForTests,
25
27
  drainHookSystemPromptAdditions,