@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,577 @@
1
+ import {
2
+ addToHistory
3
+ } from "./chunk-IN7XZ7BC.js";
4
+ import {
5
+ getCurrentOutputStyleDefinition,
6
+ getOutputStyleSystemPromptAdditions
7
+ } from "./chunk-4EO6SIQY.js";
8
+ import {
9
+ isUuid
10
+ } from "./chunk-UNOY3VJ2.js";
11
+ import {
12
+ hasPermissionsToUseTool
13
+ } from "./chunk-PPHLQVL7.js";
14
+ import "./chunk-2JN5MY67.js";
15
+ import "./chunk-CP6E5UG6.js";
16
+ import "./chunk-M7P3QNRU.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-LB6TCPDI.js";
23
+ import "./chunk-XR2W3MAM.js";
24
+ import "./chunk-B3MW3YGY.js";
25
+ import "./chunk-54KOYG5C.js";
26
+
27
+ // apps/cli/src/entrypoints/cli/print/controlRequests.ts
28
+ function isRecord(value) {
29
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
30
+ }
31
+ function getClientTransport(client) {
32
+ if (!isRecord(client)) return null;
33
+ const transport = client.transport;
34
+ if (!isRecord(transport)) return null;
35
+ return transport;
36
+ }
37
+ function createPrintControlRequestHandler(args) {
38
+ return async (msg) => {
39
+ const subtype = msg.request?.subtype;
40
+ if (subtype === "initialize") return;
41
+ if (subtype === "set_permission_mode") {
42
+ const mode = msg.request.mode;
43
+ if (mode === "default" || mode === "acceptEdits" || mode === "plan" || mode === "dontAsk" || mode === "bypassPermissions") {
44
+ args.setPermissionMode(mode);
45
+ }
46
+ return;
47
+ }
48
+ if (subtype === "set_model") {
49
+ const requested = msg.request.model;
50
+ if (requested === "default") {
51
+ args.setModel(void 0);
52
+ } else if (typeof requested === "string" && requested.trim()) {
53
+ args.setModel(requested.trim());
54
+ }
55
+ return;
56
+ }
57
+ if (subtype === "set_max_thinking_tokens") {
58
+ const value = msg.request.max_thinking_tokens;
59
+ if (value === null) {
60
+ args.setMaxThinkingTokens(0);
61
+ } else if (typeof value === "number" && Number.isFinite(value) && value >= 0) {
62
+ args.setMaxThinkingTokens(value);
63
+ }
64
+ return;
65
+ }
66
+ if (subtype === "mcp_status") {
67
+ return {
68
+ mcpServers: args.mcpClients.map((c) => ({
69
+ name: c.name,
70
+ status: c.type,
71
+ ...c.type === "connected" && c.capabilities ? { serverInfo: c.capabilities } : {}
72
+ }))
73
+ };
74
+ }
75
+ if (subtype === "mcp_message") {
76
+ const serverName = msg.request.server_name;
77
+ const message = msg.request.message;
78
+ if (typeof serverName === "string" && serverName) {
79
+ const found = args.mcpClients.find((c) => c.name === serverName);
80
+ if (found && found.type === "connected") {
81
+ const transport = getClientTransport(found.client);
82
+ if (transport && typeof transport.onmessage === "function") {
83
+ transport.onmessage(message);
84
+ }
85
+ }
86
+ }
87
+ return;
88
+ }
89
+ if (subtype === "mcp_set_servers") {
90
+ return { ok: true, sdkServersChanged: false };
91
+ }
92
+ if (subtype === "rewind_files") {
93
+ throw new Error("rewind_files is not supported in Kode yet.");
94
+ }
95
+ throw new Error(`Unsupported control request subtype: ${String(subtype)}`);
96
+ };
97
+ }
98
+
99
+ // apps/cli/src/entrypoints/cli/print/permissionPrompt.ts
100
+ function isRecord2(value) {
101
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
102
+ }
103
+ function getOptionalStringProperty(value, key) {
104
+ if (!isRecord2(value)) return void 0;
105
+ const v = value[key];
106
+ return typeof v === "string" ? v : void 0;
107
+ }
108
+ function getOptionalStringInput(input, key) {
109
+ const value = input[key];
110
+ return typeof value === "string" ? value : void 0;
111
+ }
112
+ function isPermissionMode(value) {
113
+ return value === "default" || value === "acceptEdits" || value === "plan" || value === "dontAsk" || value === "bypassPermissions";
114
+ }
115
+ function isToolPermissionContextUpdate(value) {
116
+ if (!isRecord2(value) || typeof value.type !== "string") return false;
117
+ switch (value.type) {
118
+ case "setMode":
119
+ return isPermissionMode(value.mode) && typeof value.destination === "string";
120
+ case "addRules":
121
+ case "replaceRules":
122
+ case "removeRules":
123
+ return typeof value.destination === "string" && (value.behavior === "allow" || value.behavior === "deny" || value.behavior === "ask") && Array.isArray(value.rules) && value.rules.every((rule) => typeof rule === "string");
124
+ case "addDirectories":
125
+ case "removeDirectories":
126
+ return typeof value.destination === "string" && Array.isArray(value.directories) && value.directories.every((dir) => typeof dir === "string");
127
+ default:
128
+ return false;
129
+ }
130
+ }
131
+ function createStdioPermissionPromptCanUseTool(args) {
132
+ return async (tool, input, toolUseContext, assistantMessage) => {
133
+ const base = await args.baseCanUseTool(
134
+ tool,
135
+ input,
136
+ toolUseContext,
137
+ assistantMessage
138
+ );
139
+ if (base.result === true) return { result: true };
140
+ if (base.shouldPromptUser === false) {
141
+ return { result: false, message: base.message };
142
+ }
143
+ try {
144
+ const blockedPath = getOptionalStringProperty(base, "blockedPath") ?? getOptionalStringInput(input, "file_path") ?? getOptionalStringInput(input, "notebook_path") ?? getOptionalStringInput(input, "path");
145
+ const decisionReason = getOptionalStringProperty(base, "decisionReason");
146
+ const response = await args.structured.sendRequest(
147
+ {
148
+ subtype: "can_use_tool",
149
+ tool_name: tool.name,
150
+ input,
151
+ ...typeof toolUseContext.toolUseId === "string" && toolUseContext.toolUseId ? { tool_use_id: toolUseContext.toolUseId } : {},
152
+ ...typeof toolUseContext.agentId === "string" && toolUseContext.agentId ? { agent_id: toolUseContext.agentId } : {},
153
+ ...Array.isArray(base.suggestions) ? { permission_suggestions: base.suggestions } : {},
154
+ ...blockedPath ? { blocked_path: blockedPath } : {},
155
+ ...decisionReason ? { decision_reason: decisionReason } : {}
156
+ },
157
+ {
158
+ signal: toolUseContext.abortController.signal,
159
+ timeoutMs: args.permissionTimeoutMs
160
+ }
161
+ );
162
+ if (response && response.behavior === "allow") {
163
+ if (response.updatedInput && isRecord2(response.updatedInput)) {
164
+ Object.assign(input, response.updatedInput);
165
+ }
166
+ const updatedPermissionsRaw = response.updatedPermissions;
167
+ const updatedPermissions = Array.isArray(updatedPermissionsRaw) ? updatedPermissionsRaw.filter(isToolPermissionContextUpdate) : null;
168
+ const currentContext = args.getToolPermissionContext();
169
+ if (updatedPermissions && updatedPermissions.length > 0 && currentContext) {
170
+ const next = args.applyToolPermissionContextUpdates(
171
+ currentContext,
172
+ updatedPermissions
173
+ );
174
+ args.setToolPermissionContext(next);
175
+ if (toolUseContext.options) {
176
+ toolUseContext.options.toolPermissionContext = next;
177
+ }
178
+ for (const update of updatedPermissions) {
179
+ args.persistToolPermissionUpdateToDisk({
180
+ update,
181
+ projectDir: args.projectDir
182
+ });
183
+ }
184
+ }
185
+ return { result: true };
186
+ }
187
+ if (response && response.behavior === "deny") {
188
+ if (response.interrupt === true) {
189
+ toolUseContext.abortController.abort();
190
+ }
191
+ return { result: false, message: response.message };
192
+ }
193
+ return { result: false, message: base.message };
194
+ } catch (error) {
195
+ const msg = error instanceof Error ? error.message : String(error);
196
+ return {
197
+ result: false,
198
+ message: `Permission prompt failed: ${msg}`,
199
+ shouldPromptUser: false
200
+ };
201
+ }
202
+ };
203
+ }
204
+
205
+ // apps/cli/src/entrypoints/cli/print/runSingleTurn.ts
206
+ async function runSingleTurnPrint(args) {
207
+ let lastAssistant = null;
208
+ let queryError = null;
209
+ try {
210
+ for await (const m of args.runTurn({
211
+ messages: args.messages,
212
+ systemPrompt: args.systemPrompt,
213
+ context: args.context,
214
+ canUseTool: args.canUseTool,
215
+ toolUseContext: args.toolUseContext
216
+ })) {
217
+ if (m.type === "assistant") lastAssistant = m;
218
+ const sdk = args.kodeMessageToSdkMessage(m, args.sessionId);
219
+ if (!sdk) continue;
220
+ if (args.outputFormat === "stream-json") args.writeSdkLine(sdk);
221
+ else args.sdkMessages.push(sdk);
222
+ }
223
+ } catch (e) {
224
+ try {
225
+ args.toolUseContext.abortController.abort();
226
+ } catch {
227
+ }
228
+ queryError = e;
229
+ }
230
+ const textFromAssistant = lastAssistant && lastAssistant.type === "assistant" ? (() => {
231
+ const blocks = lastAssistant.message?.content ?? [];
232
+ const found = blocks.find((block) => {
233
+ if (!block || typeof block !== "object") return false;
234
+ if (!("type" in block) || block.type !== "text")
235
+ return false;
236
+ const record = block;
237
+ return typeof record.text === "string";
238
+ });
239
+ if (!found) return void 0;
240
+ return found.text;
241
+ })() : void 0;
242
+ let text = typeof textFromAssistant === "string" ? textFromAssistant : queryError instanceof Error ? queryError.message : queryError ? String(queryError) : "";
243
+ let structuredOutput;
244
+ if (args.jsonSchema && !queryError) {
245
+ try {
246
+ const raw = typeof textFromAssistant === "string" ? textFromAssistant : "";
247
+ const fenced = raw.trim();
248
+ const unfenced = (() => {
249
+ const m = fenced.match(/^```(?:json)?\\s*([\\s\\S]*?)\\s*```$/i);
250
+ return m ? m[1].trim() : fenced;
251
+ })();
252
+ const parsed = JSON.parse(unfenced);
253
+ const { default: Ajv } = await import("ajv");
254
+ const ajv = new Ajv({ allErrors: true, strict: false });
255
+ const validate = ajv.compile(args.jsonSchema);
256
+ const ok = validate(parsed);
257
+ if (!ok) {
258
+ const errorText = typeof ajv.errorsText === "function" ? ajv.errorsText(validate.errors, { separator: "; " }) : JSON.stringify(validate.errors ?? []);
259
+ throw new Error(
260
+ `Structured output failed JSON schema validation: ${errorText}`
261
+ );
262
+ }
263
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
264
+ throw new Error("Structured output must be a JSON object");
265
+ }
266
+ structuredOutput = parsed;
267
+ } catch (e) {
268
+ const msg = e instanceof Error ? e.message : String(e);
269
+ queryError = new Error(msg);
270
+ text = msg;
271
+ }
272
+ }
273
+ const usage = lastAssistant && lastAssistant.type === "assistant" ? lastAssistant.message?.usage : void 0;
274
+ const totalCostUsd = args.getTotalCostUsd();
275
+ const durationMs = Date.now() - args.startedAt;
276
+ const resultMsg = args.makeSdkResultMessage({
277
+ sessionId: args.sessionId,
278
+ result: String(text),
279
+ structuredOutput,
280
+ numTurns: 1,
281
+ usage,
282
+ totalCostUsd,
283
+ durationMs,
284
+ durationApiMs: 0,
285
+ isError: Boolean(queryError)
286
+ });
287
+ if (args.outputFormat === "stream-json") {
288
+ args.writeSdkLine(resultMsg);
289
+ process.exit(0);
290
+ }
291
+ args.sdkMessages.push(resultMsg);
292
+ if (args.verbose) {
293
+ process.stdout.write(`${JSON.stringify(args.sdkMessages, null, 2)}
294
+ `);
295
+ } else {
296
+ process.stdout.write(`${JSON.stringify(resultMsg, null, 2)}
297
+ `);
298
+ }
299
+ process.exit(0);
300
+ }
301
+
302
+ // apps/cli/src/entrypoints/cli/print/runNonTextPrintMode.ts
303
+ function isUuidValue(value) {
304
+ return isUuid(value);
305
+ }
306
+ function cliRuleList(value) {
307
+ if (!value) return [];
308
+ const raw = Array.isArray(value) ? value : [value];
309
+ return raw.flatMap((v) => String(v ?? "").split(",")).map((v) => v.trim()).filter(Boolean);
310
+ }
311
+ function isPermissionMode2(value) {
312
+ return value === "acceptEdits" || value === "bypassPermissions" || value === "default" || value === "dontAsk" || value === "plan";
313
+ }
314
+ async function runNonTextPrintMode(args) {
315
+ const { createUserMessage } = await import("./messages-EEWWLPHN.js");
316
+ const { getTotalCost } = await import("./cost-tracker-Z2UZT2J5.js");
317
+ const { buildSystemPromptForSession, getSessionContext, runTurn, query } = await import("./engine-MRVF6FK6.js");
318
+ const { getKodeAgentSessionId } = await import("./kodeAgentSessionId-VTNISJ2L.js");
319
+ const { kodeMessageToSdkMessage, makeSdkInitMessage, makeSdkResultMessage } = await import("./kodeAgentStreamJson-X5PLS2S6.js");
320
+ const { KodeAgentStructuredStdio } = await import("./kodeAgentStructuredStdio-SVGDSB4P.js");
321
+ const {
322
+ loadToolPermissionContextFromDisk,
323
+ persistToolPermissionUpdateToDisk
324
+ } = await import("./toolPermissionSettings-EV2EJAXL.js");
325
+ const { applyToolPermissionContextUpdates } = await import("./toolPermissionContext-MOCTRR7N.js");
326
+ const sessionIdForSdk = getKodeAgentSessionId();
327
+ const startedAt = Date.now();
328
+ const sdkMessages = [];
329
+ const normalizedJsonSchema = typeof args.jsonSchema === "string" ? args.jsonSchema.trim() : "";
330
+ const parsedJsonSchema = (() => {
331
+ if (!normalizedJsonSchema) return null;
332
+ try {
333
+ const parsed = JSON.parse(normalizedJsonSchema);
334
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
335
+ throw new Error("Schema must be a JSON object");
336
+ }
337
+ return parsed;
338
+ } catch (error) {
339
+ const msg = error instanceof Error ? error.message : String(error);
340
+ console.error(`Error: Invalid --json-schema: ${msg}`);
341
+ process.exit(1);
342
+ }
343
+ })();
344
+ const outputStyle = getCurrentOutputStyleDefinition();
345
+ const systemPrompt = await buildSystemPromptForSession({
346
+ disableSlashCommands: args.disableSlashCommands,
347
+ systemPromptOverride: args.systemPromptOverride,
348
+ appendSystemPrompt: args.appendSystemPrompt,
349
+ jsonSchema: parsedJsonSchema,
350
+ outputStyleActive: outputStyle !== null,
351
+ keepCodingInstructions: outputStyle?.keepCodingInstructions
352
+ });
353
+ const ctx = await getSessionContext();
354
+ const isBypassAvailable = !args.safe || Boolean(args.allowDangerouslySkipPermissions) || Boolean(args.dangerouslySkipPermissions);
355
+ let toolPermissionContext = loadToolPermissionContextFromDisk({
356
+ projectDir: args.cwd,
357
+ includeKodeProjectConfig: true,
358
+ isBypassPermissionsModeAvailable: isBypassAvailable
359
+ });
360
+ const updates = [];
361
+ const allowedRules = cliRuleList(args.allowedTools);
362
+ const deniedRules = cliRuleList(args.disallowedTools);
363
+ const additionalDirs = cliRuleList(args.addDir);
364
+ if (allowedRules.length > 0) {
365
+ updates.push({
366
+ type: "addRules",
367
+ destination: "cliArg",
368
+ behavior: "allow",
369
+ rules: allowedRules
370
+ });
371
+ }
372
+ if (deniedRules.length > 0) {
373
+ updates.push({
374
+ type: "addRules",
375
+ destination: "cliArg",
376
+ behavior: "deny",
377
+ rules: deniedRules
378
+ });
379
+ }
380
+ if (additionalDirs.length > 0) {
381
+ updates.push({
382
+ type: "addDirectories",
383
+ destination: "cliArg",
384
+ directories: additionalDirs
385
+ });
386
+ }
387
+ const normalizedPermissionMode = typeof args.permissionMode === "string" ? args.permissionMode.trim() : "";
388
+ if (normalizedPermissionMode) {
389
+ const normalized = normalizedPermissionMode === "delegate" ? "default" : normalizedPermissionMode;
390
+ if (!isPermissionMode2(normalized)) {
391
+ console.error(
392
+ `Error: Invalid --permission-mode "${normalizedPermissionMode}". Expected one of: acceptEdits, bypassPermissions, default, delegate, dontAsk, plan`
393
+ );
394
+ process.exit(1);
395
+ }
396
+ updates.push({
397
+ type: "setMode",
398
+ destination: "cliArg",
399
+ mode: normalized
400
+ });
401
+ }
402
+ if (args.dangerouslySkipPermissions) {
403
+ updates.push({
404
+ type: "setMode",
405
+ destination: "cliArg",
406
+ mode: "bypassPermissions"
407
+ });
408
+ }
409
+ if (updates.length > 0) {
410
+ toolPermissionContext = applyToolPermissionContextUpdates(
411
+ toolPermissionContext,
412
+ updates
413
+ );
414
+ }
415
+ const printOptions = {
416
+ commands: args.commands,
417
+ tools: args.toolsForPrint,
418
+ verbose: true,
419
+ safeMode: Boolean(args.safe),
420
+ forkNumber: 0,
421
+ messageLogName: "unused",
422
+ maxThinkingTokens: 0,
423
+ persistSession: args.sessionPersistence !== false,
424
+ toolPermissionContext,
425
+ mcpClients: args.mcpClients,
426
+ shouldAvoidPermissionPrompts: args.normalizedInputFormat !== "stream-json",
427
+ model: typeof args.model === "string" && args.model.trim() ? args.model.trim() : void 0,
428
+ getCustomSystemPromptAdditions: getOutputStyleSystemPromptAdditions
429
+ };
430
+ const availableTools = args.toolsForPrint.map((t) => t.name);
431
+ const slashCommands = args.disableSlashCommands === true ? void 0 : args.commands.filter((c) => !c.isHidden).map((c) => `/${c.userFacingName()}`);
432
+ const initMsg = makeSdkInitMessage({
433
+ sessionId: sessionIdForSdk,
434
+ cwd: args.cwd,
435
+ tools: availableTools,
436
+ slashCommands
437
+ });
438
+ const writeSdkLine = (obj) => {
439
+ process.stdout.write(JSON.stringify(obj) + "\n");
440
+ };
441
+ if (args.normalizedOutputFormat === "stream-json") {
442
+ writeSdkLine(initMsg);
443
+ } else {
444
+ sdkMessages.push(initMsg);
445
+ }
446
+ let activeTurnAbortController = null;
447
+ const structured = args.normalizedInputFormat === "stream-json" ? new KodeAgentStructuredStdio(process.stdin, process.stdout, {
448
+ onInterrupt: () => {
449
+ activeTurnAbortController?.abort();
450
+ },
451
+ onControlRequest: createPrintControlRequestHandler({
452
+ mcpClients: args.mcpClients,
453
+ setPermissionMode: (mode) => {
454
+ if (printOptions.toolPermissionContext) {
455
+ printOptions.toolPermissionContext.mode = mode;
456
+ }
457
+ },
458
+ setModel: (nextModel) => {
459
+ printOptions.model = nextModel;
460
+ },
461
+ setMaxThinkingTokens: (tokens) => {
462
+ printOptions.maxThinkingTokens = tokens;
463
+ }
464
+ })
465
+ }) : null;
466
+ if (structured) structured.start();
467
+ const permissionTimeoutMs = (() => {
468
+ const raw = process.env.KODE_STDIO_PERMISSION_TIMEOUT_MS;
469
+ const n = raw ? Number(raw) : NaN;
470
+ return Number.isFinite(n) && n > 0 ? n : 3e4;
471
+ })();
472
+ const canUseTool = args.normalizedPermissionPromptTool === "stdio" && structured ? createStdioPermissionPromptCanUseTool({
473
+ structured,
474
+ permissionTimeoutMs,
475
+ projectDir: args.cwd,
476
+ baseCanUseTool: hasPermissionsToUseTool,
477
+ getToolPermissionContext: () => printOptions.toolPermissionContext,
478
+ setToolPermissionContext: (next) => {
479
+ printOptions.toolPermissionContext = next;
480
+ },
481
+ applyToolPermissionContextUpdates,
482
+ persistToolPermissionUpdateToDisk
483
+ }) : hasPermissionsToUseTool;
484
+ if (args.normalizedInputFormat === "stream-json") {
485
+ if (!structured) {
486
+ console.error("Error: Structured stdin is not available");
487
+ process.exit(1);
488
+ }
489
+ const { runKodeAgentStreamJsonSession } = await import("./kodeAgentStreamJsonSession-RDXM4XYF.js");
490
+ const isRecord3 = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
491
+ const normalizeUserContent = (content) => {
492
+ if (typeof content === "string") return content;
493
+ const blocks = [];
494
+ for (const block of content) {
495
+ if (!isRecord3(block) || typeof block.type !== "string") continue;
496
+ const normalized = block.type === "server_tool_use" || block.type === "mcp_tool_use" ? { ...block, type: "tool_use" } : block;
497
+ blocks.push(normalized);
498
+ }
499
+ return blocks;
500
+ };
501
+ await runKodeAgentStreamJsonSession({
502
+ structured,
503
+ query,
504
+ makeUserMessage: (content, uuidOverride) => {
505
+ const msg = createUserMessage(normalizeUserContent(content));
506
+ if (uuidOverride && isUuidValue(uuidOverride)) msg.uuid = uuidOverride;
507
+ return msg;
508
+ },
509
+ writeSdkLine: (obj) => writeSdkLine(obj),
510
+ sessionId: sessionIdForSdk,
511
+ systemPrompt,
512
+ jsonSchema: parsedJsonSchema,
513
+ context: ctx,
514
+ canUseTool,
515
+ toolUseContextBase: {
516
+ options: printOptions,
517
+ messageId: void 0,
518
+ readFileTimestamps: {},
519
+ setToolJSX: () => {
520
+ }
521
+ },
522
+ replayUserMessages: Boolean(args.replayUserMessages),
523
+ getTotalCostUsd: () => getTotalCost(),
524
+ onActiveTurnAbortControllerChanged: (controller) => {
525
+ activeTurnAbortController = controller;
526
+ },
527
+ initialMessages: args.initialMessages
528
+ });
529
+ process.exit(0);
530
+ }
531
+ addToHistory(args.inputPrompt);
532
+ const userMsg = createUserMessage(args.inputPrompt);
533
+ const baseMessages = [...args.initialMessages ?? [], userMsg];
534
+ const sdkUser = kodeMessageToSdkMessage(userMsg, sessionIdForSdk);
535
+ if (sdkUser) {
536
+ if (args.normalizedOutputFormat === "stream-json") {
537
+ writeSdkLine(sdkUser);
538
+ } else {
539
+ sdkMessages.push(sdkUser);
540
+ }
541
+ }
542
+ const abortController = new AbortController();
543
+ await runSingleTurnPrint({
544
+ runTurn: (turnArgs) => runTurn({
545
+ messages: turnArgs.messages,
546
+ systemPrompt: turnArgs.systemPrompt,
547
+ context: turnArgs.context,
548
+ canUseTool: turnArgs.canUseTool,
549
+ toolUseContext: turnArgs.toolUseContext
550
+ }),
551
+ kodeMessageToSdkMessage,
552
+ makeSdkResultMessage,
553
+ messages: baseMessages,
554
+ systemPrompt,
555
+ context: ctx,
556
+ canUseTool,
557
+ toolUseContext: {
558
+ options: printOptions,
559
+ abortController,
560
+ messageId: void 0,
561
+ readFileTimestamps: {},
562
+ setToolJSX: () => {
563
+ }
564
+ },
565
+ sessionId: sessionIdForSdk,
566
+ outputFormat: args.normalizedOutputFormat,
567
+ writeSdkLine,
568
+ sdkMessages,
569
+ startedAt,
570
+ getTotalCostUsd: () => getTotalCost(),
571
+ jsonSchema: parsedJsonSchema,
572
+ verbose: args.verbose
573
+ });
574
+ }
575
+ export {
576
+ runNonTextPrintMode
577
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../apps/cli/src/entrypoints/cli/print/controlRequests.ts", "../../apps/cli/src/entrypoints/cli/print/permissionPrompt.ts", "../../apps/cli/src/entrypoints/cli/print/runSingleTurn.ts", "../../apps/cli/src/entrypoints/cli/print/runNonTextPrintMode.ts"],
4
+ "sourcesContent": ["import type { PermissionMode } from '#core/types/PermissionMode'\nimport type { WrappedClient } from '#core/mcp/client'\nimport type { ControlRequestMessage } from '#protocol/structuredStdio'\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value)\n}\n\nfunction getClientTransport(\n client: unknown,\n): { onmessage?: (message: unknown) => void } | null {\n if (!isRecord(client)) return null\n const transport = client.transport\n if (!isRecord(transport)) return null\n return transport as { onmessage?: (message: unknown) => void }\n}\n\nexport function createPrintControlRequestHandler(args: {\n mcpClients: WrappedClient[]\n setPermissionMode: (mode: PermissionMode) => void\n setModel: (model: string | undefined) => void\n setMaxThinkingTokens: (tokens: number) => void\n}): (msg: ControlRequestMessage) => Promise<unknown | void> {\n return async msg => {\n const subtype = msg.request?.subtype\n\n if (subtype === 'initialize') return\n\n if (subtype === 'set_permission_mode') {\n const mode = msg.request.mode\n if (\n mode === 'default' ||\n mode === 'acceptEdits' ||\n mode === 'plan' ||\n mode === 'dontAsk' ||\n mode === 'bypassPermissions'\n ) {\n args.setPermissionMode(mode)\n }\n return\n }\n\n if (subtype === 'set_model') {\n const requested = msg.request.model\n if (requested === 'default') {\n args.setModel(undefined)\n } else if (typeof requested === 'string' && requested.trim()) {\n args.setModel(requested.trim())\n }\n return\n }\n\n if (subtype === 'set_max_thinking_tokens') {\n const value = msg.request.max_thinking_tokens\n if (value === null) {\n args.setMaxThinkingTokens(0)\n } else if (\n typeof value === 'number' &&\n Number.isFinite(value) &&\n value >= 0\n ) {\n args.setMaxThinkingTokens(value)\n }\n return\n }\n\n if (subtype === 'mcp_status') {\n return {\n mcpServers: args.mcpClients.map(c => ({\n name: c.name,\n status: c.type,\n ...(c.type === 'connected' && c.capabilities\n ? { serverInfo: c.capabilities }\n : {}),\n })),\n }\n }\n\n if (subtype === 'mcp_message') {\n const serverName = msg.request.server_name\n const message = msg.request.message\n if (typeof serverName === 'string' && serverName) {\n const found = args.mcpClients.find(c => c.name === serverName)\n if (found && found.type === 'connected') {\n const transport = getClientTransport(found.client)\n if (transport && typeof transport.onmessage === 'function') {\n transport.onmessage(message)\n }\n }\n }\n return\n }\n\n if (subtype === 'mcp_set_servers') {\n return { ok: true, sdkServersChanged: false }\n }\n\n if (subtype === 'rewind_files') {\n throw new Error('rewind_files is not supported in Kode yet.')\n }\n\n throw new Error(`Unsupported control request subtype: ${String(subtype)}`)\n }\n}\n", "import type { CanUseToolFn } from '#core/permissions/canUseTool'\nimport type { ToolPermissionContext } from '#core/types/toolPermissionContext'\nimport type { ToolPermissionContextUpdate } from '#core/types/toolPermissionContext'\nimport type { Tool } from '#core/tooling/Tool'\nimport type { ToolUseContext } from '#core/tooling/Tool'\nimport type { AssistantMessage } from '#core/query'\nimport type { KodeAgentStructuredStdio } from '#protocol/utils/kodeAgentStructuredStdio'\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value)\n}\n\nfunction getOptionalStringProperty(\n value: unknown,\n key: string,\n): string | undefined {\n if (!isRecord(value)) return undefined\n const v = value[key]\n return typeof v === 'string' ? v : undefined\n}\n\nfunction getOptionalStringInput(\n input: Record<string, unknown>,\n key: string,\n): string | undefined {\n const value = input[key]\n return typeof value === 'string' ? value : undefined\n}\n\nfunction isPermissionMode(\n value: unknown,\n): value is ToolPermissionContext['mode'] {\n return (\n value === 'default' ||\n value === 'acceptEdits' ||\n value === 'plan' ||\n value === 'dontAsk' ||\n value === 'bypassPermissions'\n )\n}\n\nfunction isToolPermissionContextUpdate(\n value: unknown,\n): value is ToolPermissionContextUpdate {\n if (!isRecord(value) || typeof value.type !== 'string') return false\n\n switch (value.type) {\n case 'setMode':\n return (\n isPermissionMode(value.mode) && typeof value.destination === 'string'\n )\n case 'addRules':\n case 'replaceRules':\n case 'removeRules':\n return (\n typeof value.destination === 'string' &&\n (value.behavior === 'allow' ||\n value.behavior === 'deny' ||\n value.behavior === 'ask') &&\n Array.isArray(value.rules) &&\n value.rules.every(rule => typeof rule === 'string')\n )\n case 'addDirectories':\n case 'removeDirectories':\n return (\n typeof value.destination === 'string' &&\n Array.isArray(value.directories) &&\n value.directories.every(dir => typeof dir === 'string')\n )\n default:\n return false\n }\n}\n\ntype AllowResponse = {\n behavior: 'allow'\n updatedInput?: Record<string, unknown>\n updatedPermissions?: unknown\n}\n\ntype DenyResponse = {\n behavior: 'deny'\n message: string\n interrupt?: boolean\n}\n\ntype PromptResponse = AllowResponse | DenyResponse\n\nexport function createStdioPermissionPromptCanUseTool(args: {\n structured: KodeAgentStructuredStdio\n permissionTimeoutMs: number\n projectDir: string\n baseCanUseTool: CanUseToolFn\n getToolPermissionContext: () => ToolPermissionContext | undefined\n setToolPermissionContext: (next: ToolPermissionContext) => void\n applyToolPermissionContextUpdates: (\n context: ToolPermissionContext,\n updates: ToolPermissionContextUpdate[],\n ) => ToolPermissionContext\n persistToolPermissionUpdateToDisk: (args: {\n update: ToolPermissionContextUpdate\n projectDir: string\n }) => { persisted: boolean }\n}): CanUseToolFn {\n return async (\n tool: Tool,\n input: Record<string, unknown>,\n toolUseContext: ToolUseContext,\n assistantMessage: AssistantMessage,\n ) => {\n const base = await args.baseCanUseTool(\n tool,\n input,\n toolUseContext,\n assistantMessage,\n )\n\n if (base.result === true) return { result: true as const }\n\n if (base.shouldPromptUser === false) {\n return { result: false as const, message: base.message }\n }\n\n try {\n const blockedPath =\n getOptionalStringProperty(base, 'blockedPath') ??\n getOptionalStringInput(input, 'file_path') ??\n getOptionalStringInput(input, 'notebook_path') ??\n getOptionalStringInput(input, 'path')\n\n const decisionReason = getOptionalStringProperty(base, 'decisionReason')\n\n const response = await args.structured.sendRequest<PromptResponse>(\n {\n subtype: 'can_use_tool',\n tool_name: tool.name,\n input,\n ...(typeof toolUseContext.toolUseId === 'string' &&\n toolUseContext.toolUseId\n ? { tool_use_id: toolUseContext.toolUseId }\n : {}),\n ...(typeof toolUseContext.agentId === 'string' &&\n toolUseContext.agentId\n ? { agent_id: toolUseContext.agentId }\n : {}),\n ...(Array.isArray(base.suggestions)\n ? { permission_suggestions: base.suggestions }\n : {}),\n ...(blockedPath ? { blocked_path: blockedPath } : {}),\n ...(decisionReason ? { decision_reason: decisionReason } : {}),\n },\n {\n signal: toolUseContext.abortController.signal,\n timeoutMs: args.permissionTimeoutMs,\n },\n )\n\n if (response && response.behavior === 'allow') {\n if (response.updatedInput && isRecord(response.updatedInput)) {\n Object.assign(input, response.updatedInput)\n }\n\n const updatedPermissionsRaw = response.updatedPermissions\n const updatedPermissions = Array.isArray(updatedPermissionsRaw)\n ? updatedPermissionsRaw.filter(isToolPermissionContextUpdate)\n : null\n\n const currentContext = args.getToolPermissionContext()\n if (\n updatedPermissions &&\n updatedPermissions.length > 0 &&\n currentContext\n ) {\n const next = args.applyToolPermissionContextUpdates(\n currentContext,\n updatedPermissions,\n )\n\n args.setToolPermissionContext(next)\n if (toolUseContext.options) {\n toolUseContext.options.toolPermissionContext = next\n }\n\n for (const update of updatedPermissions) {\n args.persistToolPermissionUpdateToDisk({\n update,\n projectDir: args.projectDir,\n })\n }\n }\n\n return { result: true as const }\n }\n\n if (response && response.behavior === 'deny') {\n if (response.interrupt === true) {\n toolUseContext.abortController.abort()\n }\n return { result: false as const, message: response.message }\n }\n\n return { result: false as const, message: base.message }\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error)\n return {\n result: false as const,\n message: `Permission prompt failed: ${msg}`,\n shouldPromptUser: false,\n }\n }\n }\n}\n", "import type { CanUseToolFn } from '#core/permissions/canUseTool'\nimport type { Message } from '#core/query'\nimport type { QueryToolUseContext } from '#core/engine'\n\ntype RunTurnFn = (args: {\n messages: Message[]\n canUseTool: CanUseToolFn\n toolUseContext: QueryToolUseContext\n systemPrompt: string[]\n context: { [k: string]: string }\n}) => AsyncIterable<Message>\n\ntype KodeMessageToSdkMessageFn = (\n message: Message,\n sessionId: string,\n) => unknown | null\n\ntype MakeSdkResultMessageFn = (args: {\n sessionId: string\n result: string\n structuredOutput?: Record<string, unknown>\n numTurns: number\n usage?: unknown\n totalCostUsd: number\n durationMs: number\n durationApiMs: number\n isError: boolean\n}) => unknown\n\nexport async function runSingleTurnPrint(args: {\n runTurn: RunTurnFn\n kodeMessageToSdkMessage: KodeMessageToSdkMessageFn\n makeSdkResultMessage: MakeSdkResultMessageFn\n messages: Message[]\n systemPrompt: string[]\n context: { [k: string]: string }\n canUseTool: CanUseToolFn\n toolUseContext: QueryToolUseContext\n sessionId: string\n outputFormat: 'json' | 'stream-json'\n writeSdkLine: (obj: unknown) => void\n sdkMessages: unknown[]\n startedAt: number\n getTotalCostUsd: () => number\n jsonSchema: Record<string, unknown> | null\n verbose: boolean | undefined\n}): Promise<void> {\n let lastAssistant: Message | null = null\n let queryError: unknown = null\n\n try {\n for await (const m of args.runTurn({\n messages: args.messages,\n systemPrompt: args.systemPrompt,\n context: args.context,\n canUseTool: args.canUseTool,\n toolUseContext: args.toolUseContext,\n })) {\n if (m.type === 'assistant') lastAssistant = m\n const sdk = args.kodeMessageToSdkMessage(m, args.sessionId)\n if (!sdk) continue\n\n if (args.outputFormat === 'stream-json') args.writeSdkLine(sdk)\n else args.sdkMessages.push(sdk)\n }\n } catch (e) {\n try {\n args.toolUseContext.abortController.abort()\n } catch {}\n queryError = e\n }\n\n const textFromAssistant =\n lastAssistant && lastAssistant.type === 'assistant'\n ? (() => {\n const blocks = lastAssistant.message?.content ?? []\n const found = blocks.find(block => {\n if (!block || typeof block !== 'object') return false\n if (\n !('type' in block) ||\n (block as { type?: unknown }).type !== 'text'\n )\n return false\n const record = block as unknown as Record<string, unknown>\n return typeof record.text === 'string'\n })\n if (!found) return undefined\n return (found as unknown as Record<string, unknown>).text as string\n })()\n : undefined\n\n let text =\n typeof textFromAssistant === 'string'\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 raw = typeof textFromAssistant === 'string' ? textFromAssistant : ''\n const fenced = raw.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)\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 const msg = e instanceof Error ? e.message : String(e)\n queryError = new Error(msg)\n text = msg\n }\n }\n\n const usage =\n lastAssistant && lastAssistant.type === 'assistant'\n ? lastAssistant.message?.usage\n : undefined\n const totalCostUsd = args.getTotalCostUsd()\n const durationMs = Date.now() - args.startedAt\n const resultMsg = args.makeSdkResultMessage({\n sessionId: args.sessionId,\n result: String(text),\n structuredOutput,\n numTurns: 1,\n usage,\n totalCostUsd,\n durationMs,\n durationApiMs: 0,\n isError: Boolean(queryError),\n })\n\n if (args.outputFormat === 'stream-json') {\n args.writeSdkLine(resultMsg)\n process.exit(0)\n }\n\n args.sdkMessages.push(resultMsg)\n if (args.verbose) {\n process.stdout.write(`${JSON.stringify(args.sdkMessages, null, 2)}\\n`)\n } else {\n process.stdout.write(`${JSON.stringify(resultMsg, null, 2)}\\n`)\n }\n process.exit(0)\n}\n", "import { addToHistory } from '#core/history'\nimport { hasPermissionsToUseTool } from '#core/permissions'\nimport { isUuid } from '#core/utils/uuid'\n\nimport type { WrappedClient } from '#core/mcp/client'\nimport type { Message } from '#core/query'\nimport type { Tool } from '#core/tooling/Tool'\nimport type { PermissionMode } from '#core/types/PermissionMode'\nimport type { ToolPermissionContextUpdate } from '#core/types/toolPermissionContext'\nimport type { ContentBlockParam } from '@anthropic-ai/sdk/resources/index.mjs'\n\nimport {\n getOutputStyleSystemPromptAdditions,\n getCurrentOutputStyleDefinition,\n} from '#cli-services/outputStyles'\nimport { createPrintControlRequestHandler } from './controlRequests'\nimport { createStdioPermissionPromptCanUseTool } from './permissionPrompt'\nimport { runSingleTurnPrint } from './runSingleTurn'\n\ntype UUID = `${string}-${string}-${string}-${string}-${string}`\n\nfunction isUuidValue(value: string): value is UUID {\n return isUuid(value)\n}\n\nexport type RunNonTextPrintModeArgs = {\n inputPrompt: string\n cwd: string\n safe?: boolean\n verbose?: boolean\n\n normalizedOutputFormat: 'json' | 'stream-json'\n normalizedInputFormat: 'text' | 'stream-json'\n normalizedPermissionPromptTool: string | null\n replayUserMessages?: boolean\n\n toolsForPrint: Tool[]\n commands: Array<{ isHidden?: boolean; userFacingName: () => string }>\n initialMessages?: Message[]\n sessionPersistence?: boolean\n\n systemPromptOverride?: string\n appendSystemPrompt?: string\n disableSlashCommands?: boolean\n\n allowedTools?: unknown\n disallowedTools?: unknown\n addDir?: unknown\n permissionMode?: string\n dangerouslySkipPermissions?: boolean\n allowDangerouslySkipPermissions?: boolean\n\n jsonSchema?: string\n model?: string\n mcpClients: WrappedClient[]\n}\n\nfunction cliRuleList(value: unknown): string[] {\n if (!value) return []\n const raw = Array.isArray(value) ? value : [value]\n return raw\n .flatMap(v => String(v ?? '').split(','))\n .map(v => v.trim())\n .filter(Boolean)\n}\n\nfunction isPermissionMode(value: string): value is PermissionMode {\n return (\n value === 'acceptEdits' ||\n value === 'bypassPermissions' ||\n value === 'default' ||\n value === 'dontAsk' ||\n value === 'plan'\n )\n}\n\nexport async function runNonTextPrintMode(\n args: RunNonTextPrintModeArgs,\n): Promise<void> {\n const { createUserMessage } = await import('#core/utils/messages')\n const { getTotalCost } = await import('#core/cost-tracker')\n const { buildSystemPromptForSession, getSessionContext, runTurn, query } =\n await import('#core/engine')\n const { getKodeAgentSessionId } =\n await import('#protocol/utils/kodeAgentSessionId')\n const { kodeMessageToSdkMessage, makeSdkInitMessage, makeSdkResultMessage } =\n await import('#protocol/utils/kodeAgentStreamJson')\n const { KodeAgentStructuredStdio } =\n await import('#protocol/utils/kodeAgentStructuredStdio')\n const {\n loadToolPermissionContextFromDisk,\n persistToolPermissionUpdateToDisk,\n } = await import('#core/utils/permissions/toolPermissionSettings')\n const { applyToolPermissionContextUpdates } =\n await import('#core/types/toolPermissionContext')\n\n const sessionIdForSdk = getKodeAgentSessionId()\n const startedAt = Date.now()\n const sdkMessages: unknown[] = []\n\n const normalizedJsonSchema =\n typeof args.jsonSchema === 'string' ? args.jsonSchema.trim() : ''\n const parsedJsonSchema = (() => {\n if (!normalizedJsonSchema) return null\n try {\n const parsed = JSON.parse(normalizedJsonSchema)\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n throw new Error('Schema must be a JSON object')\n }\n return parsed as Record<string, unknown>\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error)\n console.error(`Error: Invalid --json-schema: ${msg}`)\n process.exit(1)\n }\n })()\n\n const outputStyle = getCurrentOutputStyleDefinition()\n const systemPrompt = await buildSystemPromptForSession({\n disableSlashCommands: args.disableSlashCommands,\n systemPromptOverride: args.systemPromptOverride,\n appendSystemPrompt: args.appendSystemPrompt,\n jsonSchema: parsedJsonSchema,\n outputStyleActive: outputStyle !== null,\n keepCodingInstructions: outputStyle?.keepCodingInstructions,\n })\n\n const ctx = await getSessionContext()\n\n const isBypassAvailable =\n !args.safe ||\n Boolean(args.allowDangerouslySkipPermissions) ||\n Boolean(args.dangerouslySkipPermissions)\n\n let toolPermissionContext = loadToolPermissionContextFromDisk({\n projectDir: args.cwd,\n includeKodeProjectConfig: true,\n isBypassPermissionsModeAvailable: isBypassAvailable,\n })\n\n const updates: ToolPermissionContextUpdate[] = []\n const allowedRules = cliRuleList(args.allowedTools)\n const deniedRules = cliRuleList(args.disallowedTools)\n const additionalDirs = cliRuleList(args.addDir)\n\n if (allowedRules.length > 0) {\n updates.push({\n type: 'addRules',\n destination: 'cliArg',\n behavior: 'allow',\n rules: allowedRules,\n })\n }\n if (deniedRules.length > 0) {\n updates.push({\n type: 'addRules',\n destination: 'cliArg',\n behavior: 'deny',\n rules: deniedRules,\n })\n }\n if (additionalDirs.length > 0) {\n updates.push({\n type: 'addDirectories',\n destination: 'cliArg',\n directories: additionalDirs,\n })\n }\n\n const normalizedPermissionMode =\n typeof args.permissionMode === 'string' ? args.permissionMode.trim() : ''\n if (normalizedPermissionMode) {\n const normalized =\n normalizedPermissionMode === 'delegate'\n ? 'default'\n : normalizedPermissionMode\n if (!isPermissionMode(normalized)) {\n console.error(\n `Error: Invalid --permission-mode \"${normalizedPermissionMode}\". Expected one of: acceptEdits, bypassPermissions, default, delegate, dontAsk, plan`,\n )\n process.exit(1)\n }\n updates.push({\n type: 'setMode',\n destination: 'cliArg',\n mode: normalized,\n })\n }\n\n if (args.dangerouslySkipPermissions) {\n updates.push({\n type: 'setMode',\n destination: 'cliArg',\n mode: 'bypassPermissions',\n })\n }\n\n if (updates.length > 0) {\n toolPermissionContext = applyToolPermissionContextUpdates(\n toolPermissionContext,\n updates,\n )\n }\n\n const printOptions = {\n commands: args.commands,\n tools: args.toolsForPrint,\n verbose: true,\n safeMode: Boolean(args.safe),\n forkNumber: 0,\n messageLogName: 'unused',\n maxThinkingTokens: 0,\n persistSession: args.sessionPersistence !== false,\n toolPermissionContext,\n mcpClients: args.mcpClients,\n shouldAvoidPermissionPrompts: args.normalizedInputFormat !== 'stream-json',\n model:\n typeof args.model === 'string' && args.model.trim()\n ? args.model.trim()\n : undefined,\n getCustomSystemPromptAdditions: getOutputStyleSystemPromptAdditions,\n }\n\n const availableTools = args.toolsForPrint.map(t => t.name)\n const slashCommands =\n args.disableSlashCommands === true\n ? undefined\n : args.commands\n .filter(c => !c.isHidden)\n .map(c => `/${c.userFacingName()}`)\n\n const initMsg = makeSdkInitMessage({\n sessionId: sessionIdForSdk,\n cwd: args.cwd,\n tools: availableTools,\n slashCommands,\n })\n\n const writeSdkLine = (obj: unknown) => {\n process.stdout.write(JSON.stringify(obj) + '\\n')\n }\n\n if (args.normalizedOutputFormat === 'stream-json') {\n writeSdkLine(initMsg)\n } else {\n sdkMessages.push(initMsg)\n }\n\n let activeTurnAbortController: AbortController | null = null\n const structured =\n args.normalizedInputFormat === 'stream-json'\n ? new KodeAgentStructuredStdio(process.stdin, process.stdout, {\n onInterrupt: () => {\n activeTurnAbortController?.abort()\n },\n onControlRequest: createPrintControlRequestHandler({\n mcpClients: args.mcpClients,\n setPermissionMode: mode => {\n if (printOptions.toolPermissionContext) {\n printOptions.toolPermissionContext.mode = mode\n }\n },\n setModel: nextModel => {\n printOptions.model = nextModel\n },\n setMaxThinkingTokens: tokens => {\n printOptions.maxThinkingTokens = tokens\n },\n }),\n })\n : null\n\n if (structured) structured.start()\n\n const permissionTimeoutMs = (() => {\n const raw = process.env.KODE_STDIO_PERMISSION_TIMEOUT_MS\n const n = raw ? Number(raw) : NaN\n return Number.isFinite(n) && n > 0 ? n : 30_000\n })()\n\n const canUseTool =\n args.normalizedPermissionPromptTool === 'stdio' && structured\n ? createStdioPermissionPromptCanUseTool({\n structured,\n permissionTimeoutMs,\n projectDir: args.cwd,\n baseCanUseTool: hasPermissionsToUseTool,\n getToolPermissionContext: () => printOptions.toolPermissionContext,\n setToolPermissionContext: next => {\n printOptions.toolPermissionContext = next\n },\n applyToolPermissionContextUpdates,\n persistToolPermissionUpdateToDisk,\n })\n : hasPermissionsToUseTool\n\n if (args.normalizedInputFormat === 'stream-json') {\n if (!structured) {\n console.error('Error: Structured stdin is not available')\n process.exit(1)\n }\n\n const { runKodeAgentStreamJsonSession } =\n await import('#protocol/utils/kodeAgentStreamJsonSession')\n\n const isRecord = (value: unknown): value is Record<string, unknown> =>\n Boolean(value) && typeof value === 'object' && !Array.isArray(value)\n\n const normalizeUserContent = (\n content: string | unknown[],\n ): string | ContentBlockParam[] => {\n if (typeof content === 'string') return content\n const blocks: ContentBlockParam[] = []\n for (const block of content) {\n if (!isRecord(block) || typeof block.type !== 'string') continue\n const normalized =\n block.type === 'server_tool_use' || block.type === 'mcp_tool_use'\n ? { ...block, type: 'tool_use' }\n : block\n blocks.push(normalized as unknown as ContentBlockParam)\n }\n return blocks\n }\n\n await runKodeAgentStreamJsonSession({\n structured,\n query,\n makeUserMessage: (content, uuidOverride) => {\n const msg = createUserMessage(normalizeUserContent(content))\n if (uuidOverride && isUuidValue(uuidOverride)) msg.uuid = uuidOverride\n return msg\n },\n writeSdkLine: obj => writeSdkLine(obj),\n sessionId: sessionIdForSdk,\n systemPrompt,\n jsonSchema: parsedJsonSchema,\n context: ctx,\n canUseTool,\n toolUseContextBase: {\n options: printOptions,\n messageId: undefined,\n readFileTimestamps: {},\n setToolJSX: () => {},\n },\n replayUserMessages: Boolean(args.replayUserMessages),\n getTotalCostUsd: () => getTotalCost(),\n onActiveTurnAbortControllerChanged: controller => {\n activeTurnAbortController = controller\n },\n initialMessages: args.initialMessages,\n })\n\n process.exit(0)\n }\n\n addToHistory(args.inputPrompt)\n const userMsg = createUserMessage(args.inputPrompt)\n const baseMessages = [...(args.initialMessages ?? []), userMsg]\n\n const sdkUser = kodeMessageToSdkMessage(userMsg, sessionIdForSdk)\n if (sdkUser) {\n if (args.normalizedOutputFormat === 'stream-json') {\n writeSdkLine(sdkUser)\n } else {\n sdkMessages.push(sdkUser)\n }\n }\n\n const abortController = new AbortController()\n await runSingleTurnPrint({\n runTurn: turnArgs =>\n runTurn({\n messages: turnArgs.messages,\n systemPrompt: turnArgs.systemPrompt,\n context: turnArgs.context,\n canUseTool: turnArgs.canUseTool,\n toolUseContext: turnArgs.toolUseContext,\n }),\n kodeMessageToSdkMessage,\n makeSdkResultMessage,\n messages: baseMessages,\n systemPrompt,\n context: ctx,\n canUseTool,\n toolUseContext: {\n options: printOptions,\n abortController,\n messageId: undefined,\n readFileTimestamps: {},\n setToolJSX: () => {},\n },\n sessionId: sessionIdForSdk,\n outputFormat: args.normalizedOutputFormat,\n writeSdkLine,\n sdkMessages,\n startedAt,\n getTotalCostUsd: () => getTotalCost(),\n jsonSchema: parsedJsonSchema,\n verbose: args.verbose,\n })\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["isRecord", "isPermissionMode", "isRecord"]
7
+ }