@qwen-code/qwen-code 0.20.0 → 0.20.1-nightly.20260724.7d17c44a3

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 (388) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +1 -1
  2. package/bundled/qc-helper/docs/features/auto-mode.md +19 -16
  3. package/bundled/qc-helper/docs/features/commands.md +54 -0
  4. package/bundled/qc-helper/docs/features/sub-agents.md +16 -7
  5. package/bundled/qc-helper/docs/integration-github-action.md +1 -1
  6. package/bundled/qc-helper/docs/qwen-serve.md +2 -1
  7. package/bundled/review/DESIGN.md +2 -2
  8. package/bundled/review/SKILL.md +7 -5
  9. package/chunks/MaxSizedBox-LGRTXB47.js +84 -0
  10. package/chunks/{StandaloneSessionPicker-CEGO2AZX.js → StandaloneSessionPicker-H3TBU3C3.js} +68 -56
  11. package/chunks/{acp-startup-profiler-N3RHHXJ3.js → acp-startup-profiler-RV3IV562.js} +2 -2
  12. package/chunks/{acpAgent-YUR43TLG.js → acpAgent-5D7P4BB5.js} +2061 -556
  13. package/chunks/agent-W7UAHCCI.js +80 -0
  14. package/chunks/agent-headless-KTBMPRSC.js +74 -0
  15. package/chunks/{anthropicContentGenerator-HVKLXOOU.js → anthropicContentGenerator-ZLQ3X2HI.js} +112 -45
  16. package/chunks/{artifact-tool-WBCAMD3O.js → artifact-tool-OKMWONT6.js} +3 -3
  17. package/chunks/{askUserQuestion-6DZC4UV5.js → askUserQuestion-V6FUS23G.js} +3 -3
  18. package/chunks/bridge-FFC4C6VD.js +89 -0
  19. package/chunks/{build-SSCNEHZZ.js → build-RV63TIRH.js} +2 -3
  20. package/chunks/{ca-2SL2BXTK.js → ca-GKRQZ7AM.js} +612 -201
  21. package/chunks/{channel-worker-group-53CMOPFT.js → channel-worker-group-MA3WXWYX.js} +7 -6
  22. package/chunks/{channel-worker-manager-UTXILKC2.js → channel-worker-manager-TIYYYBCT.js} +189 -29
  23. package/chunks/{channel-worker-supervisor-ZGO2W2MD.js → channel-worker-supervisor-CXRCDA4Y.js} +6 -5
  24. package/chunks/{chunk-TYQMGACW.js → chunk-22C7BQ6D.js} +508 -10967
  25. package/chunks/{chunk-4EP2PYYL.js → chunk-2G6QIHYL.js} +5 -5
  26. package/chunks/{chunk-H2XVO6NE.js → chunk-2MIN6GRR.js} +1 -1
  27. package/chunks/chunk-2RFKHEXL.js +74 -0
  28. package/chunks/{chunk-7SXZC7ID.js → chunk-2WTVWAKT.js} +7 -6
  29. package/chunks/{chunk-TIH2ZTOC.js → chunk-32A4PI3E.js} +2 -2
  30. package/chunks/chunk-36HSVBBU.js +469 -0
  31. package/chunks/{chunk-IR46U7RB.js → chunk-3FB2Y2OE.js} +3 -3
  32. package/chunks/{chunk-QR6U5QPP.js → chunk-3SJ43L4W.js} +4 -0
  33. package/chunks/chunk-3Z43GZUQ.js +32 -0
  34. package/chunks/chunk-43T5WDQ7.js +127 -0
  35. package/chunks/chunk-46UV252V.js +128 -0
  36. package/chunks/{chunk-JD3MKVKL.js → chunk-4K56OJFJ.js} +1 -1
  37. package/chunks/{chunk-KTUQMDEP.js → chunk-4K7VDKAD.js} +1 -1
  38. package/chunks/{chunk-QKYTTBYW.js → chunk-4LVZNIDO.js} +1 -1
  39. package/chunks/{chunk-OWCALFEG.js → chunk-54R2CV2G.js} +1 -1
  40. package/chunks/{chunk-ZEOZL37W.js → chunk-57FIIFJN.js} +1 -1
  41. package/chunks/chunk-5BS3KLRP.js +6194 -0
  42. package/chunks/{chunk-NEEB7UEN.js → chunk-6GMVPFB2.js} +153 -72
  43. package/chunks/{chunk-GMGDLUC7.js → chunk-6IL7KRLE.js} +1 -1
  44. package/chunks/chunk-6PVPNMXU.js +29 -0
  45. package/chunks/chunk-6QHAUJUE.js +293 -0
  46. package/chunks/chunk-6VK3IRTX.js +10017 -0
  47. package/chunks/{chunk-BDBMYST4.js → chunk-6X4GWOPW.js} +1 -1
  48. package/chunks/{chunk-AYCDXHZB.js → chunk-7Z6JQEL6.js} +1 -1
  49. package/chunks/{chunk-FSL5W5TI.js → chunk-AFFGGOF6.js} +4 -4
  50. package/chunks/chunk-AMDSOFFV.js +10860 -0
  51. package/chunks/chunk-AXUW635Q.js +934 -0
  52. package/chunks/{chunk-A5LYNIW7.js → chunk-BJBUDCM3.js} +8 -8
  53. package/chunks/chunk-BK2UNYWD.js +29 -0
  54. package/chunks/{chunk-6RLROE6G.js → chunk-BLFVGB7D.js} +30 -4
  55. package/chunks/chunk-BPJSQIJX.js +100 -0
  56. package/chunks/{chunk-FLSVD6BS.js → chunk-BRTR7S7O.js} +3 -3
  57. package/chunks/{chunk-KG3XV6FH.js → chunk-BSNWBC33.js} +32 -2
  58. package/chunks/chunk-BULDBTYC.js +153 -0
  59. package/chunks/{chunk-PBWEWI4N.js → chunk-BW5Z5NOG.js} +83 -74
  60. package/chunks/{chunk-EIAK6Q2B.js → chunk-C3VHAXP2.js} +20 -3
  61. package/chunks/{chunk-6AFUCL3D.js → chunk-CEZB3XFD.js} +1 -1
  62. package/chunks/chunk-CHMENNJV.js +1832 -0
  63. package/chunks/{chunk-TMQ6XQCX.js → chunk-CK3IEEHR.js} +416 -291
  64. package/chunks/{chunk-OYZWQNWG.js → chunk-CK6UABV2.js} +2 -2
  65. package/chunks/{chunk-VZQUV7VK.js → chunk-CKTMY3EP.js} +1 -1
  66. package/chunks/{chunk-VDWBQ5AW.js → chunk-CUPAVLRY.js} +5 -2
  67. package/chunks/{chunk-I2PYAYFM.js → chunk-CXUFILV3.js} +3 -3
  68. package/chunks/chunk-DP3IHZGG.js +1498 -0
  69. package/chunks/{chunk-BMWMT5Y2.js → chunk-DP5GT2MW.js} +7 -375
  70. package/chunks/{chunk-D22SX43D.js → chunk-DWNZ6PVQ.js} +1 -1
  71. package/chunks/{chunk-5SCI6E3E.js → chunk-E4IMU4Y5.js} +1 -1
  72. package/chunks/{chunk-DP5GXXNZ.js → chunk-EL2IQ2S5.js} +5 -1
  73. package/chunks/{chunk-EZVDJFZ7.js → chunk-ERLGR7GI.js} +1 -1
  74. package/chunks/{chunk-IVPSS6EL.js → chunk-F5MBYZSU.js} +4 -4
  75. package/chunks/{chunk-AQIEINAY.js → chunk-F6IYL66A.js} +28 -1766
  76. package/chunks/{chunk-FEOZBUMT.js → chunk-FODK6UMO.js} +0 -27
  77. package/chunks/{chunk-PGEPSDJI.js → chunk-FWNZ7CVN.js} +24 -20
  78. package/chunks/{chunk-5JBR5XIK.js → chunk-G7EFBBVF.js} +220 -141
  79. package/chunks/chunk-GLNBDYUX.js +38 -0
  80. package/chunks/{chunk-ANPINBOF.js → chunk-H4YKEV2X.js} +5 -5
  81. package/chunks/{chunk-TDKQP3M6.js → chunk-HIJQF5B5.js} +1 -1
  82. package/chunks/{chunk-FQD7GFSV.js → chunk-HJJDKFL5.js} +3 -3
  83. package/chunks/{chunk-4N3KMAIL.js → chunk-HPWHDJID.js} +152 -35
  84. package/chunks/{chunk-KQNM4EO7.js → chunk-HQCSRJ3P.js} +138 -6
  85. package/chunks/chunk-HTR4WV6U.js +327 -0
  86. package/chunks/{chunk-YWEW33JY.js → chunk-HVO55LUD.js} +7 -7
  87. package/chunks/{chunk-MJ6S23WZ.js → chunk-HZEWYOVI.js} +5 -5
  88. package/chunks/chunk-IFG6TYJ2.js +16577 -0
  89. package/chunks/{chunk-B3KGZCQN.js → chunk-IJTOWOD7.js} +322 -202
  90. package/chunks/{chunk-RS7MT2QG.js → chunk-IPUUTYMV.js} +2 -4
  91. package/chunks/{chunk-4ILMYHEI.js → chunk-IRDZJSCL.js} +3 -3
  92. package/chunks/{chunk-XU457J4V.js → chunk-IRH27ZC2.js} +2 -2
  93. package/chunks/{chunk-33XUAINQ.js → chunk-J5UKQEFG.js} +69 -9
  94. package/chunks/{chunk-G45X5TRN.js → chunk-JCW2R7WC.js} +1 -72
  95. package/chunks/{chunk-S2XVRHDN.js → chunk-JDFBBGRD.js} +1 -1
  96. package/chunks/{chunk-4XNLIGVA.js → chunk-JKCALGYN.js} +1023 -383
  97. package/chunks/{chunk-TJTKSVIV.js → chunk-JLU636DO.js} +5 -1
  98. package/chunks/{chunk-VEXFOTEO.js → chunk-JYUSL2V4.js} +3 -3
  99. package/chunks/{chunk-S2PD3EZD.js → chunk-KJEMJWNH.js} +1 -1
  100. package/chunks/{chunk-E2UVIFI2.js → chunk-KRXPRVGL.js} +0 -1
  101. package/chunks/{chunk-CZF3E5GF.js → chunk-LA5H3LM5.js} +1 -1
  102. package/chunks/{chunk-NDMQLV4Y.js → chunk-LBAO2XRA.js} +4 -4
  103. package/chunks/{chunk-7RMOXZTC.js → chunk-LDPP5VTZ.js} +4 -4
  104. package/chunks/{chunk-KDC6GNQR.js → chunk-LEEWLFHW.js} +4 -4
  105. package/chunks/{chunk-KX6UK4VJ.js → chunk-LI4I37W4.js} +22152 -18007
  106. package/chunks/{chunk-OOCI5VVU.js → chunk-LIZRAKPB.js} +1 -1
  107. package/chunks/{chunk-AJSJ5TTU.js → chunk-LP2E4MQG.js} +1 -1
  108. package/chunks/chunk-LS77BEZP.js +405 -0
  109. package/chunks/{chunk-BRRF37CO.js → chunk-LYTBLSSW.js} +5 -5
  110. package/chunks/{chunk-DBE4QFZS.js → chunk-MB7ENXPR.js} +39 -37
  111. package/chunks/{chunk-GKY2OJ7R.js → chunk-MOHAWVLH.js} +4 -4
  112. package/chunks/chunk-NABLFI57.js +82 -0
  113. package/chunks/chunk-NBQDBANR.js +411 -0
  114. package/chunks/{chunk-EAUYY7SS.js → chunk-NOAAFNTJ.js} +43 -10
  115. package/chunks/chunk-NXS53EA7.js +1462 -0
  116. package/chunks/{chunk-C27BYUX6.js → chunk-OQB4EXO4.js} +14 -11
  117. package/chunks/{chunk-NHDKSOEY.js → chunk-P3QQPMQA.js} +5 -5
  118. package/chunks/{chunk-OP4MOGXF.js → chunk-P5RRUHL7.js} +23 -1
  119. package/chunks/{chunk-KOR3XKCA.js → chunk-PBII2NFX.js} +12 -6
  120. package/chunks/{chunk-O3OCNYY5.js → chunk-PDYB7HG2.js} +2 -2
  121. package/chunks/{chunk-2HOVDT7W.js → chunk-PFSUKTZH.js} +1 -1
  122. package/chunks/chunk-PKL3HGNZ.js +2299 -0
  123. package/chunks/{chunk-5DTTYNB7.js → chunk-PQNHRFJC.js} +16 -3
  124. package/chunks/{chunk-OLMETXLX.js → chunk-PXHK5ONM.js} +41 -9
  125. package/chunks/{chunk-PF4CHQOJ.js → chunk-Q6GU6TKM.js} +11 -10
  126. package/chunks/{chunk-4ODB7WIB.js → chunk-QAFKR7WR.js} +1 -1
  127. package/chunks/{chunk-PBATSWUQ.js → chunk-QBUDF33N.js} +1 -1
  128. package/chunks/{chunk-BVLROR2T.js → chunk-QLJUC7TG.js} +1 -1
  129. package/chunks/{chunk-UEY4AYUL.js → chunk-QNLNLENL.js} +2 -2
  130. package/chunks/{chunk-333CXMNJ.js → chunk-QXZTZJLX.js} +5 -5
  131. package/chunks/chunk-R6D2CTQR.js +289 -0
  132. package/chunks/{chunk-7PZ2ATFZ.js → chunk-R6SKHK3T.js} +54 -29
  133. package/chunks/{chunk-OONJNQ42.js → chunk-RGG6M2WF.js} +4 -4
  134. package/chunks/{chunk-RFIAR4YL.js → chunk-RV4C2ZFG.js} +1 -1
  135. package/chunks/{chunk-O3Z73NBP.js → chunk-RW2NEXYJ.js} +15 -11
  136. package/chunks/{chunk-HZPN55E5.js → chunk-SJEDL7DI.js} +1 -1
  137. package/chunks/{chunk-AKX4WPPP.js → chunk-SWBJRDYC.js} +866 -183
  138. package/chunks/{chunk-NBMIC7DR.js → chunk-SX4PK3FC.js} +145 -5
  139. package/chunks/chunk-T3452DP5.js +246 -0
  140. package/chunks/{chunk-TB6UDU4T.js → chunk-THJNPLI4.js} +16 -16
  141. package/chunks/{chunk-T4TZQJ7W.js → chunk-TWPJO254.js} +5 -16
  142. package/chunks/chunk-U7ZFW55U.js +2098 -0
  143. package/chunks/{chunk-JNWZQ27S.js → chunk-UCOJC6EB.js} +72 -23
  144. package/chunks/{chunk-W7H223ZZ.js → chunk-UGYMA4EI.js} +1 -1
  145. package/chunks/{chunk-X6YQWCIJ.js → chunk-UH3WSE5L.js} +13 -1
  146. package/chunks/{chunk-2LL7TXB4.js → chunk-UH7242DI.js} +3 -3
  147. package/chunks/{chunk-CB2HFGRV.js → chunk-UJV643E2.js} +31 -6
  148. package/chunks/chunk-UO7DCGEV.js +121 -0
  149. package/chunks/{chunk-Y2ENGUD6.js → chunk-UPF7PTBI.js} +79 -2
  150. package/chunks/chunk-UW5EOVUN.js +249 -0
  151. package/chunks/{chunk-SJMV7ZBK.js → chunk-VLVO52KC.js} +8 -8
  152. package/chunks/{chunk-R3VWUU2E.js → chunk-VYPFXUCB.js} +1 -1
  153. package/chunks/{chunk-S2W2LVDU.js → chunk-WHFK6G6U.js} +8 -9
  154. package/chunks/chunk-WI3KCKZ5.js +391 -0
  155. package/chunks/{chunk-NGFEPAE6.js → chunk-WLEFWSSC.js} +8 -6
  156. package/chunks/{chunk-XVVH63JG.js → chunk-WUJXJ34P.js} +3 -3
  157. package/chunks/{chunk-MAQQGNQ5.js → chunk-WYLPWQHJ.js} +56 -717
  158. package/chunks/{chunk-D2VIDMVM.js → chunk-X6N25LXS.js} +2 -2
  159. package/chunks/chunk-XAWJ2526.js +1049 -0
  160. package/chunks/{chunk-CV63PP6U.js → chunk-YCIM6O3I.js} +1 -1
  161. package/chunks/{chunk-OEO2ERWK.js → chunk-Z44CVEUF.js} +54 -33
  162. package/chunks/{chunk-TKLLK6XQ.js → chunk-ZT4POVWC.js} +11 -11
  163. package/chunks/{chunk-NIJEXGV6.js → chunk-ZXYUQXY5.js} +148 -10
  164. package/chunks/{computer-use-NIWQNUZF.js → computer-use-UJ5T34TE.js} +50 -37
  165. package/chunks/{config-utils-AHQ6YZ66.js → config-utils-XQRXHAN3.js} +3 -3
  166. package/chunks/contextCommand-CSCB4E5M.js +79 -0
  167. package/chunks/{create-sub-session-MGNX52P3.js → create-sub-session-55F3GOLK.js} +46 -33
  168. package/chunks/{create-sub-session-P26FE5GG.js → create-sub-session-JPCSYZAJ.js} +3 -3
  169. package/chunks/{cron-create-JWFHBDRQ.js → cron-create-CUMELMPL.js} +6 -6
  170. package/chunks/{cron-delete-GDX4E26G.js → cron-delete-QZFV6U3P.js} +5 -5
  171. package/chunks/{cron-list-USMAIWPT.js → cron-list-IDKO7ZO2.js} +5 -5
  172. package/chunks/{daemon-RG2MAI6T.js → daemon-7LP7R6IU.js} +500 -133
  173. package/chunks/daemon-status-provider-6YNZ3UAE.js +88 -0
  174. package/chunks/{de-I7ZIYXZC.js → de-4IBXM7CN.js} +5 -1
  175. package/chunks/{dist-WGTQO7F2.js → dist-376652EZ.js} +114 -28
  176. package/chunks/{dist-53PZYC5B.js → dist-3YCTE6HD.js} +2 -2
  177. package/chunks/{dist-2BHAYBKP.js → dist-D7Z3HOO7.js} +14 -2
  178. package/chunks/{dist-FUTEXY6A.js → dist-MEGJFGAI.js} +40 -9
  179. package/chunks/{dist-2MIU4UUH.js → dist-NQ436QEX.js} +1 -1
  180. package/chunks/{dist-AU7NQQRP.js → dist-NQNTOIEN.js} +26 -2
  181. package/chunks/earlyInputCapture-HPUVJ2KH.js +81 -0
  182. package/chunks/{edit-3QV3JZJL.js → edit-7CMAN3F4.js} +50 -39
  183. package/chunks/{en-XE34GKAA.js → en-SALLIJS7.js} +6 -1
  184. package/chunks/{enter-worktree-4GMMF7EG.js → enter-worktree-3PH4YTY2.js} +49 -36
  185. package/chunks/{enterPlanMode-L5UWBAUC.js → enterPlanMode-MSXLSWLI.js} +55 -37
  186. package/chunks/{environment-3OV7UQOT.js → environment-KS36ZHBE.js} +48 -35
  187. package/chunks/errors-LCPFS62A.js +87 -0
  188. package/chunks/{exit-worktree-DDP57JLV.js → exit-worktree-ARA4C3CK.js} +49 -36
  189. package/chunks/{exitPlanMode-CJBLGPIP.js → exitPlanMode-GCDIQPB7.js} +49 -36
  190. package/chunks/{fast-path-M6RP2ING.js → fast-path-IDHBVIT6.js} +3 -2
  191. package/chunks/{fr-X7KDVZIY.js → fr-WVHEBDDB.js} +5 -1
  192. package/chunks/{gemini-H4PHBJTL.js → gemini-2AFQJMX5.js} +141 -105
  193. package/chunks/{geminiContentGenerator-VURJYPWP.js → geminiContentGenerator-UDIH3YI6.js} +9 -8
  194. package/chunks/{getMachineId-bsd-EXV7SWPA.js → getMachineId-bsd-QFVLPUPT.js} +1 -1
  195. package/chunks/{getMachineId-darwin-IUOMFXU3.js → getMachineId-darwin-DGMQQE2E.js} +1 -1
  196. package/chunks/{getMachineId-linux-K7XJYFHL.js → getMachineId-linux-R4Z6CSWC.js} +1 -1
  197. package/chunks/{getMachineId-unsupported-EA5FDRJ6.js → getMachineId-unsupported-Z3SBVBUV.js} +1 -1
  198. package/chunks/{getMachineId-win-KBA6RAI5.js → getMachineId-win-SCK5UFDT.js} +1 -1
  199. package/chunks/{glob-2KUSRAVQ.js → glob-HCL7HZ67.js} +49 -36
  200. package/chunks/{grep-B5RXVESV.js → grep-CJLBSCTV.js} +49 -36
  201. package/chunks/handleAutoUpdate-Q572P3FL.js +80 -0
  202. package/chunks/i18n-OBB4R7SR.js +96 -0
  203. package/chunks/initializer-LXEY6V3C.js +85 -0
  204. package/chunks/installationInfo-XUAOVMEE.js +79 -0
  205. package/chunks/{ja-2ICT3KXF.js → ja-KY4ROZTE.js} +5 -1
  206. package/chunks/{keychain-token-storage-DWRJMNH3.js → keychain-token-storage-6ACJDYIB.js} +3 -3
  207. package/chunks/{kittyProtocolDetector-HCNNKJTI.js → kittyProtocolDetector-MBRTDRBK.js} +5 -3
  208. package/chunks/list-WAXY7QOU.js +88 -0
  209. package/chunks/list-agents-AH3P5NB7.js +80 -0
  210. package/chunks/loadedSettingsAdapter-OZFNBRHE.js +82 -0
  211. package/chunks/loggingContentGenerator-7WDTTE6G.js +1068 -0
  212. package/chunks/{loop-wakeup-5GLTUBHA.js → loop-wakeup-IHRW6TNB.js} +7 -7
  213. package/chunks/{ls-FHBY3Y7I.js → ls-ZAXZ2G2W.js} +5 -5
  214. package/chunks/{lsp-B6VMEW6Y.js → lsp-R4ZG3UGQ.js} +3 -3
  215. package/chunks/managed-npm-update-N42DO5QW.js +339 -0
  216. package/chunks/mcp-6SOORKTY.js +82 -0
  217. package/chunks/{monitor-GLJZDNPS.js → monitor-4PSVNVU4.js} +51 -37
  218. package/chunks/node-UUDY34IG.js +305 -0
  219. package/chunks/nonInteractiveCli-FBR5S7IZ.js +140 -0
  220. package/chunks/{notebook-edit-AVCIWS4F.js → notebook-edit-QK26632S.js} +50 -39
  221. package/chunks/{openaiContentGenerator-B7W24G3D.js → openaiContentGenerator-IXJS6C2U.js} +33 -20
  222. package/chunks/pidfile-UCFCJOAP.js +85 -0
  223. package/chunks/{processUtils-XZPY2PBB.js → processUtils-YL2LXON2.js} +2 -2
  224. package/chunks/{pt-JJ4XPIBP.js → pt-OK455PLH.js} +5 -1
  225. package/chunks/{qwenContentGenerator-6GUTWJIC.js → qwenContentGenerator-H6WZPJKC.js} +56 -36
  226. package/chunks/{qwenOAuth2-GASEEWGU.js → qwenOAuth2-HTROHKXO.js} +10 -23
  227. package/chunks/read-file-FOYTMUNL.js +31 -0
  228. package/chunks/{read-mcp-resource-AKCL7I43.js → read-mcp-resource-65BWNF3F.js} +3 -3
  229. package/chunks/{record-artifact-PEUB7727.js → record-artifact-2RLSOP6U.js} +3 -3
  230. package/chunks/resumeHistoryUtils-ZNHTWBXS.js +90 -0
  231. package/chunks/ripGrep-K4K4QLNJ.js +72 -0
  232. package/chunks/{ru-STR4KTW7.js → ru-7SPDGMGD.js} +5 -1
  233. package/chunks/{run-qwen-serve-OZGR3FQA.js → run-qwen-serve-XI4MCAFV.js} +343 -88
  234. package/chunks/runtime-4CTBU5WX.js +115 -0
  235. package/chunks/{scheduler-Z7QLMUWA.js → scheduler-TTEITHBF.js} +46 -33
  236. package/chunks/sdk-exporters-grpc-N3OLDF63.js +23214 -0
  237. package/chunks/sdk-exporters-http-AOHAEOMC.js +563 -0
  238. package/chunks/sdk-impl-TLQOC7P4.js +9193 -0
  239. package/chunks/{send-message-3RHE7HSM.js → send-message-GEY4CNPS.js} +47 -8
  240. package/chunks/serve-W7UKJTQT.js +88 -0
  241. package/chunks/{server-SO64U3X5.js → server-JD5PIE7A.js} +3069 -517
  242. package/chunks/{session-2KL2WQAH.js → session-R4BDHLYR.js} +112 -177
  243. package/chunks/{settings-KITVOUSV.js → settings-BXZHA6TZ.js} +50 -37
  244. package/chunks/shell-XYMFCGN5.js +82 -0
  245. package/chunks/{skill-SOQHY455.js → skill-YKXYEPOF.js} +25 -20
  246. package/chunks/spawnChannel-IO4HQLFS.js +81 -0
  247. package/chunks/{src-43LM7JLB.js → src-LKKTJ4NG.js} +382 -235
  248. package/chunks/standalone-update-76JG7DVN.js +91 -0
  249. package/chunks/{startInteractiveUI-3RGTGEX5.js → startInteractiveUI-BXWQUXAS.js} +1314 -958
  250. package/chunks/{syntheticOutput-FG5PQKIR.js → syntheticOutput-2WNMXEU5.js} +4 -4
  251. package/chunks/task-create-R5H74Y76.js +25 -0
  252. package/chunks/{task-list-QWSY4ZIU.js → task-list-WXAFDSRY.js} +7 -7
  253. package/chunks/{task-stop-GWC6UWAL.js → task-stop-CHFZP23W.js} +4 -4
  254. package/chunks/{task-update-NCTAB73Q.js → task-update-Z44A4GAR.js} +11 -9
  255. package/chunks/{team-create-FXN3PEBP.js → team-create-5Y3MCAIM.js} +49 -36
  256. package/chunks/{team-delete-KK37HTOG.js → team-delete-YDCMRSI4.js} +7 -7
  257. package/chunks/{team-plan-approval-GEIZ356Q.js → team-plan-approval-HYJJZ76T.js} +49 -36
  258. package/chunks/theme-manager-3YF2SUZL.js +76 -0
  259. package/chunks/{todoWrite-ERCAMLFS.js → todoWrite-ED2IVZJL.js} +5 -5
  260. package/chunks/{tool-search-XKK7DNOK.js → tool-search-3ZO2XMEP.js} +21 -17
  261. package/chunks/total-session-admission-NDF7EVG7.js +83 -0
  262. package/chunks/trustedFolders-Q7RALK4T.js +92 -0
  263. package/chunks/{chunk-6EFTQYW7.js → undici-3FJYTMOF.js} +24 -399
  264. package/chunks/{chunk-L573Z2QZ.js → undici-PYHBDDPN.js} +1 -5
  265. package/chunks/{update-relaunch-FMVZK6XF.js → update-relaunch-BTW5XGVT.js} +17 -17
  266. package/chunks/updateCheck-MXIU6DWQ.js +91 -0
  267. package/chunks/useAutoAcceptIndicator-BJXHJW77.js +92 -0
  268. package/chunks/{validateNonInterActiveAuth-PRVEB6GG.js → validateNonInterActiveAuth-FLEPF3QQ.js} +90 -76
  269. package/chunks/{version-AZMG6KWL.js → version-75VRONIL.js} +1 -1
  270. package/chunks/{web-fetch-EPGJ5OQQ.js → web-fetch-5X27LYHB.js} +101 -41
  271. package/chunks/web-search-IDMTBJUP.js +718 -0
  272. package/chunks/{workflow-UTNVPW22.js → workflow-JOD2OPFQ.js} +54 -40
  273. package/chunks/workspace-providers-status-WDLBDLPG.js +85 -0
  274. package/chunks/{workspace-registration-store-F3ZX3YHT.js → workspace-registration-store-26Z6J6P5.js} +9 -3
  275. package/chunks/workspace-registry-IABDATX3.js +87 -0
  276. package/chunks/workspace-service-BI4KDYPD.js +97 -0
  277. package/chunks/workspace-skills-status-OVB4LPHA.js +84 -0
  278. package/chunks/write-file-276AJ7KE.js +72 -0
  279. package/chunks/{zh-6ANG2HTL.js → zh-Q54GA5SV.js} +6 -1
  280. package/chunks/{zh-TW-4RR3YHNN.js → zh-TW-VOBNFOPU.js} +6 -1
  281. package/cli-entry.js +164 -12
  282. package/cli.js +19 -12
  283. package/locales/ca.js +773 -203
  284. package/locales/de.js +8 -2
  285. package/locales/en.js +9 -2
  286. package/locales/fr.js +8 -2
  287. package/locales/ja.js +8 -2
  288. package/locales/pt.js +8 -2
  289. package/locales/ru.js +8 -2
  290. package/locales/zh-TW.js +9 -2
  291. package/locales/zh.js +9 -2
  292. package/package.json +3 -3
  293. package/web-shell/assets/{arc-Buk1besA.js → arc-CMb7lr2P.js} +1 -1
  294. package/web-shell/assets/{architectureDiagram-3BPJPVTR-B1aUKYDC.js → architectureDiagram-3BPJPVTR-D6KQ5Kwm.js} +1 -1
  295. package/web-shell/assets/{blockDiagram-GPEHLZMM-CRTdg3Zx.js → blockDiagram-GPEHLZMM-Ce7YYSf8.js} +1 -1
  296. package/web-shell/assets/{c4Diagram-AAUBKEIU-DFdRMp5g.js → c4Diagram-AAUBKEIU-DaStHfor.js} +1 -1
  297. package/web-shell/assets/channel-Dg4f-Kry.js +1 -0
  298. package/web-shell/assets/{chunk-2J33WTMH-4rYQdkEI.js → chunk-2J33WTMH-CPaqadg9.js} +1 -1
  299. package/web-shell/assets/{chunk-4BX2VUAB-Coi-pQJy.js → chunk-4BX2VUAB-Veh9ZGKg.js} +1 -1
  300. package/web-shell/assets/{chunk-55IACEB6-BtBjz02t.js → chunk-55IACEB6-BPTX5n4q.js} +1 -1
  301. package/web-shell/assets/{chunk-727SXJPM-CGYOWorl.js → chunk-727SXJPM-CtXsE_ca.js} +1 -1
  302. package/web-shell/assets/{chunk-AQP2D5EJ-CH5AKhqx.js → chunk-AQP2D5EJ-D8DDCJ8h.js} +1 -1
  303. package/web-shell/assets/{chunk-FMBD7UC4-Cd50-w85.js → chunk-FMBD7UC4-cjMDGzHz.js} +1 -1
  304. package/web-shell/assets/{chunk-ND2GUHAM-C2wF3KCK.js → chunk-ND2GUHAM-BaZ1hNhV.js} +1 -1
  305. package/web-shell/assets/{chunk-QZHKN3VN-pCeRTaWi.js → chunk-QZHKN3VN-C7w-9w5-.js} +1 -1
  306. package/web-shell/assets/classDiagram-4FO5ZUOK-CT7Fo2aW.js +1 -0
  307. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CT7Fo2aW.js +1 -0
  308. package/web-shell/assets/{cose-bilkent-S5V4N54A-B-_fAB6D.js → cose-bilkent-S5V4N54A-DqvBEEIe.js} +1 -1
  309. package/web-shell/assets/{dagre-BM42HDAG-ChSPNHpL.js → dagre-BM42HDAG-RkPyoMAk.js} +1 -1
  310. package/web-shell/assets/{diagram-2AECGRRQ-BX7cFOF3.js → diagram-2AECGRRQ-D9b6nNyg.js} +1 -1
  311. package/web-shell/assets/{diagram-5GNKFQAL-BQUTW92n.js → diagram-5GNKFQAL-CiiNKUIy.js} +1 -1
  312. package/web-shell/assets/{diagram-KO2AKTUF-BkYPh3e4.js → diagram-KO2AKTUF-CP1qizXd.js} +1 -1
  313. package/web-shell/assets/{diagram-LMA3HP47-Cl6jsNyx.js → diagram-LMA3HP47-BGe30TWx.js} +1 -1
  314. package/web-shell/assets/{diagram-OG6HWLK6-DRWoHz8n.js → diagram-OG6HWLK6-CvoEPARH.js} +1 -1
  315. package/web-shell/assets/{erDiagram-TEJ5UH35-CGvFcZco.js → erDiagram-TEJ5UH35-DWfLzVkV.js} +1 -1
  316. package/web-shell/assets/{flowDiagram-I6XJVG4X-vms6oVdv.js → flowDiagram-I6XJVG4X-D-dTQmo6.js} +1 -1
  317. package/web-shell/assets/{ganttDiagram-6RSMTGT7-ukT_sfmi.js → ganttDiagram-6RSMTGT7-CYPHKaGY.js} +1 -1
  318. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Bn2ZE2Ut.js → gitGraphDiagram-PVQCEYII-DA7_aQYD.js} +1 -1
  319. package/web-shell/assets/index-B0i-TOYM.css +5 -0
  320. package/web-shell/assets/index-CgCHD46L.js +1225 -0
  321. package/web-shell/assets/{index-wFXp7W68.js → index-DqHNAB8C.js} +1 -1
  322. package/web-shell/assets/{infoDiagram-5YYISTIA-DHJdSi7x.js → infoDiagram-5YYISTIA-B87ljDPa.js} +1 -1
  323. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DOvd2Wph.js → ishikawaDiagram-YF4QCWOH-CYSpyjaN.js} +1 -1
  324. package/web-shell/assets/{journeyDiagram-JHISSGLW-CH_urMCT.js → journeyDiagram-JHISSGLW-DAL6Js6f.js} +1 -1
  325. package/web-shell/assets/{kanban-definition-UN3LZRKU-FKiBdgbH.js → kanban-definition-UN3LZRKU-_zufKGJv.js} +1 -1
  326. package/web-shell/assets/{linear-0ZVQFVKf.js → linear-DidhMgku.js} +1 -1
  327. package/web-shell/assets/{mermaid.core-DJ05ZZIK.js → mermaid.core-DAkX3h3a.js} +5 -5
  328. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BPuUhkUm.js → mindmap-definition-RKZ34NQL-DbZxUBEH.js} +1 -1
  329. package/web-shell/assets/{pieDiagram-4H26LBE5-yLFKcXyG.js → pieDiagram-4H26LBE5-Du9uoqrf.js} +1 -1
  330. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-irWqc1pE.js → quadrantDiagram-W4KKPZXB-DwjELuKm.js} +1 -1
  331. package/web-shell/assets/{requirementDiagram-4Y6WPE33-B_4uMoIV.js → requirementDiagram-4Y6WPE33-BAqfVtBL.js} +1 -1
  332. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-ciA4GPwk.js → sankeyDiagram-5OEKKPKP--hm2VpmK.js} +1 -1
  333. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CRdZvy0U.js → sequenceDiagram-3UESZ5HK-R5MUQaIt.js} +1 -1
  334. package/web-shell/assets/{stateDiagram-AJRCARHV-DaYIkCCn.js → stateDiagram-AJRCARHV-VsX032xQ.js} +1 -1
  335. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-uPWLcSfy.js +1 -0
  336. package/web-shell/assets/{timeline-definition-PNZ67QCA-oBUKv6iH.js → timeline-definition-PNZ67QCA-BqjVRXzg.js} +1 -1
  337. package/web-shell/assets/{vennDiagram-CIIHVFJN-CGW9Sdmb.js → vennDiagram-CIIHVFJN-i2tkvlkg.js} +1 -1
  338. package/web-shell/assets/{wardley-L42UT6IY-CvwKJOCm.js → wardley-L42UT6IY-Ch8G49EM.js} +1 -1
  339. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Ipc260sN.js → wardleyDiagram-YWT4CUSO-bYpWeQNy.js} +1 -1
  340. package/web-shell/assets/{xychartDiagram-2RQKCTM6-D6-CM7pK.js → xychartDiagram-2RQKCTM6-C9NhuBqB.js} +1 -1
  341. package/web-shell/index.html +17 -13
  342. package/chunks/MaxSizedBox-B5YGZSYE.js +0 -72
  343. package/chunks/agent-H4JIDL7S.js +0 -67
  344. package/chunks/agent-headless-TTBEREQV.js +0 -61
  345. package/chunks/bridge-VL7ITBU5.js +0 -75
  346. package/chunks/chunk-542SK7KV.js +0 -8293
  347. package/chunks/chunk-CPCVCKKF.js +0 -358
  348. package/chunks/chunk-SEKHYHMS.js +0 -45
  349. package/chunks/chunk-W7FJ3N32.js +0 -49
  350. package/chunks/chunk-ZFKNWQGQ.js +0 -74639
  351. package/chunks/contextCommand-L2COEUHS.js +0 -66
  352. package/chunks/daemon-status-provider-NL4IAG7B.js +0 -74
  353. package/chunks/earlyInputCapture-L6I2A22T.js +0 -68
  354. package/chunks/errors-LEOF5QG4.js +0 -74
  355. package/chunks/handleAutoUpdate-QQVIWXKT.js +0 -67
  356. package/chunks/i18n-N6OBDORT.js +0 -83
  357. package/chunks/initializer-6WCFNDLL.js +0 -72
  358. package/chunks/installationInfo-6J3WPXNS.js +0 -64
  359. package/chunks/list-HOWQSWP6.js +0 -75
  360. package/chunks/loadedSettingsAdapter-AO4YBRXZ.js +0 -69
  361. package/chunks/mcp-QH7QNXOH.js +0 -69
  362. package/chunks/nonInteractiveCli-TI7EMPXD.js +0 -126
  363. package/chunks/pidfile-UEHAT6DH.js +0 -72
  364. package/chunks/read-file-SQJONF6A.js +0 -29
  365. package/chunks/resumeHistoryUtils-PFQ2A23X.js +0 -78
  366. package/chunks/ripGrep-QCK22GDU.js +0 -59
  367. package/chunks/runtime-SNVAP6EH.js +0 -100
  368. package/chunks/serve-BT7KS6SC.js +0 -75
  369. package/chunks/shell-BITUVH2R.js +0 -69
  370. package/chunks/spawnChannel-2BU3AULL.js +0 -68
  371. package/chunks/standalone-update-YG5JUYCM.js +0 -78
  372. package/chunks/task-create-HX32YXO7.js +0 -23
  373. package/chunks/theme-manager-IAETOI25.js +0 -63
  374. package/chunks/total-session-admission-BJLDHKJN.js +0 -69
  375. package/chunks/trustedFolders-5XCVNEUU.js +0 -79
  376. package/chunks/updateCheck-YZZB7YBU.js +0 -70
  377. package/chunks/useAutoAcceptIndicator-ZSQX4I2H.js +0 -80
  378. package/chunks/workspace-providers-status-EADV364W.js +0 -72
  379. package/chunks/workspace-registry-W6VMFYZU.js +0 -73
  380. package/chunks/workspace-service-F3KIN2UN.js +0 -84
  381. package/chunks/workspace-skills-status-YVICUR5Y.js +0 -71
  382. package/chunks/write-file-CVGF2OKV.js +0 -596
  383. package/web-shell/assets/channel-04R0vLbG.js +0 -1
  384. package/web-shell/assets/classDiagram-4FO5ZUOK-Bw9SOwAV.js +0 -1
  385. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Bw9SOwAV.js +0 -1
  386. package/web-shell/assets/index-DgkKrjw3.js +0 -1187
  387. package/web-shell/assets/index-Rv6mOAN9.css +0 -5
  388. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DWBoO4UY.js +0 -1
