@qwen-code/qwen-code 0.21.2 → 0.21.3-nightly.20260803.e1e5b42ce

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 (352) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +53 -38
  2. package/bundled/qc-helper/docs/features/channels/github.md +16 -5
  3. package/bundled/qc-helper/docs/features/channels/gitlab.md +6 -0
  4. package/bundled/qc-helper/docs/features/code-review.md +92 -24
  5. package/bundled/qc-helper/docs/features/commands.md +46 -38
  6. package/bundled/qc-helper/docs/features/hooks.md +115 -18
  7. package/bundled/qc-helper/docs/features/memory.md +27 -0
  8. package/bundled/qc-helper/docs/features/skills.md +46 -1
  9. package/bundled/qc-helper/docs/features/sub-agents.md +42 -9
  10. package/bundled/qc-helper/docs/features/tool-use-summaries.md +7 -7
  11. package/bundled/qc-helper/docs/qwen-serve.md +46 -25
  12. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +62 -31
  13. package/bundled/qc-helper/docs/support/troubleshooting.md +6 -1
  14. package/bundled/review/DESIGN.md +167 -32
  15. package/bundled/review/SKILL.md +207 -38
  16. package/chunks/{MaxSizedBox-TQBQ247P.js → MaxSizedBox-FCEK5P5K.js} +41 -38
  17. package/chunks/{StandaloneSessionPicker-2HPTKCLX.js → StandaloneSessionPicker-AT77J3PM.js} +63 -59
  18. package/chunks/{acp-startup-profiler-2C4A5ZTJ.js → acp-startup-profiler-3RICG2YW.js} +2 -2
  19. package/chunks/{acpAgent-PS6EDGH3.js → acpAgent-PBMKZ5KH.js} +664 -560
  20. package/chunks/{agent-VDOUB35F.js → agent-55W5BPK3.js} +37 -34
  21. package/chunks/{agent-headless-EO53EFS2.js → agent-headless-I7VMHI22.js} +37 -34
  22. package/chunks/{anthropicContentGenerator-OFHSZJBF.js → anthropicContentGenerator-3CAHEZBM.js} +341 -29
  23. package/chunks/{artifact-tool-RDN2W7ND.js → artifact-tool-TBOYEKTY.js} +2 -2
  24. package/chunks/{askUserQuestion-OZERWH5R.js → askUserQuestion-23Y5WZFJ.js} +2 -2
  25. package/chunks/{bridge-W7AZSRZQ.js → bridge-XNAWEDAN.js} +43 -40
  26. package/chunks/{ca-6W3SK7OQ.js → ca-NYKNH222.js} +50 -5
  27. package/chunks/{channel-management-service-5S7YCWX5.js → channel-management-service-UHX56NBO.js} +7 -7
  28. package/chunks/{channel-settings-store-JFVRSNER.js → channel-settings-store-7P6RJSSF.js} +44 -41
  29. package/chunks/{channel-worker-group-OVWGYMZS.js → channel-worker-group-NDG4WOOZ.js} +8 -8
  30. package/chunks/{channel-worker-manager-H55GKOQA.js → channel-worker-manager-ZCW6UW34.js} +8 -8
  31. package/chunks/{channel-worker-supervisor-CABBXYHK.js → channel-worker-supervisor-ATGFTZRN.js} +4 -4
  32. package/chunks/{chunk-6MPDY6ZG.js → chunk-24ER7UV4.js} +1 -1
  33. package/chunks/{chunk-QDK4F2N5.js → chunk-2DNKEBXY.js} +1 -1
  34. package/chunks/{chunk-AUOULH6Q.js → chunk-2GF3IDEK.js} +1610 -2196
  35. package/chunks/{chunk-JYBU6YUE.js → chunk-2M5N3DHY.js} +1 -1
  36. package/chunks/{chunk-LHKCY7DY.js → chunk-2UISUFHQ.js} +3 -3
  37. package/chunks/{chunk-BBIQAX4V.js → chunk-2ZCYE3F2.js} +30 -18
  38. package/chunks/{chunk-GJ2GBPBD.js → chunk-332FMXSD.js} +5 -5
  39. package/chunks/{chunk-JXVC2PL3.js → chunk-33FNCQSY.js} +2 -2
  40. package/chunks/{chunk-P755N4CS.js → chunk-3GALLNII.js} +6 -6
  41. package/chunks/{chunk-YANIWTRZ.js → chunk-3ICGQSVO.js} +1 -1
  42. package/chunks/{chunk-NBD76HUW.js → chunk-3LGZEYOF.js} +2 -2
  43. package/chunks/{chunk-E2BHWIDT.js → chunk-3RXUYQJI.js} +6 -2
  44. package/chunks/{chunk-E5Z2AVNV.js → chunk-3SH53ANB.js} +0 -11
  45. package/chunks/{chunk-N4ACHWNH.js → chunk-432XCUHF.js} +1 -1
  46. package/chunks/{chunk-JLZ3RBQG.js → chunk-44EJDGMS.js} +144 -11
  47. package/chunks/{chunk-KR32NIAN.js → chunk-4JP34TZ6.js} +10 -10
  48. package/chunks/{chunk-L2E5GFAG.js → chunk-4LKVQFHM.js} +2 -2
  49. package/chunks/{chunk-YDLJGZHL.js → chunk-4NFY2S7N.js} +0 -33
  50. package/chunks/{chunk-NHFEMWAZ.js → chunk-5WY5QEM6.js} +1 -1
  51. package/chunks/{chunk-56Z7QEAQ.js → chunk-6BUPGI3J.js} +16 -16
  52. package/chunks/{chunk-H6I4PGRV.js → chunk-6DNHLK7F.js} +4 -4
  53. package/chunks/{chunk-XQK4XXTN.js → chunk-6O5DVH27.js} +1 -1
  54. package/chunks/{chunk-2RFKHEXL.js → chunk-6PLDPT2C.js} +1 -1
  55. package/chunks/{chunk-Q5WZTTWE.js → chunk-7UPJXZLD.js} +6 -8
  56. package/chunks/{chunk-CBBP4BMC.js → chunk-7UXI6P72.js} +82 -207
  57. package/chunks/{chunk-6CQWRWUC.js → chunk-7XLPYF6B.js} +3 -3
  58. package/chunks/{chunk-VEMNQMHA.js → chunk-7ZH55K26.js} +5 -13
  59. package/chunks/{chunk-JJPKFJBT.js → chunk-A2FOI762.js} +3 -3
  60. package/chunks/{chunk-LYI2PZDK.js → chunk-A5LNZGJB.js} +2 -2
  61. package/chunks/{chunk-3APUUXRF.js → chunk-A5YZ3FA2.js} +2 -1
  62. package/chunks/{chunk-SHN4KHDK.js → chunk-A6SX5TAH.js} +3 -3
  63. package/chunks/{chunk-QCXGC7QB.js → chunk-A7PONO5G.js} +3 -3
  64. package/chunks/{chunk-SZ3KHTDR.js → chunk-AKA24BGO.js} +1 -1
  65. package/chunks/{chunk-RSVPYAGK.js → chunk-B4HXOGF5.js} +5 -5
  66. package/chunks/{chunk-D6MDRSZ6.js → chunk-BBXSRVSN.js} +22 -11
  67. package/chunks/{chunk-Q3T5KA2V.js → chunk-BFHXDAR7.js} +1 -1
  68. package/chunks/{chunk-L55JWS76.js → chunk-BGXZBI5B.js} +1 -1
  69. package/chunks/{chunk-2KKCCLPT.js → chunk-C4IUDGPI.js} +1 -1
  70. package/chunks/{chunk-MM7TH7ZM.js → chunk-CFDR3GNL.js} +18 -3
  71. package/chunks/{chunk-3F2WDAV6.js → chunk-CFVFQWFB.js} +14 -14
  72. package/chunks/{chunk-E2FN6SM7.js → chunk-CIUUYB23.js} +5 -5
  73. package/chunks/{chunk-JCJ7LKNA.js → chunk-DIEFUBV6.js} +1644 -1570
  74. package/chunks/{chunk-KWHKHSIS.js → chunk-DTAPI453.js} +8 -8
  75. package/chunks/{chunk-WWCMSZII.js → chunk-DV2GAGR7.js} +71 -7
  76. package/chunks/{chunk-675H6PLP.js → chunk-DYA25Y7U.js} +1 -1
  77. package/chunks/{chunk-3I6DUGQD.js → chunk-E4WHKETF.js} +32 -4
  78. package/chunks/{chunk-QTERJVPZ.js → chunk-EKTCKZV5.js} +1 -0
  79. package/chunks/{chunk-HX6RLYUO.js → chunk-ENOHFX2M.js} +4 -4
  80. package/chunks/{chunk-VMX5RZQH.js → chunk-EZZJHMFK.js} +18 -9
  81. package/chunks/{chunk-KXDONCPU.js → chunk-FBDRTW3I.js} +4 -4
  82. package/chunks/{chunk-FCYYAB4S.js → chunk-FHPKHXHT.js} +3 -3
  83. package/chunks/{chunk-DQ2O5QOJ.js → chunk-FJZS2MXB.js} +1 -1
  84. package/chunks/{chunk-EQNUDTL6.js → chunk-FVLPZSKH.js} +3 -3
  85. package/chunks/{chunk-2LEOZTBT.js → chunk-FYMMZV5F.js} +111 -26
  86. package/chunks/{chunk-UV6KF7T3.js → chunk-GNZ7MX73.js} +3 -3
  87. package/chunks/chunk-GOFAQQZA.js +132 -0
  88. package/chunks/{chunk-YUFIEIWC.js → chunk-GTM6IHBB.js} +2 -2
  89. package/chunks/{chunk-W3UKBMSI.js → chunk-GU5B6IF3.js} +118 -9
  90. package/chunks/{chunk-PCK4B6LR.js → chunk-GU5XWZU2.js} +1 -1
  91. package/chunks/{chunk-DEEABGH2.js → chunk-H2EDCJIM.js} +5954 -1766
  92. package/chunks/{chunk-FJ5WUMUQ.js → chunk-H36SETQS.js} +1 -1
  93. package/chunks/{chunk-6FMJLI5M.js → chunk-HFVW54NL.js} +41 -6
  94. package/chunks/chunk-HGCQ5SE7.js +136 -0
  95. package/chunks/{chunk-OFZKFPYG.js → chunk-HR4CHEQS.js} +3 -3
  96. package/chunks/{chunk-CO2U743O.js → chunk-I3GX6LGS.js} +4 -4
  97. package/chunks/{chunk-5NNHICSA.js → chunk-I7JDGNG6.js} +3 -3
  98. package/chunks/{chunk-RDJOB6S3.js → chunk-IEBT6DXF.js} +1 -1
  99. package/chunks/{chunk-EU5TBFJI.js → chunk-IV7QPMC2.js} +2 -2
  100. package/chunks/{chunk-B4AJNNOL.js → chunk-J26HHFI5.js} +1 -1
  101. package/chunks/{chunk-CNTR4GR6.js → chunk-JELIWHXD.js} +1 -1
  102. package/chunks/{chunk-FNDXMN7I.js → chunk-JQFMW7BD.js} +936 -223
  103. package/chunks/{chunk-IGTHU3T4.js → chunk-KKN2IE7Q.js} +1 -1
  104. package/chunks/{chunk-TZTAV5RH.js → chunk-KVUBYJDM.js} +2 -2
  105. package/chunks/{chunk-DUNI4EBW.js → chunk-KZXSAQYV.js} +86 -52
  106. package/chunks/chunk-LBOVL47Y.js +29 -0
  107. package/chunks/{chunk-FS674JW4.js → chunk-LBWNSLJK.js} +3 -3
  108. package/chunks/{chunk-I5BT7ADR.js → chunk-LEZFUYPM.js} +4 -4
  109. package/chunks/chunk-LLMGP5IC.js +222 -0
  110. package/chunks/{chunk-44F4LBWZ.js → chunk-LVW7BHTW.js} +56 -18
  111. package/chunks/{chunk-YGE3IXJP.js → chunk-M744OFVE.js} +1 -1
  112. package/chunks/chunk-MISUEWB4.js +8749 -0
  113. package/chunks/{chunk-7SJN2IWT.js → chunk-MJ2SKNTY.js} +5 -5
  114. package/chunks/{chunk-JE2CEOBO.js → chunk-MNTXIO6T.js} +4 -4
  115. package/chunks/{chunk-TEGJSJDF.js → chunk-MOHAWIAW.js} +2 -2
  116. package/chunks/{chunk-54YCNSK5.js → chunk-MVMBE5EH.js} +4521 -10220
  117. package/chunks/{chunk-PZEXDV3H.js → chunk-NCY2CDDX.js} +71 -43
  118. package/chunks/{chunk-TTJZAIFP.js → chunk-NJELCSFL.js} +3 -3
  119. package/chunks/{chunk-A7Y5H4TX.js → chunk-NXDJEZCI.js} +7 -7
  120. package/chunks/{chunk-PQNHRFJC.js → chunk-NYX53SV4.js} +0 -2
  121. package/chunks/{chunk-QARJNL2V.js → chunk-O2ZYHG33.js} +5 -4
  122. package/chunks/{chunk-6PQPKTXP.js → chunk-OPMLL3B3.js} +1 -1
  123. package/chunks/{chunk-PVNQRENX.js → chunk-OUQGNGIU.js} +1 -1
  124. package/chunks/{chunk-V7RNNPGC.js → chunk-P5Y23G2L.js} +18 -1
  125. package/chunks/{chunk-GURGAJTX.js → chunk-PDDYAXL2.js} +4 -1
  126. package/chunks/chunk-PWCQRLM5.js +1170 -0
  127. package/chunks/{chunk-GL4JOZXU.js → chunk-Q43MIWDH.js} +4 -4
  128. package/chunks/{chunk-V4XNUDPE.js → chunk-QFIYH5KR.js} +28 -7
  129. package/chunks/chunk-QL4TN4HS.js +59 -0
  130. package/chunks/{chunk-E6CJ2SMM.js → chunk-QMBEW7EW.js} +2 -2
  131. package/chunks/{chunk-U4VTUMMK.js → chunk-QONSRAEV.js} +1 -1
  132. package/chunks/{chunk-LOY7RWQG.js → chunk-QYPT3QUD.js} +3 -3
  133. package/chunks/{chunk-RG64CDT2.js → chunk-RJAVNGJJ.js} +131 -48
  134. package/chunks/{chunk-Z3S5EMOW.js → chunk-RPYYTL7E.js} +60 -12
  135. package/chunks/{chunk-V25K5ID7.js → chunk-SWCEYR6T.js} +1 -1
  136. package/chunks/{chunk-77V3VIKL.js → chunk-SXGNNAMC.js} +9 -9
  137. package/chunks/{chunk-7KAXXBER.js → chunk-TNQ5BEEB.js} +3 -3
  138. package/chunks/{chunk-R2XWGR75.js → chunk-TYERNYH4.js} +2 -2
  139. package/chunks/{chunk-45IOTAUS.js → chunk-U25CMJYY.js} +1 -1
  140. package/chunks/{chunk-7ULQIS27.js → chunk-UEJESCS7.js} +1 -1
  141. package/chunks/{chunk-HC45LTEN.js → chunk-UH7Z7Y45.js} +1 -1
  142. package/chunks/{chunk-P5VC5USY.js → chunk-UIKCPMID.js} +1 -1
  143. package/chunks/{chunk-CPZAH673.js → chunk-UKZEXS6K.js} +2 -0
  144. package/chunks/{chunk-HIVKI6O6.js → chunk-UO7AWUZJ.js} +9 -7
  145. package/chunks/{chunk-XP4L6KS3.js → chunk-URN76TKR.js} +2 -2
  146. package/chunks/{chunk-XUGZYLDH.js → chunk-UWSXFI6E.js} +1 -1
  147. package/chunks/{chunk-AOHY3QJ3.js → chunk-VA5NLVPT.js} +3 -3
  148. package/chunks/{chunk-FANRZEAJ.js → chunk-VWOVHOTT.js} +1 -1
  149. package/chunks/{chunk-NTDH4IML.js → chunk-W2K4OEW4.js} +7 -7
  150. package/chunks/{chunk-L32VV3ZJ.js → chunk-WH7W24EN.js} +12 -12
  151. package/chunks/{chunk-QTHQ6Z5X.js → chunk-WK4TJUEA.js} +1 -1
  152. package/chunks/{chunk-ZPZ7ZJEE.js → chunk-WUC6ZFXO.js} +1 -1
  153. package/chunks/{chunk-TIRRPCFS.js → chunk-X6QNZOTC.js} +1 -1
  154. package/chunks/{chunk-IIUGIWWY.js → chunk-XC2VAFVZ.js} +1 -1
  155. package/chunks/{chunk-D4HTUMGX.js → chunk-XC656O42.js} +3 -3
  156. package/chunks/{chunk-ZMOJ7ISP.js → chunk-XXOVLDZQ.js} +1 -1
  157. package/chunks/{chunk-THVU3RNH.js → chunk-YAVY33G4.js} +1 -1
  158. package/chunks/{chunk-PJOHNFIY.js → chunk-YIAC2OXH.js} +5 -5
  159. package/chunks/{chunk-CU47KXB5.js → chunk-YTSN63PD.js} +6 -6
  160. package/chunks/{chunk-DSFHVTWD.js → chunk-YXEVDA66.js} +2 -2
  161. package/chunks/{chunk-MB32MS4U.js → chunk-ZLJQIGCH.js} +260 -175
  162. package/chunks/{chunk-6TAASXWL.js → chunk-ZX6RZZFB.js} +3 -3
  163. package/chunks/{computer-use-5QWCFNKD.js → computer-use-BG2EHNJE.js} +37 -34
  164. package/chunks/{config-utils-WADIDWGG.js → config-utils-E3ZQTHGM.js} +4 -4
  165. package/chunks/{contextCommand-4Z7T7TUM.js → contextCommand-JAPYNKFC.js} +41 -38
  166. package/chunks/{core-runtime-6N4EFC2Q.js → core-runtime-2VCZN5QF.js} +37 -34
  167. package/chunks/{create-sub-session-AEREHZBQ.js → create-sub-session-52OUA2VU.js} +52 -43
  168. package/chunks/{create-sub-session-62YZWVAY.js → create-sub-session-J32WC64U.js} +2 -2
  169. package/chunks/{cron-create-6E7GIQTG.js → cron-create-HMFSHIAR.js} +4 -4
  170. package/chunks/{cron-delete-JD26XY3W.js → cron-delete-ZJFHOX57.js} +4 -4
  171. package/chunks/{cron-list-CUWFB44G.js → cron-list-ZEX2NBMN.js} +4 -4
  172. package/chunks/{daemon-PCNCI5YU.js → daemon-CCIX4BMG.js} +47 -6
  173. package/chunks/{daemon-status-provider-DDF7C5M7.js → daemon-status-provider-F2YGDKHR.js} +48 -45
  174. package/chunks/{daemon-trust-policy-Q4KSOJTR.js → daemon-trust-policy-XCY7JETR.js} +43 -40
  175. package/chunks/{daemon-trust-policy-monitor-V6FTE3IY.js → daemon-trust-policy-monitor-FBHB5GMQ.js} +43 -40
  176. package/chunks/{de-SY6O76BF.js → de-VL76CPLV.js} +50 -5
  177. package/chunks/{deferred-core-runtime-GHJ5GQHK.js → deferred-core-runtime-BBLJ4JUM.js} +37 -34
  178. package/chunks/display-image-2WOG27DY.js +184 -0
  179. package/chunks/{dist-ZHXOBXDN.js → dist-3BMEUGTG.js} +1 -1
  180. package/chunks/{dist-OAOC5OV4.js → dist-7JGAAQSC.js} +2 -2
  181. package/chunks/{dist-SL2LUMML.js → dist-A7H2KKUC.js} +1 -1
  182. package/chunks/{dist-ULIG4M5H.js → dist-C5U4LJKW.js} +162 -15
  183. package/chunks/{dist-2PERFI23.js → dist-DPPHJAVL.js} +3 -3
  184. package/chunks/{dist-PVEAFLHY.js → dist-HVBMEYWK.js} +1 -1
  185. package/chunks/{dist-26BIMQT6.js → dist-IKGVITP3.js} +676 -37
  186. package/chunks/{dist-WGMNT3JQ.js → dist-SFQ34F4M.js} +24 -6
  187. package/chunks/{earlyInputCapture-TQXLLISD.js → earlyInputCapture-ALVSMKP7.js} +38 -35
  188. package/chunks/{edit-FJEUV6KZ.js → edit-POB3CIHQ.js} +37 -34
  189. package/chunks/{en-NBK3JKCE.js → en-IRJ2WN5T.js} +61 -6
  190. package/chunks/{enter-worktree-7GE3TZ4P.js → enter-worktree-Q2N7UZWC.js} +37 -34
  191. package/chunks/{enterPlanMode-KR5TMPCJ.js → enterPlanMode-QGAH2GMP.js} +37 -34
  192. package/chunks/{environment-SWL3CMB3.js → environment-FE5AX2U5.js} +40 -37
  193. package/chunks/{errors-XQE7BGZV.js → errors-SLMCFLSC.js} +40 -37
  194. package/chunks/{exit-worktree-CHKTYNCV.js → exit-worktree-7WO2LPLF.js} +37 -34
  195. package/chunks/{exitPlanMode-QYAG6LWX.js → exitPlanMode-3PINWUTY.js} +37 -34
  196. package/chunks/{fast-path-Z2K7W6DC.js → fast-path-SVFFEL6U.js} +17 -4
  197. package/chunks/{fr-4KG5V7UT.js → fr-GK3HQYVB.js} +50 -5
  198. package/chunks/{gemini-YU4XKEDG.js → gemini-QECJNKNJ.js} +151 -90
  199. package/chunks/{geminiContentGenerator-ZZX6NBO4.js → geminiContentGenerator-ZFAZKT6R.js} +6 -6
  200. package/chunks/{glob-VYF5CXSX.js → glob-GXUNQYNR.js} +37 -34
  201. package/chunks/{goal-tools-HGO6VXPB.js → goal-tools-SPQ5M6D3.js} +3 -3
  202. package/chunks/{grep-5DP5ZUTW.js → grep-LVU5KBCV.js} +37 -34
  203. package/chunks/{handleAutoUpdate-UVBJ56DL.js → handleAutoUpdate-MPDHQY72.js} +43 -40
  204. package/chunks/{i18n-UQNYHEUD.js → i18n-LEYRN6RV.js} +39 -36
  205. package/chunks/{image-gen-WHPIZNWF.js → image-gen-4T2D4PTP.js} +9 -9
  206. package/chunks/{initializer-GMIICF4W.js → initializer-PQV2THBS.js} +44 -41
  207. package/chunks/{installationInfo-4MGG4WVI.js → installationInfo-XC3HXLTX.js} +38 -35
  208. package/chunks/{ja-F3GSQXMF.js → ja-3FA46IKD.js} +50 -5
  209. package/chunks/{keychain-token-storage-IKO4G53C.js → keychain-token-storage-7BT4TQ2A.js} +2 -2
  210. package/chunks/{kittyProtocolDetector-MBRTDRBK.js → kittyProtocolDetector-BFLAKYXH.js} +1 -1
  211. package/chunks/{list-CPN2W334.js → list-AQBTPZRG.js} +46 -43
  212. package/chunks/{list-agents-PXJ7ZUFB.js → list-agents-TWEGRJWO.js} +2 -2
  213. package/chunks/{loadedSettingsAdapter-ZQAV5NDO.js → loadedSettingsAdapter-EZYPDX2J.js} +43 -40
  214. package/chunks/{loggingContentGenerator-5E7W4IEP.js → loggingContentGenerator-WD6YWU7Q.js} +52 -37
  215. package/chunks/{loop-wakeup-Y26NQZ5I.js → loop-wakeup-6LLEOQYV.js} +5 -5
  216. package/chunks/{ls-ONQTTMQR.js → ls-H5WX22VK.js} +4 -4
  217. package/chunks/{lsp-YGHHRGMD.js → lsp-G6FXYEIS.js} +2 -2
  218. package/chunks/{managed-npm-update-MKKAXYXA.js → managed-npm-update-BMM57CHD.js} +40 -37
  219. package/chunks/{mcp-V5NTJF6X.js → mcp-FMI6NCWA.js} +43 -40
  220. package/chunks/{monitor-CO3ASY6E.js → monitor-PZJOYAA2.js} +37 -34
  221. package/chunks/nonInteractiveCli-QPX6R4LL.js +152 -0
  222. package/chunks/{notebook-edit-Z7AEE6FM.js → notebook-edit-GZF2SKTQ.js} +37 -34
  223. package/chunks/{openaiContentGenerator-CA3MQOP3.js → openaiContentGenerator-ZPLCFAAG.js} +18 -18
  224. package/chunks/{pidfile-NL7MKDRU.js → pidfile-PCADVJQW.js} +38 -35
  225. package/chunks/{processUtils-PB5K2DYH.js → processUtils-FKUVQVEU.js} +2 -2
  226. package/chunks/{pt-EQ33KWEN.js → pt-3AOBKPIJ.js} +50 -5
  227. package/chunks/{qwenContentGenerator-JYFNDCOS.js → qwenContentGenerator-2Y4R6YLB.js} +42 -40
  228. package/chunks/{qwenOAuth2-W2ALKQDD.js → qwenOAuth2-UCEHY3I2.js} +8 -8
  229. package/chunks/{read-file-IEOR5H5W.js → read-file-DYHDFVAS.js} +10 -10
  230. package/chunks/{read-mcp-resource-U2IJN5HM.js → read-mcp-resource-DRZSI3HE.js} +2 -2
  231. package/chunks/{record-artifact-MGPJ7EG4.js → record-artifact-IPIRWMFY.js} +3 -3
  232. package/chunks/{resumeHistoryUtils-BNBTP5AS.js → resumeHistoryUtils-5JS6R3AJ.js} +45 -42
  233. package/chunks/{ripGrep-UMQODKEB.js → ripGrep-2QOR3ZQT.js} +37 -34
  234. package/chunks/{ru-7OZAUKGG.js → ru-VJRAMC4W.js} +50 -5
  235. package/chunks/{run-qwen-serve-RN2R6QQW.js → run-qwen-serve-MTVRAUBR.js} +271 -60
  236. package/chunks/{runtime-QFJ2MJF5.js → runtime-DQGE2DYR.js} +50 -45
  237. package/chunks/{scheduler-AMYUFOZI.js → scheduler-BXIZQ4OO.js} +37 -34
  238. package/chunks/{sdk-exporters-http-4BQANSJ6.js → sdk-exporters-http-IKNWQJNV.js} +2 -2
  239. package/chunks/{sdk-impl-Z4VXWVFX.js → sdk-impl-7CUUMQDB.js} +2 -2
  240. package/chunks/{send-message-PMP4ATVM.js → send-message-LHJLVWFD.js} +5 -4
  241. package/chunks/{serve-EIIYJVX3.js → serve-D4GYHFLL.js} +44 -40
  242. package/chunks/{server-EP2LLAPD.js → server-S22MLWTJ.js} +618 -387
  243. package/chunks/{session-GMPZBLOW.js → session-AHNM6YXP.js} +151 -87
  244. package/chunks/{settings-LN7RNKBS.js → settings-77MDDUSX.js} +42 -39
  245. package/chunks/{shell-EM2OWU5X.js → shell-DLD2VQTQ.js} +37 -34
  246. package/chunks/{skill-T5VPSK73.js → skill-3B2PAQE4.js} +27 -14
  247. package/chunks/{skill-settings-GMR3GMNY.js → skill-settings-STR5NF4B.js} +42 -39
  248. package/chunks/{spawnChannel-YPCU62DI.js → spawnChannel-TOWYOVDZ.js} +39 -36
  249. package/chunks/{standalone-update-JAKIM2NF.js → standalone-update-F6ZWABD7.js} +40 -37
  250. package/chunks/{startInteractiveUI-YETQWGYF.js → startInteractiveUI-QR7MHDX7.js} +1829 -1036
  251. package/chunks/{syntheticOutput-D7E6ZFKR.js → syntheticOutput-EYL7DWO7.js} +3 -3
  252. package/chunks/{task-create-NFCYD43L.js → task-create-4ALZMGP5.js} +10 -9
  253. package/chunks/{task-list-TAVMGEVD.js → task-list-6CVQPORX.js} +6 -6
  254. package/chunks/{task-stop-ZDF2UJRM.js → task-stop-Y5ZTFVRX.js} +2 -2
  255. package/chunks/{task-update-6L7LHGEX.js → task-update-IKCEEWJ6.js} +10 -9
  256. package/chunks/{team-create-LFJ6HGNY.js → team-create-LQVIAVRF.js} +37 -34
  257. package/chunks/{team-delete-DPGGRQBU.js → team-delete-CE7DC53R.js} +6 -6
  258. package/chunks/{team-plan-approval-C2KLSDGO.js → team-plan-approval-G5PUNI52.js} +37 -34
  259. package/chunks/terminal-image-renderer-33GSM55L.js +90 -0
  260. package/chunks/{theme-manager-JQ3ZGBP5.js → theme-manager-DBFM5QOG.js} +38 -35
  261. package/chunks/{todoWrite-2UO5G6G6.js → todoWrite-FTZWQRZH.js} +108 -36
  262. package/chunks/{tool-search-FAZBFRJZ.js → tool-search-RGG7BBC4.js} +13 -12
  263. package/chunks/{total-session-admission-5CALIVYO.js → total-session-admission-LY3RMXXI.js} +44 -41
  264. package/chunks/{trustedFolders-KOPSP44S.js → trustedFolders-3M4IQ6K6.js} +39 -36
  265. package/chunks/{update-relaunch-6QL2TICS.js → update-relaunch-G3CMSX3M.js} +5 -5
  266. package/chunks/{updateCheck-4Q6RIKFW.js → updateCheck-ZKFGBDTG.js} +42 -39
  267. package/chunks/{useAutoAcceptIndicator-Q5BMKZV3.js → useAutoAcceptIndicator-7SAFZK5H.js} +47 -44
  268. package/chunks/{validateNonInterActiveAuth-GKOC5F6Z.js → validateNonInterActiveAuth-F2K6UGE4.js} +88 -84
  269. package/chunks/{version-VSATY2LD.js → version-KM6MYV2D.js} +1 -1
  270. package/chunks/{web-fetch-JCLKL6NL.js → web-fetch-SM4LZHRS.js} +13 -13
  271. package/chunks/{web-search-DSQTFUBX.js → web-search-OGKZNDAC.js} +8 -8
  272. package/chunks/{workflow-M6QAVKVJ.js → workflow-HU365RFR.js} +419 -304
  273. package/chunks/{workspace-providers-status-YKLTLMJA.js → workspace-providers-status-QKKXQHL7.js} +46 -43
  274. package/chunks/{workspace-registration-store-5DMGKU64.js → workspace-registration-store-7J7KOXFD.js} +2 -2
  275. package/chunks/{workspace-registry-PTYUSYXX.js → workspace-registry-KC66O6DH.js} +44 -41
  276. package/chunks/{workspace-service-25ML3T47.js → workspace-service-TEV5Q2AA.js} +51 -48
  277. package/chunks/{workspace-skills-status-YKZWOYRX.js → workspace-skills-status-VRL55OMU.js} +45 -42
  278. package/chunks/{workspace-trust-reconciler-5FI2S3OS.js → workspace-trust-reconciler-COC5M7CY.js} +50 -47
  279. package/chunks/{write-file-AY7VLP5X.js → write-file-3SO2BMNO.js} +37 -34
  280. package/chunks/{zh-H3YDK5QW.js → zh-ARWDLDLR.js} +58 -6
  281. package/chunks/{zh-TW-JYCP7XUA.js → zh-TW-Y4RGI3P7.js} +58 -6
  282. package/chunks/{zoom-image-S4LJZMD5.js → zoom-image-O3RWTVKV.js} +10 -10
  283. package/cli.js +32 -48
  284. package/locales/ca.js +68 -4
  285. package/locales/de.js +70 -4
  286. package/locales/en.js +84 -6
  287. package/locales/fr.js +72 -4
  288. package/locales/ja.js +69 -4
  289. package/locales/pt.js +68 -4
  290. package/locales/ru.js +71 -4
  291. package/locales/zh-TW.js +74 -6
  292. package/locales/zh.js +74 -6
  293. package/package.json +3 -3
  294. package/web-shell/assets/{arc-xjArKHU2.js → arc-KuwiZ67W.js} +1 -1
  295. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BgrQDNYG.js → architectureDiagram-3BPJPVTR-Cppop6HB.js} +1 -1
  296. package/web-shell/assets/{blockDiagram-GPEHLZMM-CXxWC-1_.js → blockDiagram-GPEHLZMM-DQ6HT72s.js} +1 -1
  297. package/web-shell/assets/{c4Diagram-AAUBKEIU-Dx1tLm3v.js → c4Diagram-AAUBKEIU-B8TX_Mh-.js} +1 -1
  298. package/web-shell/assets/channel-BZd6Ile0.js +1 -0
  299. package/web-shell/assets/{chunk-2J33WTMH-CBxjogVR.js → chunk-2J33WTMH-B2WBUTp8.js} +1 -1
  300. package/web-shell/assets/{chunk-4BX2VUAB-izb-rY5W.js → chunk-4BX2VUAB-DXUsWC6O.js} +1 -1
  301. package/web-shell/assets/{chunk-55IACEB6-NzLyvSb8.js → chunk-55IACEB6-DtB-6cyk.js} +1 -1
  302. package/web-shell/assets/{chunk-727SXJPM-DVyKb0dl.js → chunk-727SXJPM-B-PhPyC3.js} +1 -1
  303. package/web-shell/assets/{chunk-AQP2D5EJ-BtqL7NzB.js → chunk-AQP2D5EJ-DNaTFMSC.js} +1 -1
  304. package/web-shell/assets/{chunk-FMBD7UC4-iNpdKIO0.js → chunk-FMBD7UC4-DZ345tFf.js} +1 -1
  305. package/web-shell/assets/{chunk-ND2GUHAM-DI7cbFmX.js → chunk-ND2GUHAM-BR_EpgzJ.js} +1 -1
  306. package/web-shell/assets/{chunk-QZHKN3VN-3Y_-xFYs.js → chunk-QZHKN3VN-BTU-0gDT.js} +1 -1
  307. package/web-shell/assets/classDiagram-4FO5ZUOK-B7c-TqtK.js +1 -0
  308. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B7c-TqtK.js +1 -0
  309. package/web-shell/assets/{cose-bilkent-S5V4N54A--raRatZn.js → cose-bilkent-S5V4N54A-BmsKBCNt.js} +1 -1
  310. package/web-shell/assets/{dagre-BM42HDAG-B8SU70mO.js → dagre-BM42HDAG-Ba8YWdDC.js} +1 -1
  311. package/web-shell/assets/{diagram-2AECGRRQ-ewgoakXo.js → diagram-2AECGRRQ-CCt2SnI6.js} +1 -1
  312. package/web-shell/assets/{diagram-5GNKFQAL-Bm_JLTnS.js → diagram-5GNKFQAL-BVTLXEU7.js} +1 -1
  313. package/web-shell/assets/{diagram-KO2AKTUF-DEIUjUy9.js → diagram-KO2AKTUF-DpDAVCYV.js} +1 -1
  314. package/web-shell/assets/{diagram-LMA3HP47-C2Wmrpj-.js → diagram-LMA3HP47-8ljXg-TB.js} +1 -1
  315. package/web-shell/assets/{diagram-OG6HWLK6-CtYe6bFx.js → diagram-OG6HWLK6-JAXfQSmd.js} +1 -1
  316. package/web-shell/assets/{erDiagram-TEJ5UH35-DfpHcWLV.js → erDiagram-TEJ5UH35-CUeakG6k.js} +1 -1
  317. package/web-shell/assets/{flowDiagram-I6XJVG4X-CAiUhio5.js → flowDiagram-I6XJVG4X-Cd4Wrdwv.js} +1 -1
  318. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CYc7ezr4.js → ganttDiagram-6RSMTGT7-C0nMFvH_.js} +1 -1
  319. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-70lbkcRS.js → gitGraphDiagram-PVQCEYII-uKk88n_L.js} +1 -1
  320. package/web-shell/assets/index-BXGtjHs5.js +1756 -0
  321. package/web-shell/assets/{index-Ww86nT9f.js → index-C1UWBJSX.js} +1 -1
  322. package/web-shell/assets/index-WxSvj2tI.css +5 -0
  323. package/web-shell/assets/{infoDiagram-5YYISTIA-C7e8DWPa.js → infoDiagram-5YYISTIA-GfPN17hR.js} +1 -1
  324. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BYLr2op-.js → ishikawaDiagram-YF4QCWOH-CDbWTcGa.js} +1 -1
  325. package/web-shell/assets/{journeyDiagram-JHISSGLW-hEibAHKX.js → journeyDiagram-JHISSGLW-J8TvvVFz.js} +1 -1
  326. package/web-shell/assets/{kanban-definition-UN3LZRKU-F2rt8Uhp.js → kanban-definition-UN3LZRKU-Ds_ndLrs.js} +1 -1
  327. package/web-shell/assets/{linear-DPhyNezd.js → linear-DuL9O4i3.js} +1 -1
  328. package/web-shell/assets/{mermaid.core-ZUtnug0n.js → mermaid.core-DtK4PsQB.js} +5 -5
  329. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DDWcMoi8.js → mindmap-definition-RKZ34NQL-DD0r7MS3.js} +1 -1
  330. package/web-shell/assets/{pieDiagram-4H26LBE5-CTRKzw1_.js → pieDiagram-4H26LBE5-CxGPZ8Q-.js} +1 -1
  331. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CAEwYG_z.js → quadrantDiagram-W4KKPZXB-Ds7Buxed.js} +1 -1
  332. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CRjnH9D9.js → requirementDiagram-4Y6WPE33-DIx28ph5.js} +1 -1
  333. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-LPQT_sOd.js → sankeyDiagram-5OEKKPKP-AxdAYcVX.js} +1 -1
  334. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Ht2Iqvb0.js → sequenceDiagram-3UESZ5HK-CojoXAZ5.js} +1 -1
  335. package/web-shell/assets/{stateDiagram-AJRCARHV-CIUdqOXu.js → stateDiagram-AJRCARHV-Dy1WN3mi.js} +1 -1
  336. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BaTNMz02.js +1 -0
  337. package/web-shell/assets/{timeline-definition-PNZ67QCA-BcilneZF.js → timeline-definition-PNZ67QCA-DeWe_43M.js} +1 -1
  338. package/web-shell/assets/{vennDiagram-CIIHVFJN-BljwiiH1.js → vennDiagram-CIIHVFJN-BN8PVlFq.js} +1 -1
  339. package/web-shell/assets/{wardley-L42UT6IY-DeKjkYjq.js → wardley-L42UT6IY-CbjV_1hf.js} +1 -1
  340. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-L3U1H7KG.js → wardleyDiagram-YWT4CUSO-D2mw84_p.js} +1 -1
  341. package/web-shell/assets/{xychartDiagram-2RQKCTM6-IJnWsgMT.js → xychartDiagram-2RQKCTM6-er9CTQXi.js} +1 -1
  342. package/web-shell/index.html +2 -2
  343. package/chunks/chunk-4KP2F2TE.js +0 -82
  344. package/chunks/chunk-HGT6JR3U.js +0 -177
  345. package/chunks/nonInteractiveCli-ZJYEOO7U.js +0 -148
  346. package/web-shell/assets/channel-B1cyk94G.js +0 -1
  347. package/web-shell/assets/classDiagram-4FO5ZUOK-BpBYZoRE.js +0 -1
  348. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BpBYZoRE.js +0 -1
  349. package/web-shell/assets/index-C1k3PDuU.css +0 -5
  350. package/web-shell/assets/index-DZLIXILO.js +0 -1750
  351. package/web-shell/assets/insert-DmRbh9Rv.svg +0 -1
  352. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BmqqQZ6w.js +0 -1
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-O6GEWCJA.js";
6
6
  import {
7
7
  detectTodoChanges
8
- } from "./chunk-3APUUXRF.js";
8
+ } from "./chunk-A5YZ3FA2.js";
9
9
  import {
10
10
  escapeSystemReminderTags
11
11
  } from "./chunk-AQ37AY7B.js";
@@ -14,14 +14,14 @@ import {
14
14
  BaseToolInvocation,
15
15
  ToolDisplayNames,
16
16
  ToolNames
17
- } from "./chunk-MM7TH7ZM.js";
17
+ } from "./chunk-CFDR3GNL.js";
18
18
  import {
19
19
  atomicWriteFile
20
- } from "./chunk-HC45LTEN.js";
20
+ } from "./chunk-UH7Z7Y45.js";
21
21
  import {
22
22
  Storage,
23
23
  createDebugLogger
24
- } from "./chunk-E2BHWIDT.js";
24
+ } from "./chunk-3RXUYQJI.js";
25
25
  import "./chunk-QUGAUQGJ.js";
26
26
  import {
27
27
  init_esbuild_shims
@@ -32,6 +32,8 @@ import {
32
32
 
33
33
  // packages/core/src/tools/todoWrite.ts
34
34
  init_esbuild_shims();
35
+ import { randomUUID } from "node:crypto";
36
+ import { isDeepStrictEqual } from "node:util";
35
37
  import * as fs from "fs/promises";
36
38
  import * as fsSync from "fs";
37
39
  import * as path from "path";
@@ -57,7 +59,14 @@ var todoWriteToolSchemaData = {
57
59
  enum: ["pending", "in_progress", "completed"]
58
60
  },
59
61
  id: {
60
- type: "string"
62
+ type: "string",
63
+ maxLength: 500
64
+ },
65
+ blockedBy: {
66
+ type: "array",
67
+ items: { type: "string", maxLength: 500 },
68
+ uniqueItems: true,
69
+ description: "Todo IDs that must be completed before this item"
61
70
  }
62
71
  },
63
72
  required: ["content", "status", "id"],
@@ -82,6 +91,8 @@ Do not use it for simple or single-step work, purely conversational or informati
82
91
 
83
92
  Keep the list short and outcome-oriented. Use a small number of meaningful, logically ordered, verifiable steps. Do not create a separate todo for every error, file, command, or minor edit.
84
93
 
94
+ Use blockedBy only when the work has real dependencies. Reference Todo IDs from the same list and keep independent work unblocked.
95
+
85
96
  Keep at most one task in_progress. When a plan exists, keep its statuses current, mark finished work completed, revise the plan when the scope or approach changes, and remove items that are no longer relevant. Do not mark incomplete or blocked work completed.
86
97
  `;
87
98
  var TODO_SUBDIR = "todos";
@@ -91,26 +102,30 @@ function getTodoFilePath(sessionId) {
91
102
  return path.join(todoDir, filename);
92
103
  }
93
104
  __name(getTodoFilePath, "getTodoFilePath");
94
- async function readTodosFromFile(sessionId) {
105
+ async function readTodoPlanFromFile(sessionId) {
95
106
  try {
96
107
  const todoFilePath = getTodoFilePath(sessionId);
97
108
  const content = await fs.readFile(todoFilePath, "utf-8");
98
109
  const data = JSON.parse(content);
99
- return Array.isArray(data.todos) ? data.todos : [];
110
+ return {
111
+ ...typeof data["planId"] === "string" ? { planId: data["planId"] } : {},
112
+ todos: Array.isArray(data["todos"]) ? data["todos"] : []
113
+ };
100
114
  } catch (err) {
101
115
  const error = err;
102
116
  if (!(error instanceof Error) || error.code !== "ENOENT") {
103
117
  throw err;
104
118
  }
105
- return [];
119
+ return { todos: [] };
106
120
  }
107
121
  }
108
- __name(readTodosFromFile, "readTodosFromFile");
109
- async function writeTodosToFile(todos, sessionId) {
122
+ __name(readTodoPlanFromFile, "readTodoPlanFromFile");
123
+ async function writeTodosToFile(todos, planId, sessionId) {
110
124
  const todoFilePath = getTodoFilePath(sessionId);
111
125
  const todoDir = path.dirname(todoFilePath);
112
126
  await fs.mkdir(todoDir, { recursive: true });
113
127
  const data = {
128
+ ...planId ? { planId } : {},
114
129
  todos,
115
130
  sessionId: sessionId || "default"
116
131
  };
@@ -119,6 +134,74 @@ async function writeTodosToFile(todos, sessionId) {
119
134
  });
120
135
  }
121
136
  __name(writeTodosToFile, "writeTodosToFile");
137
+ function validateTodos(value) {
138
+ if (!Array.isArray(value)) {
139
+ return 'Parameter "todos" must be an array.';
140
+ }
141
+ const todos = value;
142
+ for (const todo of todos) {
143
+ if (!todo || typeof todo !== "object") {
144
+ return "Each todo must be an object.";
145
+ }
146
+ if (!todo.id || typeof todo.id !== "string" || todo.id.trim() === "" || todo.id.length > 500) {
147
+ return 'Each todo must have a non-empty "id" string of at most 500 characters.';
148
+ }
149
+ if (!todo.content || typeof todo.content !== "string" || todo.content.trim() === "") {
150
+ return 'Each todo must have a non-empty "content" string.';
151
+ }
152
+ if (!["pending", "in_progress", "completed"].includes(todo.status)) {
153
+ return 'Each todo must have a valid "status" (pending, in_progress, completed).';
154
+ }
155
+ if (todo.blockedBy !== void 0 && (!Array.isArray(todo.blockedBy) || todo.blockedBy.some(
156
+ (dependency) => typeof dependency !== "string" || dependency.trim() === "" || dependency.length > 500
157
+ ))) {
158
+ return 'Each todo "blockedBy" value must be an array of non-empty Todo IDs of at most 500 characters.';
159
+ }
160
+ }
161
+ const ids = todos.map((todo) => todo.id);
162
+ const uniqueIds = new Set(ids);
163
+ if (ids.length !== uniqueIds.size) {
164
+ return "Todo IDs must be unique within the array.";
165
+ }
166
+ for (const todo of todos) {
167
+ const dependencies = todo.blockedBy ?? [];
168
+ if (new Set(dependencies).size !== dependencies.length) {
169
+ return `Todo "${todo.id}" must not contain duplicate blockedBy references.`;
170
+ }
171
+ if (dependencies.includes(todo.id)) {
172
+ return `Todo "${todo.id}" must not depend on itself.`;
173
+ }
174
+ const missing = dependencies.find(
175
+ (dependency) => !uniqueIds.has(dependency)
176
+ );
177
+ if (missing) {
178
+ return `Todo "${todo.id}" references unknown dependency "${missing}".`;
179
+ }
180
+ }
181
+ const remainingDependencies = /* @__PURE__ */ new Map();
182
+ const dependents = /* @__PURE__ */ new Map();
183
+ for (const todo of todos) {
184
+ remainingDependencies.set(todo.id, todo.blockedBy?.length ?? 0);
185
+ for (const dependency of todo.blockedBy ?? []) {
186
+ const children = dependents.get(dependency) ?? [];
187
+ children.push(todo.id);
188
+ dependents.set(dependency, children);
189
+ }
190
+ }
191
+ const queue = todos.filter((todo) => remainingDependencies.get(todo.id) === 0).map((todo) => todo.id);
192
+ for (let index = 0; index < queue.length; index++) {
193
+ for (const dependent of dependents.get(queue[index]) ?? []) {
194
+ const remaining = (remainingDependencies.get(dependent) ?? 1) - 1;
195
+ remainingDependencies.set(dependent, remaining);
196
+ if (remaining === 0) queue.push(dependent);
197
+ }
198
+ }
199
+ if (queue.length !== todos.length) {
200
+ return "Todo dependencies must not contain a cycle.";
201
+ }
202
+ return null;
203
+ }
204
+ __name(validateTodos, "validateTodos");
122
205
  function createBlockedTodoResult(message, systemMessage) {
123
206
  return {
124
207
  llmContent: `${message}
@@ -147,14 +230,18 @@ var TodoWriteToolInvocation = class extends BaseToolInvocation {
147
230
  const { todos, modified_by_user, modified_content } = this.params;
148
231
  const sessionId = this.config.getSessionId();
149
232
  try {
150
- const oldTodos = await readTodosFromFile(sessionId);
151
- let finalTodos;
233
+ const previousPlan = await readTodoPlanFromFile(sessionId);
234
+ const oldTodos = previousPlan.todos;
235
+ let candidateTodos;
152
236
  if (modified_by_user && modified_content !== void 0) {
153
237
  const data = JSON.parse(modified_content);
154
- finalTodos = Array.isArray(data.todos) ? data.todos : [];
238
+ candidateTodos = data["todos"];
155
239
  } else {
156
- finalTodos = todos;
240
+ candidateTodos = todos;
157
241
  }
242
+ const validationError = validateTodos(candidateTodos);
243
+ if (validationError) throw new Error(validationError);
244
+ const finalTodos = candidateTodos;
158
245
  const changes = detectTodoChanges(oldTodos, finalTodos);
159
246
  const oldTodosMap = new Map(oldTodos.map((t) => [t.id, t]));
160
247
  const hookSystem = this.config.getHookSystem();
@@ -208,7 +295,10 @@ var TodoWriteToolInvocation = class extends BaseToolInvocation {
208
295
  );
209
296
  }
210
297
  }
211
- await writeTodosToFile(finalTodos, sessionId);
298
+ const startsNewPlan = finalTodos.length > 0 && (oldTodos.length === 0 || oldTodos.every((todo) => todo.status === "completed") && !isDeepStrictEqual(finalTodos, oldTodos));
299
+ const activePlanId = finalTodos.length === 0 ? void 0 : startsNewPlan || !previousPlan.planId ? randomUUID() : previousPlan.planId;
300
+ const resultPlanId = activePlanId ?? previousPlan.planId;
301
+ await writeTodosToFile(finalTodos, activePlanId, sessionId);
212
302
  const unfinishedTodos = finalTodos.filter(
213
303
  (todo) => todo.status !== "completed"
214
304
  );
@@ -266,6 +356,7 @@ Keep the todo list current and continue the task. Do not treat a successful inte
266
356
  }
267
357
  const todoResultDisplay = {
268
358
  type: "todo_list",
359
+ ...resultPlanId ? { planId: resultPlanId } : {},
269
360
  todos: finalTodos,
270
361
  changes
271
362
  };
@@ -313,7 +404,7 @@ Todo list modification failed with error: ${errorMessage}. You may need to retry
313
404
  }
314
405
  };
315
406
  async function readTodosForSession(sessionId) {
316
- return readTodosFromFile(sessionId);
407
+ return (await readTodoPlanFromFile(sessionId)).todos;
317
408
  }
318
409
  __name(readTodosForSession, "readTodosForSession");
319
410
  async function listTodoSessions() {
@@ -346,26 +437,7 @@ var TodoWriteTool = class _TodoWriteTool extends BaseDeclarativeTool {
346
437
  }
347
438
  static Name = ToolNames.TODO_WRITE;
348
439
  validateToolParams(params) {
349
- if (!Array.isArray(params.todos)) {
350
- return 'Parameter "todos" must be an array.';
351
- }
352
- for (const todo of params.todos) {
353
- if (!todo.id || typeof todo.id !== "string" || todo.id.trim() === "") {
354
- return 'Each todo must have a non-empty "id" string.';
355
- }
356
- if (!todo.content || typeof todo.content !== "string" || todo.content.trim() === "") {
357
- return 'Each todo must have a non-empty "content" string.';
358
- }
359
- if (!["pending", "in_progress", "completed"].includes(todo.status)) {
360
- return 'Each todo must have a valid "status" (pending, in_progress, completed).';
361
- }
362
- }
363
- const ids = params.todos.map((todo) => todo.id);
364
- const uniqueIds = new Set(ids);
365
- if (ids.length !== uniqueIds.size) {
366
- return "Todo IDs must be unique within the array.";
367
- }
368
- return null;
440
+ return validateTodos(params.todos);
369
441
  }
370
442
  createInvocation(params) {
371
443
  const sessionId = this.config.getSessionId();
@@ -5,35 +5,36 @@ import {
5
5
  getSubagentPlanToolUnavailableMessage,
6
6
  isLeaderOnlyToolUnavailableInSubagent,
7
7
  isPlanLifecycleToolUnavailableInSubagent
8
- } from "./chunk-CBBP4BMC.js";
8
+ } from "./chunk-LLMGP5IC.js";
9
9
  import "./chunk-S6LOFUVP.js";
10
+ import "./chunk-7UXI6P72.js";
10
11
  import "./chunk-K623ENWT.js";
11
12
  import "./chunk-AQ37AY7B.js";
12
- import "./chunk-N4ACHWNH.js";
13
+ import "./chunk-432XCUHF.js";
13
14
  import {
14
15
  DiscoveredMCPTool
15
- } from "./chunk-DUNI4EBW.js";
16
+ } from "./chunk-KZXSAQYV.js";
16
17
  import "./chunk-VGC4I5JJ.js";
17
- import "./chunk-3I6DUGQD.js";
18
- import "./chunk-7ULQIS27.js";
18
+ import "./chunk-E4WHKETF.js";
19
+ import "./chunk-UEJESCS7.js";
19
20
  import {
20
21
  BaseDeclarativeTool,
21
22
  BaseToolInvocation,
22
23
  ToolDisplayNames,
23
24
  ToolNames
24
- } from "./chunk-MM7TH7ZM.js";
25
- import "./chunk-HIVKI6O6.js";
25
+ } from "./chunk-CFDR3GNL.js";
26
+ import "./chunk-UO7AWUZJ.js";
26
27
  import "./chunk-46UV252V.js";
27
28
  import "./chunk-ZBVS26BY.js";
28
- import "./chunk-Q3T5KA2V.js";
29
- import "./chunk-R2XWGR75.js";
30
- import "./chunk-HC45LTEN.js";
31
- import "./chunk-QARJNL2V.js";
29
+ import "./chunk-BFHXDAR7.js";
30
+ import "./chunk-TYERNYH4.js";
31
+ import "./chunk-UH7Z7Y45.js";
32
+ import "./chunk-O2ZYHG33.js";
32
33
  import "./chunk-W4RQUHY3.js";
33
34
  import "./chunk-G7XXKQYS.js";
34
35
  import {
35
36
  createDebugLogger
36
- } from "./chunk-E2BHWIDT.js";
37
+ } from "./chunk-3RXUYQJI.js";
37
38
  import "./chunk-VOQXFAY5.js";
38
39
  import "./chunk-75DOP5OR.js";
39
40
  import "./chunk-DMTGGOSA.js";
@@ -2,79 +2,82 @@
2
2
  "use strict";
3
3
  import {
4
4
  createTotalSessionAdmissionController
5
- } from "./chunk-SZ3KHTDR.js";
5
+ } from "./chunk-AKA24BGO.js";
6
6
  import "./chunk-GRC5HGPI.js";
7
- import "./chunk-44F4LBWZ.js";
7
+ import "./chunk-LVW7BHTW.js";
8
8
  import "./chunk-GLWP3FDB.js";
9
9
  import "./chunk-XCGIMOLN.js";
10
10
  import "./chunk-OCPBI7J5.js";
11
- import "./chunk-XUGZYLDH.js";
12
- import "./chunk-GURGAJTX.js";
13
- import "./chunk-CPZAH673.js";
14
- import "./chunk-B4AJNNOL.js";
15
- import "./chunk-2RFKHEXL.js";
11
+ import "./chunk-UWSXFI6E.js";
12
+ import "./chunk-PDDYAXL2.js";
13
+ import "./chunk-UKZEXS6K.js";
14
+ import "./chunk-J26HHFI5.js";
15
+ import "./chunk-6PLDPT2C.js";
16
16
  import "./chunk-BK2UNYWD.js";
17
17
  import "./chunk-M5GB774H.js";
18
18
  import "./chunk-UDXSXLER.js";
19
- import "./chunk-54YCNSK5.js";
19
+ import "./chunk-MVMBE5EH.js";
20
+ import "./chunk-GOFAQQZA.js";
20
21
  import "./chunk-5M6IDOMF.js";
21
22
  import "./chunk-TWPJO254.js";
22
23
  import "./chunk-H6XPXXMH.js";
23
- import "./chunk-AOHY3QJ3.js";
24
- import "./chunk-5NNHICSA.js";
25
- import "./chunk-SHN4KHDK.js";
26
- import "./chunk-JXVC2PL3.js";
27
- import "./chunk-KRXPRVGL.js";
24
+ import "./chunk-VA5NLVPT.js";
25
+ import "./chunk-I7JDGNG6.js";
26
+ import "./chunk-A6SX5TAH.js";
27
+ import "./chunk-33FNCQSY.js";
28
28
  import "./chunk-6PVPNMXU.js";
29
- import "./chunk-ZMOJ7ISP.js";
29
+ import "./chunk-XXOVLDZQ.js";
30
30
  import "./chunk-IRH27ZC2.js";
31
31
  import "./chunk-QHWCP53L.js";
32
- import "./chunk-TEGJSJDF.js";
33
- import "./chunk-TIRRPCFS.js";
32
+ import "./chunk-MOHAWIAW.js";
33
+ import "./chunk-X6QNZOTC.js";
34
34
  import "./chunk-O6GEWCJA.js";
35
35
  import "./chunk-T26EAKDL.js";
36
+ import "./chunk-ZPJWUGCS.js";
36
37
  import "./chunk-CPBF7KYF.js";
37
- import "./chunk-4KP2F2TE.js";
38
- import "./chunk-3APUUXRF.js";
39
- import "./chunk-THVU3RNH.js";
40
- import "./chunk-LHKCY7DY.js";
41
- import "./chunk-6FMJLI5M.js";
42
- import "./chunk-CBBP4BMC.js";
38
+ import "./chunk-MISUEWB4.js";
39
+ import "./chunk-KRXPRVGL.js";
40
+ import "./chunk-A5YZ3FA2.js";
41
+ import "./chunk-YAVY33G4.js";
42
+ import "./chunk-2UISUFHQ.js";
43
+ import "./chunk-HFVW54NL.js";
44
+ import "./chunk-LLMGP5IC.js";
43
45
  import "./chunk-S6LOFUVP.js";
46
+ import "./chunk-7UXI6P72.js";
44
47
  import "./chunk-K623ENWT.js";
45
48
  import "./chunk-AQ37AY7B.js";
46
- import "./chunk-N4ACHWNH.js";
47
- import "./chunk-ZPJWUGCS.js";
48
- import "./chunk-D4HTUMGX.js";
49
+ import "./chunk-432XCUHF.js";
50
+ import "./chunk-YXEVDA66.js";
51
+ import "./chunk-XC656O42.js";
49
52
  import "./chunk-NAVJD2PQ.js";
50
- import "./chunk-LOY7RWQG.js";
51
- import "./chunk-E6CJ2SMM.js";
53
+ import "./chunk-QYPT3QUD.js";
54
+ import "./chunk-QMBEW7EW.js";
52
55
  import "./chunk-DGEIYUC3.js";
53
56
  import "./chunk-MPHPFVKK.js";
54
57
  import "./chunk-GLNBDYUX.js";
55
58
  import "./chunk-DJ2GSRLV.js";
56
- import "./chunk-6CQWRWUC.js";
57
- import "./chunk-Z3S5EMOW.js";
59
+ import "./chunk-7XLPYF6B.js";
60
+ import "./chunk-RPYYTL7E.js";
58
61
  import "./chunk-2J3OJGTL.js";
59
62
  import "./chunk-P3QQPMQA.js";
60
- import "./chunk-XQK4XXTN.js";
63
+ import "./chunk-6O5DVH27.js";
61
64
  import "./chunk-GLCZKT5V.js";
62
- import "./chunk-QDK4F2N5.js";
63
- import "./chunk-DUNI4EBW.js";
65
+ import "./chunk-2DNKEBXY.js";
66
+ import "./chunk-KZXSAQYV.js";
64
67
  import "./chunk-VGC4I5JJ.js";
65
- import "./chunk-3I6DUGQD.js";
66
- import "./chunk-7ULQIS27.js";
67
- import "./chunk-MM7TH7ZM.js";
68
- import "./chunk-HIVKI6O6.js";
68
+ import "./chunk-E4WHKETF.js";
69
+ import "./chunk-UEJESCS7.js";
70
+ import "./chunk-CFDR3GNL.js";
71
+ import "./chunk-UO7AWUZJ.js";
69
72
  import "./chunk-46UV252V.js";
70
73
  import "./chunk-ZBVS26BY.js";
71
- import "./chunk-Q3T5KA2V.js";
72
- import "./chunk-R2XWGR75.js";
73
- import "./chunk-HC45LTEN.js";
74
- import "./chunk-QARJNL2V.js";
74
+ import "./chunk-BFHXDAR7.js";
75
+ import "./chunk-TYERNYH4.js";
76
+ import "./chunk-UH7Z7Y45.js";
77
+ import "./chunk-O2ZYHG33.js";
75
78
  import "./chunk-W4RQUHY3.js";
76
79
  import "./chunk-G7XXKQYS.js";
77
- import "./chunk-E2BHWIDT.js";
80
+ import "./chunk-3RXUYQJI.js";
78
81
  import "./chunk-VOQXFAY5.js";
79
82
  import "./chunk-75DOP5OR.js";
80
83
  import "./chunk-DMTGGOSA.js";
@@ -12,70 +12,73 @@ import {
12
12
  onTrustedFoldersChanged,
13
13
  resetTrustedFoldersForTesting,
14
14
  saveTrustedFolders
15
- } from "./chunk-P755N4CS.js";
15
+ } from "./chunk-3GALLNII.js";
16
16
  import "./chunk-ALGGS7UH.js";
17
17
  import "./chunk-MR3PXB6E.js";
18
- import "./chunk-OWAK7LMW.js";
19
- import "./chunk-54YCNSK5.js";
18
+ import "./chunk-MVMBE5EH.js";
19
+ import "./chunk-GOFAQQZA.js";
20
20
  import "./chunk-5M6IDOMF.js";
21
21
  import "./chunk-TWPJO254.js";
22
22
  import "./chunk-H6XPXXMH.js";
23
- import "./chunk-AOHY3QJ3.js";
24
- import "./chunk-5NNHICSA.js";
25
- import "./chunk-SHN4KHDK.js";
26
- import "./chunk-JXVC2PL3.js";
27
- import "./chunk-KRXPRVGL.js";
23
+ import "./chunk-VA5NLVPT.js";
24
+ import "./chunk-I7JDGNG6.js";
25
+ import "./chunk-A6SX5TAH.js";
26
+ import "./chunk-33FNCQSY.js";
28
27
  import "./chunk-6PVPNMXU.js";
29
- import "./chunk-ZMOJ7ISP.js";
28
+ import "./chunk-XXOVLDZQ.js";
30
29
  import "./chunk-IRH27ZC2.js";
31
30
  import "./chunk-QHWCP53L.js";
32
- import "./chunk-TEGJSJDF.js";
33
- import "./chunk-TIRRPCFS.js";
31
+ import "./chunk-MOHAWIAW.js";
32
+ import "./chunk-X6QNZOTC.js";
34
33
  import "./chunk-O6GEWCJA.js";
35
34
  import "./chunk-T26EAKDL.js";
35
+ import "./chunk-ZPJWUGCS.js";
36
36
  import "./chunk-CPBF7KYF.js";
37
- import "./chunk-4KP2F2TE.js";
38
- import "./chunk-3APUUXRF.js";
39
- import "./chunk-THVU3RNH.js";
40
- import "./chunk-LHKCY7DY.js";
41
- import "./chunk-6FMJLI5M.js";
42
- import "./chunk-CBBP4BMC.js";
37
+ import "./chunk-MISUEWB4.js";
38
+ import "./chunk-KRXPRVGL.js";
39
+ import "./chunk-A5YZ3FA2.js";
40
+ import "./chunk-YAVY33G4.js";
41
+ import "./chunk-2UISUFHQ.js";
42
+ import "./chunk-HFVW54NL.js";
43
+ import "./chunk-LLMGP5IC.js";
43
44
  import "./chunk-S6LOFUVP.js";
45
+ import "./chunk-7UXI6P72.js";
44
46
  import "./chunk-K623ENWT.js";
45
47
  import "./chunk-AQ37AY7B.js";
46
- import "./chunk-N4ACHWNH.js";
47
- import "./chunk-ZPJWUGCS.js";
48
- import "./chunk-D4HTUMGX.js";
48
+ import "./chunk-432XCUHF.js";
49
+ import "./chunk-YXEVDA66.js";
50
+ import "./chunk-XC656O42.js";
49
51
  import "./chunk-NAVJD2PQ.js";
50
- import "./chunk-LOY7RWQG.js";
51
- import "./chunk-E6CJ2SMM.js";
52
+ import "./chunk-QYPT3QUD.js";
53
+ import "./chunk-QMBEW7EW.js";
52
54
  import "./chunk-DGEIYUC3.js";
53
55
  import "./chunk-MPHPFVKK.js";
54
56
  import "./chunk-GLNBDYUX.js";
55
57
  import "./chunk-DJ2GSRLV.js";
56
- import "./chunk-6CQWRWUC.js";
57
- import "./chunk-Z3S5EMOW.js";
58
+ import "./chunk-7XLPYF6B.js";
59
+ import "./chunk-RPYYTL7E.js";
58
60
  import "./chunk-2J3OJGTL.js";
59
61
  import "./chunk-P3QQPMQA.js";
60
- import "./chunk-XQK4XXTN.js";
62
+ import "./chunk-6O5DVH27.js";
61
63
  import "./chunk-GLCZKT5V.js";
62
- import "./chunk-QDK4F2N5.js";
63
- import "./chunk-DUNI4EBW.js";
64
+ import "./chunk-2DNKEBXY.js";
65
+ import "./chunk-KZXSAQYV.js";
64
66
  import "./chunk-VGC4I5JJ.js";
65
- import "./chunk-3I6DUGQD.js";
66
- import "./chunk-7ULQIS27.js";
67
- import "./chunk-MM7TH7ZM.js";
68
- import "./chunk-HIVKI6O6.js";
67
+ import "./chunk-E4WHKETF.js";
68
+ import "./chunk-UEJESCS7.js";
69
+ import "./chunk-CFDR3GNL.js";
70
+ import "./chunk-UO7AWUZJ.js";
69
71
  import "./chunk-46UV252V.js";
70
72
  import "./chunk-ZBVS26BY.js";
71
- import "./chunk-Q3T5KA2V.js";
72
- import "./chunk-R2XWGR75.js";
73
- import "./chunk-HC45LTEN.js";
74
- import "./chunk-QARJNL2V.js";
73
+ import "./chunk-BFHXDAR7.js";
74
+ import "./chunk-TYERNYH4.js";
75
+ import "./chunk-UH7Z7Y45.js";
76
+ import "./chunk-O2ZYHG33.js";
75
77
  import "./chunk-W4RQUHY3.js";
76
78
  import "./chunk-G7XXKQYS.js";
77
- import "./chunk-E2BHWIDT.js";
79
+ import "./chunk-3RXUYQJI.js";
78
80
  import "./chunk-VOQXFAY5.js";
81
+ import "./chunk-OWAK7LMW.js";
79
82
  import "./chunk-75DOP5OR.js";
80
83
  import "./chunk-DMTGGOSA.js";
81
84
  import "./chunk-YQ3U5MUC.js";
@@ -24,11 +24,11 @@ async function updateBeforeRelaunch(settings, projectRoot, relaunchOnFailure) {
24
24
  { performStandaloneUpdate },
25
25
  { t }
26
26
  ] = await Promise.all([
27
- import("./updateCheck-4Q6RIKFW.js"),
28
- import("./handleAutoUpdate-UVBJ56DL.js"),
29
- import("./installationInfo-4MGG4WVI.js"),
30
- import("./standalone-update-JAKIM2NF.js"),
31
- import("./i18n-UQNYHEUD.js")
27
+ import("./updateCheck-ZKFGBDTG.js"),
28
+ import("./handleAutoUpdate-MPDHQY72.js"),
29
+ import("./installationInfo-XC3HXLTX.js"),
30
+ import("./standalone-update-F6ZWABD7.js"),
31
+ import("./i18n-LEYRN6RV.js")
32
32
  ]);
33
33
  translate = t;
34
34
  const result = await checkForUpdatesDetailed();