@@ -1,596 +0,0 @@
1
- // Force strict mode and setup for ESM
2
- "use strict";
3
- import {
4
- checkTeamMemorySecrets
5
- } from "./chunk-SEKHYHMS.js";
6
- import {
7
- CommitAttributionService,
8
- FileEncoding,
9
- StructuredToolError,
10
- checkPriorRead,
11
- createPatchSmart,
12
- detectLineEnding,
13
- getDiffStat,
14
- needsUtf8Bom
15
- } from "./chunk-KX6UK4VJ.js";
16
- import "./chunk-5M6IDOMF.js";
17
- import "./chunk-T4TZQJ7W.js";
18
- import "./chunk-H6XPXXMH.js";
19
- import "./chunk-EAUYY7SS.js";
20
- import "./chunk-FSL5W5TI.js";
21
- import "./chunk-OONJNQ42.js";
22
- import "./chunk-D2VIDMVM.js";
23
- import "./chunk-E2UVIFI2.js";
24
- import "./chunk-XU457J4V.js";
25
- import "./chunk-VDDGDZMA.js";
26
- import "./chunk-EIAK6Q2B.js";
27
- import "./chunk-SZRN75WQ.js";
28
- import "./chunk-HTO4JFDZ.js";
29
- import "./chunk-CPBF7KYF.js";
30
- import "./chunk-CPCVCKKF.js";
31
- import "./chunk-6AM5D4ME.js";
32
- import "./chunk-G45X5TRN.js";
33
- import "./chunk-PBATSWUQ.js";
34
- import "./chunk-ZEOZL37W.js";
35
- import "./chunk-OOCI5VVU.js";
36
- import "./chunk-BRRF37CO.js";
37
- import "./chunk-BMWMT5Y2.js";
38
- import "./chunk-JESCGQM3.js";
39
- import {
40
- FileOperationEvent,
41
- fileExists,
42
- getLanguageFromFilePath,
43
- getSpecificMimeType,
44
- logFileOperation
45
- } from "./chunk-ZFKNWQGQ.js";
46
- import "./chunk-4WKAA4KS.js";
47
- import "./chunk-CR3C7WXL.js";
48
- import "./chunk-VGC4I5JJ.js";
49
- import {
50
- isAnyAutoMemPath,
51
- isTeamAutoMemPath
52
- } from "./chunk-JD3MKVKL.js";
53
- import "./chunk-UEY4AYUL.js";
54
- import "./chunk-BDBMYST4.js";
55
- import "./chunk-EZVDJFZ7.js";
56
- import {
57
- BaseDeclarativeTool,
58
- BaseToolInvocation,
59
- ToolDisplayNames,
60
- ToolNames
61
- } from "./chunk-OP4MOGXF.js";
62
- import "./chunk-XVNQMZ2I.js";
63
- import "./chunk-FEOZBUMT.js";
64
- import "./chunk-DJ2GSRLV.js";
65
- import "./chunk-6EFTQYW7.js";
66
- import "./chunk-MAQQGNQ5.js";
67
- import "./chunk-A4UCTEB5.js";
68
- import "./chunk-XWRJCPHC.js";
69
- import "./chunk-TYQMGACW.js";
70
- import "./chunk-TYAMGABM.js";
71
- import "./chunk-FCMNKVXT.js";
72
- import {
73
- createDebugLogger,
74
- getErrorMessage,
75
- isNodeError,
76
- makeRelative,
77
- shortenPath,
78
- unescapePath
79
- } from "./chunk-C27BYUX6.js";
80
- import "./chunk-75DOP5OR.js";
81
- import "./chunk-DMTGGOSA.js";
82
- import "./chunk-YQ3U5MUC.js";
83
- import "./chunk-TB6UDU4T.js";
84
- import {
85
- init_esbuild_shims
86
- } from "./chunk-5O2XNYP6.js";
87
- import {
88
- __name
89
- } from "./chunk-J2S4EL5Y.js";
90
-
91
- // packages/core/src/tools/write-file.ts
92
- init_esbuild_shims();
93
- import fs from "node:fs";
94
- import path from "node:path";
95
- var debugLogger = createDebugLogger("WRITE_FILE");
96
- var ARTIFACT_LIKE_EXTENSIONS = /* @__PURE__ */ new Set([
97
- ".htm",
98
- ".html",
99
- ".ipynb",
100
- ".jpeg",
101
- ".jpg",
102
- ".pdf",
103
- ".png",
104
- ".svg",
105
- ".webp"
106
- ]);
107
- var WriteFileToolInvocation = class extends BaseToolInvocation {
108
- constructor(config, params) {
109
- super(params);
110
- this.config = config;
111
- }
112
- static {
113
- __name(this, "WriteFileToolInvocation");
114
- }
115
- toolLocations() {
116
- return [{ path: this.params.file_path }];
117
- }
118
- getDescription() {
119
- const relativePath = makeRelative(
120
- this.params.file_path,
121
- this.config.getTargetDir()
122
- );
123
- return `Writing to ${shortenPath(relativePath)}`;
124
- }
125
- /**
126
- * Write operations always need user confirmation, except for the private
127
- * managed auto-memory files (user/project) which are written autonomously.
128
- * Team memory is shared and committed to the repo, so it is NOT auto-allowed
129
- * like the private tiers — writes default to 'ask'. (In AUTO_EDIT/YOLO the
130
- * user has globally opted into auto-approval; team writes still surface in the
131
- * git diff for review before commit.)
132
- */
133
- async getDefaultPermission() {
134
- const projectRoot = this.config.getProjectRoot();
135
- const filePath = path.resolve(this.params.file_path);
136
- if (isTeamAutoMemPath(filePath, projectRoot)) {
137
- return "ask";
138
- }
139
- if (isAnyAutoMemPath(filePath, projectRoot)) {
140
- return "allow";
141
- }
142
- return "ask";
143
- }
144
- /**
145
- * Constructs the write-file diff confirmation details.
146
- */
147
- async getConfirmationDetails(_abortSignal) {
148
- let originalContent = "";
149
- let fileExists2 = await fileExists(this.params.file_path);
150
- if (!this.config.getFileReadCacheDisabled()) {
151
- const decision = await checkPriorRead(
152
- this.config.getFileReadCache(),
153
- this.params.file_path,
154
- "overwriting"
155
- );
156
- if (!decision.ok) {
157
- throw new StructuredToolError(decision.rawMessage, decision.type);
158
- }
159
- }
160
- if (fileExists2) {
161
- try {
162
- const { content } = await this.config.getFileSystemService().readTextFile({ path: this.params.file_path });
163
- originalContent = content;
164
- } catch (err) {
165
- if (isNodeError(err) && err.code === "ENOENT") {
166
- fileExists2 = false;
167
- } else {
168
- throw new Error(
169
- `Error reading existing file for confirmation: ${getErrorMessage(err)}`
170
- );
171
- }
172
- }
173
- }
174
- if (fileExists2 && !this.config.getFileReadCacheDisabled()) {
175
- const postDecision = await checkPriorRead(
176
- this.config.getFileReadCache(),
177
- this.params.file_path,
178
- "overwriting",
179
- { expectExisting: true }
180
- );
181
- if (!postDecision.ok) {
182
- debugLogger.warn("post-read TOCTOU rejection (confirmation)", {
183
- path: this.params.file_path,
184
- reason: postDecision.type
185
- });
186
- throw new StructuredToolError(
187
- postDecision.rawMessage,
188
- postDecision.type
189
- );
190
- }
191
- }
192
- const relativePath = makeRelative(
193
- this.params.file_path,
194
- this.config.getTargetDir()
195
- );
196
- const fileName = path.basename(this.params.file_path);
197
- const fileDiff = createPatchSmart(
198
- fileName,
199
- originalContent,
200
- this.params.content,
201
- "Current",
202
- "Proposed"
203
- );
204
- const confirmationDetails = {
205
- type: "edit",
206
- title: `Confirm Write: ${shortenPath(relativePath)}`,
207
- fileName,
208
- filePath: this.params.file_path,
209
- fileDiff,
210
- originalContent,
211
- newContent: this.params.content,
212
- onConfirm: /* @__PURE__ */ __name(async (outcome) => {
213
- if (outcome === "proceed_always" /* ProceedAlways */) {
214
- this.config.setApprovalMode("auto-edit" /* AUTO_EDIT */);
215
- }
216
- }, "onConfirm")
217
- };
218
- return confirmationDetails;
219
- }
220
- async execute(_abortSignal) {
221
- const { file_path, content, ai_proposed_content, modified_by_user } = this.params;
222
- let fileExists2 = await fileExists(file_path);
223
- let originalContent = "";
224
- let useBOM = false;
225
- let detectedEncoding;
226
- let detectedLineEnding;
227
- const dirName = path.dirname(file_path);
228
- const teamMemoryError = checkTeamMemorySecrets(
229
- file_path,
230
- content,
231
- this.config.getProjectRoot()
232
- );
233
- if (teamMemoryError) {
234
- return {
235
- llmContent: `[ERROR: ${teamMemoryError}]`,
236
- returnDisplay: teamMemoryError,
237
- error: {
238
- message: teamMemoryError,
239
- type: "invalid_tool_params" /* INVALID_TOOL_PARAMS */
240
- }
241
- };
242
- }
243
- if (!this.config.getFileReadCacheDisabled()) {
244
- const decision = await checkPriorRead(
245
- this.config.getFileReadCache(),
246
- file_path,
247
- "overwriting"
248
- );
249
- if (!decision.ok) {
250
- return {
251
- llmContent: decision.rawMessage,
252
- returnDisplay: `Error: ${decision.displayMessage}`,
253
- error: {
254
- message: decision.rawMessage,
255
- type: decision.type
256
- }
257
- };
258
- }
259
- }
260
- if (fileExists2) {
261
- try {
262
- const fileInfo = await this.config.getFileSystemService().readTextFile({ path: file_path });
263
- if (fileInfo._meta?.bom !== void 0) {
264
- useBOM = fileInfo._meta.bom;
265
- } else {
266
- useBOM = fileInfo.content.length > 0 && fileInfo.content.codePointAt(0) === 65279;
267
- }
268
- detectedEncoding = fileInfo._meta?.encoding || "utf-8";
269
- detectedLineEnding = detectLineEnding(fileInfo.content);
270
- originalContent = fileInfo.content;
271
- fileExists2 = true;
272
- } catch (err) {
273
- if (isNodeError(err) && err.code === "ENOENT") {
274
- fileExists2 = false;
275
- } else {
276
- const error = {
277
- message: getErrorMessage(err),
278
- code: isNodeError(err) ? err.code : void 0
279
- };
280
- const errorMsg = error.code ? `Error checking existing file '${file_path}': ${error.message} (${error.code})` : `Error checking existing file: ${error.message}`;
281
- return {
282
- llmContent: errorMsg,
283
- returnDisplay: errorMsg,
284
- error: {
285
- message: errorMsg,
286
- type: "file_write_failure" /* FILE_WRITE_FAILURE */
287
- }
288
- };
289
- }
290
- }
291
- }
292
- if (fileExists2 && !this.config.getFileReadCacheDisabled()) {
293
- const postDecision = await checkPriorRead(
294
- this.config.getFileReadCache(),
295
- file_path,
296
- "overwriting",
297
- { expectExisting: true }
298
- );
299
- if (!postDecision.ok) {
300
- debugLogger.warn("post-read TOCTOU rejection (execute)", {
301
- path: file_path,
302
- reason: postDecision.type
303
- });
304
- return {
305
- llmContent: postDecision.rawMessage,
306
- returnDisplay: `Error: ${postDecision.displayMessage}`,
307
- error: {
308
- message: postDecision.rawMessage,
309
- type: postDecision.type
310
- }
311
- };
312
- }
313
- }
314
- if (!fileExists2) {
315
- const userEncoding = this.config.getDefaultFileEncoding();
316
- if (userEncoding === FileEncoding.UTF8_BOM) {
317
- useBOM = true;
318
- } else if (userEncoding === void 0) {
319
- useBOM = needsUtf8Bom(file_path);
320
- }
321
- detectedEncoding = void 0;
322
- }
323
- try {
324
- await this.config.getFileHistoryService().trackEdit(file_path);
325
- } catch {
326
- }
327
- if (!this.config.getFileReadCacheDisabled()) {
328
- const writeDecision = await checkPriorRead(
329
- this.config.getFileReadCache(),
330
- file_path,
331
- "overwriting",
332
- // If the file existed when we read it (`fileExists` is still
333
- // true after readTextFile), ENOENT here means the original
334
- // target disappeared between the post-read check and now —
335
- // reject rather than fall through and silently re-create the
336
- // file from stale bytes. For new-file creation
337
- // (`fileExists === false`), ENOENT is the expected pre-write
338
- // state (ok:true → writeTextFile creates).
339
- { expectExisting: fileExists2 }
340
- );
341
- if (!writeDecision.ok) {
342
- debugLogger.warn("pre-write TOCTOU rejection", {
343
- path: file_path,
344
- reason: writeDecision.type
345
- });
346
- return {
347
- llmContent: writeDecision.rawMessage,
348
- returnDisplay: `Error: ${writeDecision.displayMessage}`,
349
- error: {
350
- message: writeDecision.rawMessage,
351
- type: writeDecision.type
352
- }
353
- };
354
- }
355
- }
356
- if (!fileExists2) {
357
- fs.mkdirSync(dirName, { recursive: true });
358
- }
359
- try {
360
- await this.config.getFileSystemService().writeTextFile({
361
- path: file_path,
362
- content,
363
- _meta: {
364
- bom: useBOM,
365
- encoding: detectedEncoding,
366
- lineEnding: detectedLineEnding
367
- }
368
- });
369
- if (!modified_by_user) {
370
- CommitAttributionService.getInstance().recordEdit(
371
- file_path,
372
- fileExists2 ? originalContent : null,
373
- content
374
- );
375
- }
376
- try {
377
- const postWriteStats = fs.statSync(file_path);
378
- this.config.getFileReadCache().recordWrite(file_path, postWriteStats);
379
- } catch {
380
- }
381
- const fileName = path.basename(file_path);
382
- const currentContentForDiff = originalContent;
383
- const fileDiff = createPatchSmart(
384
- fileName,
385
- currentContentForDiff,
386
- content,
387
- "Original",
388
- "Written"
389
- );
390
- const originallyProposedContent = ai_proposed_content || content;
391
- const diffStat = getDiffStat(
392
- fileName,
393
- currentContentForDiff,
394
- originallyProposedContent,
395
- content
396
- );
397
- const llmSuccessMessageParts = [
398
- !fileExists2 ? `Successfully created and wrote to new file: ${file_path}.` : `Successfully overwrote file: ${file_path}.`
399
- ];
400
- if (modified_by_user) {
401
- llmSuccessMessageParts.push(
402
- `User modified the \`content\` to be: ${content}`
403
- );
404
- }
405
- const artifactReminder = buildRecordArtifactReminder(
406
- this.config,
407
- file_path
408
- );
409
- if (artifactReminder) {
410
- llmSuccessMessageParts.push(artifactReminder);
411
- }
412
- const mimetype = getSpecificMimeType(file_path);
413
- const programmingLanguage = getLanguageFromFilePath(file_path);
414
- const extension = path.extname(file_path);
415
- const operation = !fileExists2 ? "create" /* CREATE */ : "update" /* UPDATE */;
416
- const lineCount = content.split("\n").length;
417
- logFileOperation(
418
- this.config,
419
- new FileOperationEvent(
420
- WriteFileTool.Name,
421
- operation,
422
- lineCount,
423
- mimetype,
424
- extension,
425
- programmingLanguage
426
- )
427
- );
428
- const displayResult = {
429
- fileDiff,
430
- fileName,
431
- originalContent,
432
- newContent: content,
433
- diffStat
434
- };
435
- return {
436
- llmContent: llmSuccessMessageParts.join(" "),
437
- returnDisplay: displayResult
438
- };
439
- } catch (error) {
440
- let errorMsg;
441
- let errorType = "file_write_failure" /* FILE_WRITE_FAILURE */;
442
- if (isNodeError(error)) {
443
- errorMsg = `Error writing to file '${file_path}': ${error.message} (${error.code})`;
444
- if (error.code === "EACCES") {
445
- errorMsg = `Permission denied writing to file: ${file_path} (${error.code})`;
446
- errorType = "permission_denied" /* PERMISSION_DENIED */;
447
- } else if (error.code === "ENOSPC") {
448
- errorMsg = `No space left on device: ${file_path} (${error.code})`;
449
- errorType = "no_space_left" /* NO_SPACE_LEFT */;
450
- } else if (error.code === "EISDIR") {
451
- errorMsg = `Target is a directory, not a file: ${file_path} (${error.code})`;
452
- errorType = "target_is_directory" /* TARGET_IS_DIRECTORY */;
453
- }
454
- if (this.config.getDebugMode() && error.stack) {
455
- debugLogger.debug("Write file error stack:", error.stack);
456
- }
457
- } else {
458
- errorMsg = `Error writing to file: ${getErrorMessage(error)}`;
459
- }
460
- return {
461
- llmContent: errorMsg,
462
- returnDisplay: errorMsg,
463
- error: {
464
- message: errorMsg,
465
- type: errorType
466
- }
467
- };
468
- }
469
- }
470
- };
471
- function buildRecordArtifactReminder(config, filePath) {
472
- if (!config.isRecordArtifactEnabled()) {
473
- return null;
474
- }
475
- if (!ARTIFACT_LIKE_EXTENSIONS.has(path.extname(filePath).toLowerCase())) {
476
- return null;
477
- }
478
- const relativePath = path.relative(config.getTargetDir(), filePath);
479
- if (!relativePath || relativePath === ".." || relativePath.startsWith(`..${path.sep}`) || path.isAbsolute(relativePath)) {
480
- return null;
481
- }
482
- const workspacePath = relativePath.split(path.sep).join("/");
483
- return `If this file is a reusable user-facing artifact, call record_artifact with workspacePath "${workspacePath}" before telling the user it is available in the artifacts panel.`;
484
- }
485
- __name(buildRecordArtifactReminder, "buildRecordArtifactReminder");
486
- var WriteFileTool = class _WriteFileTool extends BaseDeclarativeTool {
487
- constructor(config) {
488
- super(
489
- _WriteFileTool.Name,
490
- ToolDisplayNames.WRITE_FILE,
491
- `Writes content to a specified file in the local filesystem. The file_path argument MUST be an absolute path. Always construct it by combining the project root with the file's relative path (e.g. project root '/path/to/project/' + relative 'foo/bar.txt' = '/path/to/project/foo/bar.txt'). If the user provides a relative path, resolve it against the project root first.
492
-
493
- The user has the ability to modify \`content\`. If modified, this will be stated in the response.`,
494
- "edit" /* Edit */,
495
- {
496
- properties: {
497
- file_path: {
498
- description: "The absolute path to the file to write to (e.g., '/home/user/project/file.txt'). Relative paths are not supported.",
499
- type: "string"
500
- },
501
- content: {
502
- description: "The content to write to the file.",
503
- type: "string"
504
- }
505
- },
506
- required: ["file_path", "content"],
507
- type: "object"
508
- }
509
- );
510
- this.config = config;
511
- }
512
- static {
513
- __name(this, "WriteFileTool");
514
- }
515
- static Name = ToolNames.WRITE_FILE;
516
- validateToolParamValues(params) {
517
- const filePath = unescapePath(params.file_path.trim());
518
- params.file_path = filePath;
519
- if (!filePath) {
520
- return `Missing or empty "file_path"`;
521
- }
522
- if (!path.isAbsolute(filePath)) {
523
- return `File path must be absolute: ${filePath}`;
524
- }
525
- try {
526
- if (fs.existsSync(filePath)) {
527
- const stats = fs.lstatSync(filePath);
528
- if (stats.isDirectory()) {
529
- return `Path is a directory, not a file: ${filePath}`;
530
- }
531
- }
532
- } catch (statError) {
533
- return `Error accessing path properties for validation: ${filePath}. Reason: ${getErrorMessage(
534
- statError
535
- )}`;
536
- }
537
- const teamMemoryError = checkTeamMemorySecrets(
538
- filePath,
539
- params.content ?? "",
540
- this.config.getProjectRoot()
541
- );
542
- if (teamMemoryError) {
543
- return teamMemoryError;
544
- }
545
- return null;
546
- }
547
- createInvocation(params) {
548
- return new WriteFileToolInvocation(this.config, params);
549
- }
550
- toAutoClassifierInput(params) {
551
- const content = params.content ?? "";
552
- return {
553
- file_path: params.file_path,
554
- byte_count: Buffer.byteLength(content, "utf8"),
555
- content_preview: content.slice(0, 300),
556
- content_truncated: content.length > 300
557
- };
558
- }
559
- getModifyContext(_abortSignal) {
560
- return {
561
- getFilePath: /* @__PURE__ */ __name((params) => params.file_path, "getFilePath"),
562
- getCurrentContent: /* @__PURE__ */ __name(async (params) => {
563
- const fileExists2 = await fileExists(params.file_path);
564
- if (fileExists2) {
565
- try {
566
- const { content } = await this.config.getFileSystemService().readTextFile({ path: params.file_path });
567
- return content;
568
- } catch (err) {
569
- if (!isNodeError(err) || err.code !== "ENOENT") throw err;
570
- return "";
571
- }
572
- } else {
573
- return "";
574
- }
575
- }, "getCurrentContent"),
576
- getProposedContent: /* @__PURE__ */ __name(async (params) => params.content, "getProposedContent"),
577
- createUpdatedParams: /* @__PURE__ */ __name((_oldContent, modifiedProposedContent, originalParams) => {
578
- const content = originalParams.content;
579
- return {
580
- ...originalParams,
581
- ai_proposed_content: content,
582
- content: modifiedProposedContent,
583
- modified_by_user: true
584
- };
585
- }, "createUpdatedParams")
586
- };
587
- }
588
- };
589
- export {
590
- WriteFileTool
591
- };
592
- /**
593
- * @license
594
- * Copyright 2025 Google LLC
595
- * SPDX-License-Identifier: Apache-2.0
596
- */
@@ -1 +0,0 @@
1
- import{U as a,D as n}from"./mermaid.core-DJ05ZZIK.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-CGYOWorl.js";import{_ as i}from"./mermaid.core-DJ05ZZIK.js";import"./chunk-FMBD7UC4-Cd50-w85.js";import"./chunk-ND2GUHAM-C2wF3KCK.js";import"./chunk-55IACEB6-BtBjz02t.js";import"./chunk-2J33WTMH-4rYQdkEI.js";import"./index-DgkKrjw3.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-CGYOWorl.js";import{_ as i}from"./mermaid.core-DJ05ZZIK.js";import"./chunk-FMBD7UC4-Cd50-w85.js";import"./chunk-ND2GUHAM-C2wF3KCK.js";import"./chunk-55IACEB6-BtBjz02t.js";import"./chunk-2J33WTMH-4rYQdkEI.js";import"./index-DgkKrjw3.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram};