@qwen-code/qwen-code 0.20.2-headless-image-routing.1 → 0.21.0

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 (370) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +5 -0
  2. package/bundled/qc-helper/docs/features/sub-agents.md +23 -5
  3. package/bundled/qc-helper/docs/integration-github-action.md +9 -9
  4. package/bundled/review/SKILL.md +7 -3
  5. package/chunks/MaxSizedBox-5DPPWPGT.js +85 -0
  6. package/chunks/{StandaloneSessionPicker-PLQQB22E.js → StandaloneSessionPicker-BIRMPLRD.js} +66 -59
  7. package/chunks/{acp-startup-profiler-N3RHHXJ3.js → acp-startup-profiler-RV3IV562.js} +2 -2
  8. package/chunks/{acpAgent-AIVK2EM5.js → acpAgent-6J2U72PQ.js} +705 -182
  9. package/chunks/agent-6ODUANDO.js +81 -0
  10. package/chunks/agent-headless-7BYQTMHW.js +75 -0
  11. package/chunks/{anthropicContentGenerator-HGWAHO24.js → anthropicContentGenerator-75BKLTSP.js} +117 -43
  12. package/chunks/{artifact-tool-56T5IMBP.js → artifact-tool-Y5T7GG7F.js} +3 -3
  13. package/chunks/{askUserQuestion-E25OBIC2.js → askUserQuestion-2H6747FR.js} +3 -3
  14. package/chunks/bridge-ZUB64FAE.js +90 -0
  15. package/chunks/{build-GHIZ4MSZ.js → build-RV63TIRH.js} +2 -3
  16. package/chunks/{ca-N6VVUFVB.js → ca-25EDXPFZ.js} +2 -0
  17. package/chunks/{channel-worker-group-QZV2SP5U.js → channel-worker-group-2ZD7TVAT.js} +8 -7
  18. package/chunks/{channel-worker-manager-3GMAU45H.js → channel-worker-manager-4OA4BCGB.js} +190 -30
  19. package/chunks/{channel-worker-supervisor-QCXSXCRY.js → channel-worker-supervisor-V7KCFJTS.js} +7 -6
  20. package/chunks/{chunk-TYQMGACW.js → chunk-22C7BQ6D.js} +508 -10967
  21. package/chunks/chunk-2JZBVYTU.js +452 -0
  22. package/chunks/{chunk-H2XVO6NE.js → chunk-2MIN6GRR.js} +1 -1
  23. package/chunks/{chunk-4DWTDZGS.js → chunk-2NH6DYI4.js} +12 -12
  24. package/chunks/chunk-2SCDWPXI.js +246 -0
  25. package/chunks/{chunk-QE4KFTBS.js → chunk-2X55UKQE.js} +3 -3
  26. package/chunks/{chunk-QBUDF33N.js → chunk-3QMGYBFN.js} +1 -1
  27. package/chunks/{chunk-3OAKYHRG.js → chunk-3RN6GBKS.js} +1 -1
  28. package/chunks/{chunk-QR6U5QPP.js → chunk-3SJ43L4W.js} +4 -0
  29. package/chunks/chunk-46UV252V.js +128 -0
  30. package/chunks/{chunk-GHRSKGHF.js → chunk-4WIZGAH3.js} +7 -7
  31. package/chunks/{chunk-CAS7CB3T.js → chunk-55DJUCI2.js} +87 -29
  32. package/chunks/{chunk-QNLNLENL.js → chunk-5I2IWRSH.js} +2 -2
  33. package/chunks/{chunk-H24SOJIQ.js → chunk-5NBDS5S6.js} +147 -7
  34. package/chunks/{chunk-E4IMU4Y5.js → chunk-63P4EL5V.js} +1 -1
  35. package/chunks/chunk-6FGBXPWM.js +293 -0
  36. package/chunks/{chunk-FFFM6NJV.js → chunk-6GMVPFB2.js} +155 -73
  37. package/chunks/{chunk-KWK7UE6L.js → chunk-6OUGMXDC.js} +6 -6
  38. package/chunks/{chunk-QRUIS3DN.js → chunk-6PEXNQTX.js} +22 -1
  39. package/chunks/{chunk-FZPTCQY7.js → chunk-7JURR4JT.js} +1 -1
  40. package/chunks/{chunk-Q6NAKZTA.js → chunk-7MVVZO4N.js} +4 -4
  41. package/chunks/{chunk-6ZBPS62S.js → chunk-7ZCNENPP.js} +1 -1
  42. package/chunks/{chunk-6X4GWOPW.js → chunk-A5L3JMUA.js} +1 -1
  43. package/chunks/{chunk-YO2XRXY6.js → chunk-ACY3A37B.js} +3 -3
  44. package/chunks/chunk-AMDSOFFV.js +10860 -0
  45. package/chunks/{chunk-RV4C2ZFG.js → chunk-BIQWWWJN.js} +1 -1
  46. package/chunks/{chunk-ZHERRXZJ.js → chunk-BJX6ZSUK.js} +4 -4
  47. package/chunks/chunk-BK2UNYWD.js +29 -0
  48. package/chunks/{chunk-FRPDJNK3.js → chunk-BKHWX6I2.js} +3 -3
  49. package/chunks/chunk-BPJSQIJX.js +100 -0
  50. package/chunks/{chunk-M7WBGLYP.js → chunk-BULDBTYC.js} +2 -0
  51. package/chunks/{chunk-ZDP2Y2AL.js → chunk-CIKQ7KKO.js} +4625 -8645
  52. package/chunks/{chunk-PEJWA3QQ.js → chunk-D3UEZIQH.js} +4 -2
  53. package/chunks/chunk-DHHOYAPR.js +1462 -0
  54. package/chunks/{chunk-LESHKUWF.js → chunk-DLWL3Z7A.js} +5 -3
  55. package/chunks/{chunk-XHATNRQA.js → chunk-DP3IHZGG.js} +0 -2
  56. package/chunks/chunk-E5TUC6CA.js +479 -0
  57. package/chunks/{chunk-JC26SJ5Y.js → chunk-EBJQ6AXW.js} +13 -12
  58. package/chunks/{chunk-RCWKCN2Z.js → chunk-EPDRMGT4.js} +164 -17
  59. package/chunks/{chunk-FUFCALSJ.js → chunk-ETSW4KLJ.js} +2 -2
  60. package/chunks/{chunk-KHOVYUHX.js → chunk-FNQ6T3CV.js} +20 -3
  61. package/chunks/{chunk-SP5WRGVG.js → chunk-FQK6JAFG.js} +72 -23
  62. package/chunks/{chunk-NWZY2SPY.js → chunk-FSITMZJH.js} +8 -8
  63. package/chunks/{chunk-6RLROE6G.js → chunk-GLWP3FDB.js} +80 -15
  64. package/chunks/{chunk-KPBVP6SL.js → chunk-GSN55ZRI.js} +5 -5
  65. package/chunks/{chunk-MLYGPZGU.js → chunk-H4SBPHSA.js} +3 -3
  66. package/chunks/chunk-H5FFA6TH.js +902 -0
  67. package/chunks/{chunk-TDKQP3M6.js → chunk-HIJQF5B5.js} +1 -1
  68. package/chunks/{chunk-5G3ZVADU.js → chunk-IJTOWOD7.js} +17 -6
  69. package/chunks/chunk-IKCX4CCL.js +469 -0
  70. package/chunks/{chunk-LPEONXNV.js → chunk-IKYJHJNF.js} +3 -3
  71. package/chunks/{chunk-DTZY2SH2.js → chunk-IO3IX5Q4.js} +1 -1
  72. package/chunks/{chunk-RS7MT2QG.js → chunk-IPUUTYMV.js} +2 -4
  73. package/chunks/{chunk-XU457J4V.js → chunk-IRH27ZC2.js} +2 -2
  74. package/chunks/{chunk-46DK772E.js → chunk-J24WCGIN.js} +4 -4
  75. package/chunks/{chunk-4LVZNIDO.js → chunk-J56UI34H.js} +4 -13
  76. package/chunks/{chunk-TJTKSVIV.js → chunk-JLU636DO.js} +5 -1
  77. package/chunks/{chunk-RKWX4CMO.js → chunk-JVPM2ULZ.js} +6 -6
  78. package/chunks/{chunk-ENPCQK44.js → chunk-JXJFVC6E.js} +37 -18
  79. package/chunks/{chunk-NABLFI57.js → chunk-JZA3JUDJ.js} +1 -1
  80. package/chunks/{chunk-CGLQAVZE.js → chunk-K36B6G2O.js} +5 -5
  81. package/chunks/{chunk-GPSKDNEE.js → chunk-K4XWPEWB.js} +4 -4
  82. package/chunks/{chunk-QOZOIPSF.js → chunk-KIM5GUMA.js} +650 -113
  83. package/chunks/{chunk-JZSM2IZ3.js → chunk-KMQ33DO4.js} +7 -5
  84. package/chunks/{chunk-E2UVIFI2.js → chunk-KRXPRVGL.js} +0 -1
  85. package/chunks/{chunk-WHGVTP7Q.js → chunk-L26JL52R.js} +3 -3
  86. package/chunks/{chunk-7Z6JQEL6.js → chunk-L5UHQJTJ.js} +1 -1
  87. package/chunks/{chunk-O2XSCRCS.js → chunk-LB6DUZ26.js} +259 -67
  88. package/chunks/chunk-LEH5C7FV.js +232 -0
  89. package/chunks/{chunk-RWV32G2M.js → chunk-LH2BYDQ5.js} +6 -4
  90. package/chunks/{chunk-QKTHJXCS.js → chunk-LK7CHLVP.js} +79 -2
  91. package/chunks/{chunk-VRRF3GW5.js → chunk-LKEJ26GS.js} +11 -11
  92. package/chunks/{chunk-SQFXI7VK.js → chunk-LQIW3YFY.js} +227 -41
  93. package/chunks/chunk-LS77BEZP.js +405 -0
  94. package/chunks/{chunk-BSHD62QJ.js → chunk-M4FMGVY4.js} +3 -3
  95. package/chunks/{chunk-57FIIFJN.js → chunk-M5JM7OSF.js} +1 -1
  96. package/chunks/{chunk-7362QS5B.js → chunk-MB4MZHMJ.js} +80 -37
  97. package/chunks/{chunk-4K56OJFJ.js → chunk-MUP3T3AD.js} +1 -1
  98. package/chunks/{chunk-3HFNGB2O.js → chunk-MVSUYZDT.js} +4 -4
  99. package/chunks/{chunk-T5IO6FZ4.js → chunk-MZAXJAUM.js} +1 -1
  100. package/chunks/{chunk-QKNXKTZX.js → chunk-NH6KE4JX.js} +3 -3
  101. package/chunks/chunk-NIBLUX3Y.js +934 -0
  102. package/chunks/{chunk-OQB4EXO4.js → chunk-NL7LTRLR.js} +1 -1
  103. package/chunks/{chunk-CS2FSS7W.js → chunk-OFDOK3VM.js} +5 -5
  104. package/chunks/{chunk-LIZRAKPB.js → chunk-OHNBB4XR.js} +1 -1
  105. package/chunks/{chunk-MDZTPSXO.js → chunk-OKY7HXPG.js} +2 -2
  106. package/chunks/{chunk-NHDKSOEY.js → chunk-P3QQPMQA.js} +5 -5
  107. package/chunks/{chunk-7THPNISK.js → chunk-PC6JANNU.js} +5 -5
  108. package/chunks/{chunk-OTQ6PSZC.js → chunk-PHOF65IG.js} +3498 -1030
  109. package/chunks/{chunk-OQ5SYCPE.js → chunk-PJIZUQVC.js} +2 -2
  110. package/chunks/{chunk-5DTTYNB7.js → chunk-PQNHRFJC.js} +16 -3
  111. package/chunks/{chunk-YM3SZTH4.js → chunk-PR75REBZ.js} +18 -1
  112. package/chunks/{chunk-RECUEJ7B.js → chunk-PSOO6YXD.js} +18 -15
  113. package/chunks/{chunk-X6N25LXS.js → chunk-PWTZEM3C.js} +2 -2
  114. package/chunks/{chunk-5NJTNQUW.js → chunk-PWVFN2LF.js} +1 -1
  115. package/chunks/{chunk-7AUH6A4T.js → chunk-Q4M4MDQ4.js} +2 -2
  116. package/chunks/{chunk-EZPB6S2I.js → chunk-QAF7NMK7.js} +1 -1
  117. package/chunks/{chunk-5GI55PF5.js → chunk-R5AFZNQW.js} +5 -5
  118. package/chunks/{chunk-T5B5NQZX.js → chunk-RF3EXIHJ.js} +47 -60
  119. package/chunks/{chunk-4K7VDKAD.js → chunk-RHLZR4E5.js} +1 -1
  120. package/chunks/{chunk-TJDW42MV.js → chunk-RIBKPMRP.js} +220 -141
  121. package/chunks/{chunk-RVLZCXEE.js → chunk-RWTEFFPU.js} +82 -3
  122. package/chunks/{chunk-L5QZGCRH.js → chunk-RZIX2G32.js} +1 -1
  123. package/chunks/{chunk-LLKWRXSS.js → chunk-SQCQ4KO2.js} +350 -418
  124. package/chunks/{chunk-THJNPLI4.js → chunk-TARRHLLG.js} +1 -0
  125. package/chunks/{chunk-XCXYRDHB.js → chunk-TEHGS6UP.js} +47 -18
  126. package/chunks/{chunk-PQIVAWXN.js → chunk-TGILQ3YH.js} +8 -8
  127. package/chunks/{chunk-Q2YKNMLS.js → chunk-TOFQCPDC.js} +43 -10
  128. package/chunks/{chunk-L3KUB6XM.js → chunk-TPRQ7RZH.js} +586 -242
  129. package/chunks/{chunk-T4TZQJ7W.js → chunk-TWPJO254.js} +5 -16
  130. package/chunks/{chunk-HIP6TVWA.js → chunk-U7M2DMGW.js} +3 -3
  131. package/chunks/{chunk-ACW3VNUE.js → chunk-UDX5OBWR.js} +41 -9
  132. package/chunks/{chunk-LW2FUYBN.js → chunk-USTWD7QV.js} +6 -4
  133. package/chunks/{chunk-NPQDJGKU.js → chunk-UUUTRMI2.js} +1 -1
  134. package/chunks/chunk-UW5EOVUN.js +249 -0
  135. package/chunks/{chunk-6IL7KRLE.js → chunk-VAK25FTU.js} +1 -1
  136. package/chunks/{chunk-O4BHWVUD.js → chunk-VIA5XA4U.js} +5 -2
  137. package/chunks/{chunk-EBXZ2YGV.js → chunk-VRYUBFMC.js} +1 -1
  138. package/chunks/{chunk-TWVE5ZS5.js → chunk-VULLI6WQ.js} +172 -6
  139. package/chunks/{chunk-LNDD3IML.js → chunk-WCXCRJYB.js} +1 -1
  140. package/chunks/{chunk-2LI23QA6.js → chunk-X5XDDSSH.js} +1 -1
  141. package/chunks/{chunk-Q35QUZDQ.js → chunk-Y34KJKDC.js} +1 -1
  142. package/chunks/{chunk-7NR2AIK6.js → chunk-YBL3QUDD.js} +2 -2
  143. package/chunks/{chunk-H4AR2JQF.js → chunk-YH6G52F2.js} +3 -3
  144. package/chunks/{chunk-MBOJHHPI.js → chunk-YPE6A4GC.js} +2 -2
  145. package/chunks/{chunk-3EK5ZOUQ.js → chunk-YX324OPW.js} +1 -1
  146. package/chunks/{chunk-4PTLZ3NX.js → chunk-Z2BC6UJ5.js} +3 -3
  147. package/chunks/{chunk-QLJUC7TG.js → chunk-ZD6UTE4A.js} +1 -1
  148. package/chunks/{chunk-LX3COOXF.js → chunk-ZFDTEDCF.js} +6 -6
  149. package/chunks/chunk-ZJHVAS7M.js +289 -0
  150. package/chunks/{chunk-4OWXOUYF.js → chunk-ZNAUOR2I.js} +15 -12
  151. package/chunks/{chunk-T2L47JJK.js → chunk-ZOIFNCKL.js} +4 -4
  152. package/chunks/{computer-use-2VIV73WK.js → computer-use-SOQ4E3VX.js} +43 -35
  153. package/chunks/{config-utils-FYTBZLCJ.js → config-utils-7V7GGIW6.js} +3 -3
  154. package/chunks/contextCommand-JLHYA34Z.js +80 -0
  155. package/chunks/{create-sub-session-AZ77LBL3.js → create-sub-session-IWW2IZ2T.js} +3 -3
  156. package/chunks/{create-sub-session-XDHHC2P4.js → create-sub-session-QRJLW5BV.js} +43 -35
  157. package/chunks/{cron-create-KTWJM7QT.js → cron-create-YIID5XAW.js} +6 -6
  158. package/chunks/{cron-delete-2P3I5ULL.js → cron-delete-ZVHYCEP2.js} +5 -5
  159. package/chunks/{cron-list-PXDPGEDQ.js → cron-list-XEGS463Q.js} +5 -5
  160. package/chunks/{daemon-RAPSDJH7.js → daemon-YO6433NF.js} +350 -53
  161. package/chunks/daemon-status-provider-2233Q37D.js +89 -0
  162. package/chunks/{de-4IBXM7CN.js → de-HGRCYDEJ.js} +1 -0
  163. package/chunks/{dist-UIFWIFRO.js → dist-46NQKLTW.js} +2 -2
  164. package/chunks/{dist-XRYV6TJP.js → dist-AIKFMUKK.js} +50 -4
  165. package/chunks/{dist-XBJVSWS2.js → dist-BBLXMS3N.js} +14 -2
  166. package/chunks/{dist-OMW6WDEO.js → dist-F6IBUDR4.js} +40 -9
  167. package/chunks/{dist-PJLG2XYX.js → dist-WEAHOXDM.js} +1 -1
  168. package/chunks/{dist-OAV7LJGJ.js → dist-YFNEUWSE.js} +26 -2
  169. package/chunks/earlyInputCapture-A7NDU3PF.js +82 -0
  170. package/chunks/{edit-CS6SFEXC.js → edit-OBDSQURM.js} +43 -35
  171. package/chunks/{en-USMCCJAJ.js → en-MTWBNGDO.js} +15 -0
  172. package/chunks/{enter-worktree-LMAL75DY.js → enter-worktree-U6MRPQ2P.js} +43 -35
  173. package/chunks/{enterPlanMode-WVJB4DSS.js → enterPlanMode-BC5QUZZ2.js} +43 -35
  174. package/chunks/{environment-6YHC4JAJ.js → environment-W5UFC2CH.js} +46 -38
  175. package/chunks/errors-M7CLORXH.js +88 -0
  176. package/chunks/{exit-worktree-KPFD742L.js → exit-worktree-DGNYMECB.js} +43 -35
  177. package/chunks/{exitPlanMode-UEJS6CDY.js → exitPlanMode-GXTBWQAR.js} +43 -35
  178. package/chunks/{fast-path-G2N4NRCA.js → fast-path-JJZFJANL.js} +6 -6
  179. package/chunks/{fast-path-settings-DAOVFADC.js → fast-path-settings-WQJU2LAT.js} +2 -2
  180. package/chunks/{fr-WVHEBDDB.js → fr-45RLL55O.js} +1 -0
  181. package/chunks/{gemini-2MDVIOVT.js → gemini-QS36EBZV.js} +132 -102
  182. package/chunks/{geminiContentGenerator-ZXTDBMFR.js → geminiContentGenerator-AG4KB6CV.js} +14 -8
  183. package/chunks/{getMachineId-bsd-QFVLPUPT.js → getMachineId-bsd-V7W3GODC.js} +1 -1
  184. package/chunks/{getMachineId-darwin-DGMQQE2E.js → getMachineId-darwin-TDO75DQP.js} +1 -1
  185. package/chunks/{getMachineId-linux-R4Z6CSWC.js → getMachineId-linux-TF43WQT2.js} +1 -1
  186. package/chunks/{getMachineId-unsupported-Z3SBVBUV.js → getMachineId-unsupported-ZGUO3TXT.js} +1 -1
  187. package/chunks/{getMachineId-win-SCK5UFDT.js → getMachineId-win-ECFYZZFQ.js} +1 -1
  188. package/chunks/{glob-562XFLIZ.js → glob-V7R3PSK3.js} +43 -35
  189. package/chunks/{grep-MGEFBDQK.js → grep-QYPSK7OP.js} +43 -35
  190. package/chunks/handleAutoUpdate-6DBEZYPV.js +81 -0
  191. package/chunks/{i18n-R6HJENXA.js → i18n-VUJJZIMU.js} +44 -36
  192. package/chunks/image-gen-Z3VPGKRC.js +240 -0
  193. package/chunks/initializer-UWAK5U5O.js +86 -0
  194. package/chunks/installationInfo-6O2YAA52.js +80 -0
  195. package/chunks/{ja-KY4ROZTE.js → ja-B7DF7DFG.js} +1 -0
  196. package/chunks/{keychain-token-storage-6ACJDYIB.js → keychain-token-storage-MDTG3WRM.js} +3 -3
  197. package/chunks/{kittyProtocolDetector-HCNNKJTI.js → kittyProtocolDetector-MBRTDRBK.js} +5 -3
  198. package/chunks/list-GB4ESM3T.js +89 -0
  199. package/chunks/list-agents-5KJJHR6I.js +80 -0
  200. package/chunks/loadedSettingsAdapter-OT6JVQ7U.js +83 -0
  201. package/chunks/loggingContentGenerator-HS3S5H3Q.js +1077 -0
  202. package/chunks/{loop-wakeup-RNMRVA66.js → loop-wakeup-FXKNNYSY.js} +7 -7
  203. package/chunks/{ls-J2ZI5XYK.js → ls-NTK6VOQJ.js} +5 -5
  204. package/chunks/{lsp-UMS3NUB5.js → lsp-2JI24STP.js} +3 -3
  205. package/chunks/{managed-npm-update-4KNYSOYC.js → managed-npm-update-JYEMMXA3.js} +94 -38
  206. package/chunks/mcp-6DBDJPFU.js +83 -0
  207. package/chunks/{monitor-DMHKE4SW.js → monitor-R3ODH5U6.js} +45 -36
  208. package/chunks/node-UUDY34IG.js +305 -0
  209. package/chunks/nonInteractiveCli-MOYCYBBU.js +141 -0
  210. package/chunks/{notebook-edit-35SJGEOR.js → notebook-edit-BNOK452R.js} +43 -35
  211. package/chunks/{openaiContentGenerator-5LPAFXPF.js → openaiContentGenerator-WMCU3O2H.js} +27 -17
  212. package/chunks/pidfile-TFRZZZIO.js +86 -0
  213. package/chunks/{processUtils-GM2I55KF.js → processUtils-RT7UNCC2.js} +2 -2
  214. package/chunks/{pt-OK455PLH.js → pt-22Q3FP73.js} +1 -0
  215. package/chunks/{qwenContentGenerator-HKOYNP7H.js → qwenContentGenerator-HHCRK4SX.js} +56 -42
  216. package/chunks/{qwenOAuth2-NUUYC3V5.js → qwenOAuth2-OWLB5AKH.js} +14 -27
  217. package/chunks/read-file-APMO3PSX.js +31 -0
  218. package/chunks/{read-mcp-resource-F6HYMDUY.js → read-mcp-resource-4DKQWGHD.js} +3 -3
  219. package/chunks/{record-artifact-7GCFLDD7.js → record-artifact-RQKFYO5B.js} +3 -3
  220. package/chunks/resumeHistoryUtils-6KRYEAWZ.js +91 -0
  221. package/chunks/ripGrep-BEJDEDXW.js +73 -0
  222. package/chunks/{ru-7SPDGMGD.js → ru-FZCNZHDC.js} +1 -0
  223. package/chunks/{run-qwen-serve-5VH3F4NW.js → run-qwen-serve-FU6HEM4J.js} +271 -57
  224. package/chunks/{runtime-OH77YH7W.js → runtime-XXRRTNP6.js} +55 -45
  225. package/chunks/{scheduler-WJQSLCSV.js → scheduler-G2ZS2Z7E.js} +43 -35
  226. package/chunks/{sdk-exporters-grpc-ETLH47EP.js → sdk-exporters-grpc-AK3LGHNO.js} +3 -3
  227. package/chunks/{sdk-exporters-http-T3POX73F.js → sdk-exporters-http-FYBSUCPD.js} +6 -6
  228. package/chunks/{sdk-impl-NSLPDH6I.js → sdk-impl-GMVPB7NB.js} +6 -6
  229. package/chunks/{send-message-PYIJ2PZL.js → send-message-Q6OOR6BR.js} +46 -9
  230. package/chunks/serve-7BSTXJ4T.js +89 -0
  231. package/chunks/{server-E4N4AI6Z.js → server-4UMH7OIZ.js} +2362 -411
  232. package/chunks/{session-5YUWIOQE.js → session-K3O3Q2SV.js} +105 -87
  233. package/chunks/{settings-YY7ZSFO7.js → settings-CR2EWTBA.js} +53 -45
  234. package/chunks/shell-HH3PF3A2.js +83 -0
  235. package/chunks/{skill-PAIDX3EU.js → skill-I3SDA4MB.js} +17 -16
  236. package/chunks/spawnChannel-RWNDBXGA.js +82 -0
  237. package/chunks/{src-IZXLJI5M.js → src-GE4TTTML.js} +302 -184
  238. package/chunks/{standalone-update-X675JVBL.js → standalone-update-Q6WFRZZQ.js} +45 -37
  239. package/chunks/{startInteractiveUI-ND2IVBU3.js → startInteractiveUI-SLZGHRPH.js} +747 -310
  240. package/chunks/{syntheticOutput-H7RTI5KL.js → syntheticOutput-I3757IWH.js} +4 -4
  241. package/chunks/{task-create-7474AJJD.js → task-create-N7WQSGYA.js} +10 -10
  242. package/chunks/{task-list-633HGOIB.js → task-list-FOPULZEP.js} +7 -7
  243. package/chunks/{task-stop-MNUGHPIA.js → task-stop-H6RHXFVQ.js} +4 -4
  244. package/chunks/{task-update-66GQB5LI.js → task-update-M57TFZJT.js} +10 -10
  245. package/chunks/{team-create-2DEYNMMN.js → team-create-YJALH5D2.js} +46 -38
  246. package/chunks/{team-delete-BB3CG3QF.js → team-delete-QE2UXJL7.js} +7 -7
  247. package/chunks/{team-plan-approval-65AVAOCT.js → team-plan-approval-34QFYKGN.js} +43 -35
  248. package/chunks/theme-manager-SWRILQHI.js +77 -0
  249. package/chunks/{todoWrite-KRAUN54W.js → todoWrite-VQ7FKOHL.js} +5 -5
  250. package/chunks/{tool-search-ZQP3SMTV.js → tool-search-NF7GB6LE.js} +16 -16
  251. package/chunks/total-session-admission-DLHHHLD3.js +84 -0
  252. package/chunks/{tree-sitter-FS4VPMZA.js → tree-sitter-4D7QS7F6.js} +1 -1
  253. package/chunks/{tree-sitter-bash-6B46JJCV.js → tree-sitter-bash-VEJGF5XF.js} +1 -1
  254. package/chunks/{trustedFolders-LURI52LP.js → trustedFolders-KHXHY6PY.js} +44 -36
  255. package/chunks/{update-relaunch-BPWFIDLM.js → update-relaunch-WBUZJC5O.js} +5 -5
  256. package/chunks/updateCheck-RKL6M5XN.js +92 -0
  257. package/chunks/useAutoAcceptIndicator-CFQ5BUJL.js +93 -0
  258. package/chunks/{validateNonInterActiveAuth-HWD6Y22I.js → validateNonInterActiveAuth-3R223G3R.js} +89 -80
  259. package/chunks/{version-OD4JAFG7.js → version-HS7YSFHV.js} +1 -1
  260. package/chunks/{web-fetch-RFBKNU24.js → web-fetch-NKCSG7ZE.js} +18 -16
  261. package/chunks/{web-search-AKTVS5YZ.js → web-search-S62WAP4S.js} +13 -27
  262. package/chunks/{workflow-VZVCOSZN.js → workflow-QAGU5RU4.js} +44 -36
  263. package/chunks/workspace-providers-status-QSVZUETE.js +86 -0
  264. package/chunks/{workspace-registration-store-Q5SFJSX4.js → workspace-registration-store-24JMHDGF.js} +2 -2
  265. package/chunks/workspace-registry-UT4RBNBM.js +88 -0
  266. package/chunks/workspace-service-JFWRUS4V.js +98 -0
  267. package/chunks/workspace-skills-status-ZBBKJOI2.js +85 -0
  268. package/chunks/write-file-VHIXW5M7.js +73 -0
  269. package/chunks/{zh-WY5DWYZD.js → zh-LUIGBD55.js} +15 -0
  270. package/chunks/{zh-TW-BM47YBFH.js → zh-TW-F5KG2IYD.js} +15 -0
  271. package/cli-entry.js +10 -1
  272. package/cli.js +13 -13
  273. package/locales/ca.js +2 -0
  274. package/locales/de.js +1 -0
  275. package/locales/en.js +25 -0
  276. package/locales/fr.js +1 -0
  277. package/locales/ja.js +1 -0
  278. package/locales/pt.js +1 -0
  279. package/locales/ru.js +1 -0
  280. package/locales/zh-TW.js +23 -0
  281. package/locales/zh.js +23 -0
  282. package/package.json +3 -3
  283. package/web-shell/assets/{arc-BWFm0SI0.js → arc-DcbWnB9T.js} +1 -1
  284. package/web-shell/assets/{architectureDiagram-3BPJPVTR-CZ_yL-DQ.js → architectureDiagram-3BPJPVTR-kMMF5sud.js} +1 -1
  285. package/web-shell/assets/{blockDiagram-GPEHLZMM-B9F9mJvG.js → blockDiagram-GPEHLZMM-Htl9vTJS.js} +1 -1
  286. package/web-shell/assets/{c4Diagram-AAUBKEIU-BUdwJW5f.js → c4Diagram-AAUBKEIU-BnZnm0mQ.js} +1 -1
  287. package/web-shell/assets/channel-Cq7YKtfC.js +1 -0
  288. package/web-shell/assets/{chunk-2J33WTMH-w4cF-qlF.js → chunk-2J33WTMH-DziB7kDG.js} +1 -1
  289. package/web-shell/assets/{chunk-4BX2VUAB-BXwURxHJ.js → chunk-4BX2VUAB-CmkD8daw.js} +1 -1
  290. package/web-shell/assets/{chunk-55IACEB6-Gem3LalC.js → chunk-55IACEB6-CHAd9A_U.js} +1 -1
  291. package/web-shell/assets/{chunk-727SXJPM-A3ddVojI.js → chunk-727SXJPM-Dqaam3fE.js} +1 -1
  292. package/web-shell/assets/{chunk-AQP2D5EJ-CjHZ5L_R.js → chunk-AQP2D5EJ-D_-saBYM.js} +1 -1
  293. package/web-shell/assets/{chunk-FMBD7UC4-CKgdgcpv.js → chunk-FMBD7UC4-B9r_veWD.js} +1 -1
  294. package/web-shell/assets/{chunk-ND2GUHAM-Cn2Dykjb.js → chunk-ND2GUHAM-B3EaCSpL.js} +1 -1
  295. package/web-shell/assets/{chunk-QZHKN3VN--0SyraC5.js → chunk-QZHKN3VN-CYq8x9mn.js} +1 -1
  296. package/web-shell/assets/classDiagram-4FO5ZUOK-CQ9aC1Tg.js +1 -0
  297. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CQ9aC1Tg.js +1 -0
  298. package/web-shell/assets/{cose-bilkent-S5V4N54A-CphhAity.js → cose-bilkent-S5V4N54A-D0ng4uiB.js} +1 -1
  299. package/web-shell/assets/{dagre-BM42HDAG-DU--jiKp.js → dagre-BM42HDAG-DCZollQv.js} +1 -1
  300. package/web-shell/assets/{diagram-2AECGRRQ-BzvuZw1Y.js → diagram-2AECGRRQ-Dfk2pWS0.js} +1 -1
  301. package/web-shell/assets/{diagram-5GNKFQAL-D84-49Y0.js → diagram-5GNKFQAL-kX38ltWR.js} +1 -1
  302. package/web-shell/assets/{diagram-KO2AKTUF-DQTq-3_3.js → diagram-KO2AKTUF-CJz2vsXh.js} +1 -1
  303. package/web-shell/assets/{diagram-LMA3HP47-8FTrshzN.js → diagram-LMA3HP47-BvMLZm_7.js} +1 -1
  304. package/web-shell/assets/{diagram-OG6HWLK6-BCjpDBCm.js → diagram-OG6HWLK6-l7kfStkO.js} +1 -1
  305. package/web-shell/assets/{erDiagram-TEJ5UH35-BtRObkmg.js → erDiagram-TEJ5UH35-BSVa8GGT.js} +1 -1
  306. package/web-shell/assets/{flowDiagram-I6XJVG4X-DTrW6oxy.js → flowDiagram-I6XJVG4X-CoawKIXH.js} +1 -1
  307. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BgPNSW6j.js → ganttDiagram-6RSMTGT7-DFUDH0zF.js} +1 -1
  308. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BTclNgGV.js → gitGraphDiagram-PVQCEYII-Y2pvpT4e.js} +1 -1
  309. package/web-shell/assets/{index-CxA7AqY6.js → index-D0GX0zZf.js} +1 -1
  310. package/web-shell/assets/index-D9haPt0X.css +5 -0
  311. package/web-shell/assets/index-ckX9Pq5k.js +1230 -0
  312. package/web-shell/assets/{infoDiagram-5YYISTIA-DCE4AJt2.js → infoDiagram-5YYISTIA-CU8_zLiX.js} +1 -1
  313. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-C8iE6q4Y.js → ishikawaDiagram-YF4QCWOH-AVQiV0DU.js} +1 -1
  314. package/web-shell/assets/{journeyDiagram-JHISSGLW-C_dxdyEc.js → journeyDiagram-JHISSGLW-DQ0VSKa3.js} +1 -1
  315. package/web-shell/assets/{kanban-definition-UN3LZRKU-Dw3n1u3w.js → kanban-definition-UN3LZRKU-BqnWqsE_.js} +1 -1
  316. package/web-shell/assets/{linear-C2BF2zJ9.js → linear-BkoihsaA.js} +1 -1
  317. package/web-shell/assets/{mermaid.core-CGTQU3MA.js → mermaid.core-5RJs-31j.js} +5 -5
  318. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BVFZm9ZC.js → mindmap-definition-RKZ34NQL-D33Bxnpd.js} +1 -1
  319. package/web-shell/assets/{pieDiagram-4H26LBE5-Cc-TNN3n.js → pieDiagram-4H26LBE5-BuEAw3BH.js} +1 -1
  320. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CgW3Rzsi.js → quadrantDiagram-W4KKPZXB-Kox_usEq.js} +1 -1
  321. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BAaj0Y3B.js → requirementDiagram-4Y6WPE33-CNjeUif0.js} +1 -1
  322. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-XJWmekxS.js → sankeyDiagram-5OEKKPKP-BCd2OL_U.js} +1 -1
  323. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CtRc_0wf.js → sequenceDiagram-3UESZ5HK-CF2ZTsz0.js} +1 -1
  324. package/web-shell/assets/{stateDiagram-AJRCARHV-WCnvMGy5.js → stateDiagram-AJRCARHV-qenSzHtm.js} +1 -1
  325. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-B7W4zlCr.js +1 -0
  326. package/web-shell/assets/{timeline-definition-PNZ67QCA-C9cRx49L.js → timeline-definition-PNZ67QCA-B5DyWdgs.js} +1 -1
  327. package/web-shell/assets/{vennDiagram-CIIHVFJN-BvXOCEt-.js → vennDiagram-CIIHVFJN-DqP4I_o_.js} +1 -1
  328. package/web-shell/assets/{wardley-L42UT6IY-ByafGtzu.js → wardley-L42UT6IY-CJe2e4mg.js} +1 -1
  329. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-CozAnw8x.js → wardleyDiagram-YWT4CUSO-BMDSw-Rr.js} +1 -1
  330. package/web-shell/assets/{xychartDiagram-2RQKCTM6-Camu9Qvq.js → xychartDiagram-2RQKCTM6-BTVZYkxD.js} +1 -1
  331. package/web-shell/index.html +17 -13
  332. package/chunks/MaxSizedBox-3XQIBACV.js +0 -78
  333. package/chunks/agent-QXD5NSKA.js +0 -73
  334. package/chunks/agent-headless-4VXR2TBK.js +0 -67
  335. package/chunks/bridge-GIBRSPE6.js +0 -81
  336. package/chunks/chunk-CBOQ3HY7.js +0 -2019
  337. package/chunks/chunk-MA6GYKK7.js +0 -6928
  338. package/chunks/contextCommand-XQU7KLIH.js +0 -72
  339. package/chunks/daemon-status-provider-KQVNB4VA.js +0 -80
  340. package/chunks/earlyInputCapture-WP5SA3KH.js +0 -74
  341. package/chunks/errors-JEYPXX4S.js +0 -80
  342. package/chunks/handleAutoUpdate-2VJPAW43.js +0 -73
  343. package/chunks/initializer-UOX67ZFQ.js +0 -78
  344. package/chunks/installationInfo-NQNY34X3.js +0 -72
  345. package/chunks/list-2Z7KS7ZF.js +0 -81
  346. package/chunks/loadedSettingsAdapter-LIYY3LE4.js +0 -75
  347. package/chunks/mcp-AJ4QW3JA.js +0 -75
  348. package/chunks/nonInteractiveCli-PUSO5QF6.js +0 -134
  349. package/chunks/pidfile-EH2JW2PB.js +0 -78
  350. package/chunks/read-file-JZ5VXILQ.js +0 -31
  351. package/chunks/resumeHistoryUtils-Z3HG4WKM.js +0 -84
  352. package/chunks/ripGrep-JNLJCT2B.js +0 -65
  353. package/chunks/serve-NN5FXWR6.js +0 -81
  354. package/chunks/shell-FXT3NVC6.js +0 -75
  355. package/chunks/spawnChannel-XAWLXNOD.js +0 -74
  356. package/chunks/theme-manager-2WZHPK2M.js +0 -69
  357. package/chunks/total-session-admission-HULB2TEQ.js +0 -75
  358. package/chunks/updateCheck-D4ESCHBJ.js +0 -88
  359. package/chunks/useAutoAcceptIndicator-CBNLOF2P.js +0 -86
  360. package/chunks/workspace-providers-status-TJTVHORI.js +0 -78
  361. package/chunks/workspace-registry-H6VM5WXK.js +0 -79
  362. package/chunks/workspace-service-ZNKD3I2J.js +0 -90
  363. package/chunks/workspace-skills-status-OOBIXADG.js +0 -77
  364. package/chunks/write-file-CAKK5IAO.js +0 -65
  365. package/web-shell/assets/channel-DiLlxxIf.js +0 -1
  366. package/web-shell/assets/classDiagram-4FO5ZUOK-CkylTdM4.js +0 -1
  367. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CkylTdM4.js +0 -1
  368. package/web-shell/assets/index-CGtQqOIa.css +0 -5
  369. package/web-shell/assets/index-TtM0hVjU.js +0 -1207
  370. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-D1gzH2Ue.js +0 -1
@@ -2,11 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-VRRF3GW5.js";
5
+ } from "./chunk-LKEJ26GS.js";
6
6
  import {
7
+ SessionReferenceService,
8
+ SessionService,
7
9
  readManyFiles,
8
10
  stripTerminalControlSequences
9
- } from "./chunk-OTQ6PSZC.js";
11
+ } from "./chunk-PHOF65IG.js";
10
12
  import {
11
13
  emptyMcpResourceText,
12
14
  formatMcpResourceContents,
@@ -14,14 +16,14 @@ import {
14
16
  } from "./chunk-HTO4JFDZ.js";
15
17
  import {
16
18
  shouldRunVisionBridge
17
- } from "./chunk-ZDP2Y2AL.js";
19
+ } from "./chunk-CIKQ7KKO.js";
18
20
  import {
19
21
  Storage,
20
22
  getErrorMessage,
21
23
  isNodeError,
22
24
  isSubpath,
23
25
  unescapePath
24
- } from "./chunk-OQB4EXO4.js";
26
+ } from "./chunk-NL7LTRLR.js";
25
27
  import {
26
28
  init_esbuild_shims
27
29
  } from "./chunk-5O2XNYP6.js";
@@ -212,11 +214,32 @@ function getExtensionSuggestions(config, pattern) {
212
214
  value: buildExtensionRef(ext.name),
213
215
  description: ext.config.description ? sanitizeDisplayText(ext.config.description) ?? void 0 : void 0,
214
216
  sourceBadge: t("Extension"),
215
- isDirectory: false
217
+ isDirectory: false,
218
+ category: "extension"
216
219
  }));
217
220
  }
218
221
  __name(getExtensionSuggestions, "getExtensionSuggestions");
219
222
 
223
+ // packages/cli/src/ui/hooks/session-mention-ref.ts
224
+ init_esbuild_shims();
225
+ var SESSION_MENTION_PREFIX = "session:";
226
+ var UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
227
+ function isSessionId(value) {
228
+ return UUID_RE.test(value.trim());
229
+ }
230
+ __name(isSessionId, "isSessionId");
231
+ function parseSessionRef(pathName) {
232
+ if (!pathName.startsWith(SESSION_MENTION_PREFIX)) return null;
233
+ const remainder = pathName.slice(SESSION_MENTION_PREFIX.length).trim();
234
+ if (remainder.length === 0) return null;
235
+ return isSessionId(remainder) ? { id: remainder } : { title: remainder };
236
+ }
237
+ __name(parseSessionRef, "parseSessionRef");
238
+ function buildSessionRef(idOrTitle) {
239
+ return `${SESSION_MENTION_PREFIX}${idOrTitle}`;
240
+ }
241
+ __name(buildSessionRef, "buildSessionRef");
242
+
220
243
  // packages/cli/src/utils/mcp-server-mention.ts
221
244
  init_esbuild_shims();
222
245
  var MCP_SERVER_REF_PREFIX = "mcp:";
@@ -358,6 +381,7 @@ async function resolveAtCommandQuery({
358
381
  const mcpServerMentions = [];
359
382
  const activeExtensions = config.getActiveExtensions?.() ?? [];
360
383
  const extensionMentions = [];
384
+ const sessionMentions = [];
361
385
  for (const atPathPart of atPathCommandParts) {
362
386
  const originalAtPath = atPathPart.content;
363
387
  if (originalAtPath === "@") {
@@ -382,6 +406,16 @@ async function resolveAtCommandQuery({
382
406
  );
383
407
  continue;
384
408
  }
409
+ const sessionRef = parseSessionRef(pathName);
410
+ if (sessionRef) {
411
+ if (!sessionMentions.some(
412
+ (m) => (m.ref.id ?? m.ref.title) === (sessionRef.id ?? sessionRef.title)
413
+ )) {
414
+ sessionMentions.push({ originalAtPath, ref: sessionRef });
415
+ }
416
+ atPathToResolvedSpecMap.set(originalAtPath, pathName);
417
+ continue;
418
+ }
385
419
  const resourceRef = parseMcpResourceRef(pathName, mcpServerNames);
386
420
  if (resourceRef) {
387
421
  mcpResourceRefs.push({ originalAtPath, ...resourceRef });
@@ -556,7 +590,7 @@ ${messages.join("\n")}`;
556
590
  confirmationDetails: void 0
557
591
  });
558
592
  }
559
- if (pathSpecsToRead.length === 0 && mcpResourceRefs.length === 0 && mcpServerMentions.length === 0 && extensionMentions.length === 0) {
593
+ if (pathSpecsToRead.length === 0 && mcpResourceRefs.length === 0 && mcpServerMentions.length === 0 && extensionMentions.length === 0 && sessionMentions.length === 0) {
560
594
  onDebugMessage("No valid file paths found in @ commands to read.");
561
595
  if (initialQueryText === "@" && query.trim() === "@") {
562
596
  return { processedQuery: [{ text: query }], shouldProceed: true };
@@ -610,6 +644,136 @@ ${messages.join("\n")}`;
610
644
  }
611
645
  });
612
646
  }
647
+ const resolvedSessionIds = /* @__PURE__ */ new Set();
648
+ for (let i = 0; i < sessionMentions.length; i++) {
649
+ const { originalAtPath, ref } = sessionMentions[i];
650
+ const callId = `client-session-${userMessageTimestamp}-${i}`;
651
+ let sessionId = ref.id;
652
+ if (!sessionId && ref.title) {
653
+ let matches = [];
654
+ try {
655
+ matches = await new SessionService(
656
+ config.getProjectRoot()
657
+ ).findSessionsByTitle(ref.title);
658
+ } catch (error) {
659
+ const reason = `Could not look up sessions matching "@${originalAtPath.substring(1)}" (${getErrorMessage(error)}); try a session id instead.`;
660
+ onDebugMessage(reason);
661
+ scopedMentionEntries.push({
662
+ originalAtPath,
663
+ part: { text: "" },
664
+ label: buildSessionRef(ref.title ?? originalAtPath),
665
+ display: {
666
+ callId,
667
+ name: "Referenced Session",
668
+ description: `Reference session "${ref.title ?? ""}"`,
669
+ status: "Error" /* Error */,
670
+ resultDisplay: reason,
671
+ confirmationDetails: void 0
672
+ }
673
+ });
674
+ continue;
675
+ }
676
+ if (matches.length === 1) {
677
+ sessionId = matches[0].sessionId;
678
+ } else {
679
+ const reason = matches.length === 0 ? `No session matches "@${originalAtPath.substring(1)}".` : `"@${originalAtPath.substring(1)}" is ambiguous (${matches.length} matches); use the picker or a session id.`;
680
+ onDebugMessage(reason);
681
+ scopedMentionEntries.push({
682
+ originalAtPath,
683
+ part: { text: "" },
684
+ label: buildSessionRef(ref.title),
685
+ display: {
686
+ callId,
687
+ name: "Referenced Session",
688
+ description: `Reference session "${ref.title}"`,
689
+ status: "Error" /* Error */,
690
+ resultDisplay: reason,
691
+ confirmationDetails: void 0
692
+ }
693
+ });
694
+ continue;
695
+ }
696
+ }
697
+ if (!sessionId) {
698
+ const reason = `Session reference "@${originalAtPath.substring(1)}" could not be resolved.`;
699
+ onDebugMessage(reason);
700
+ scopedMentionEntries.push({
701
+ originalAtPath,
702
+ part: { text: "" },
703
+ label: buildSessionRef(ref.title ?? ref.id ?? originalAtPath),
704
+ display: {
705
+ callId,
706
+ name: "Referenced Session",
707
+ description: `Reference session "${ref.title ?? ref.id ?? ""}"`,
708
+ status: "Error" /* Error */,
709
+ resultDisplay: reason,
710
+ confirmationDetails: void 0
711
+ }
712
+ });
713
+ continue;
714
+ }
715
+ if (resolvedSessionIds.has(sessionId)) {
716
+ onDebugMessage(
717
+ `Session reference "@${originalAtPath.substring(1)}" resolves to session ${sessionId}, which was already referenced; skipping duplicate.`
718
+ );
719
+ continue;
720
+ }
721
+ resolvedSessionIds.add(sessionId);
722
+ let resolved;
723
+ try {
724
+ resolved = await new SessionReferenceService(
725
+ config.getProjectRoot()
726
+ ).resolve(sessionId, ref.title ? { title: ref.title } : {});
727
+ } catch (error) {
728
+ const reason = `Failed to load session "${sessionId}" (${getErrorMessage(error)}); the transcript may be corrupted or unreadable.`;
729
+ onDebugMessage(reason);
730
+ scopedMentionEntries.push({
731
+ originalAtPath,
732
+ part: { text: "" },
733
+ label: buildSessionRef(sessionId),
734
+ display: {
735
+ callId,
736
+ name: "Referenced Session",
737
+ description: `Reference session ${sessionId}`,
738
+ status: "Error" /* Error */,
739
+ resultDisplay: reason,
740
+ confirmationDetails: void 0
741
+ }
742
+ });
743
+ continue;
744
+ }
745
+ if ("notFound" in resolved) {
746
+ const reason = `Session "${sessionId}" not found in this project.`;
747
+ onDebugMessage(reason);
748
+ scopedMentionEntries.push({
749
+ originalAtPath,
750
+ part: { text: "" },
751
+ label: buildSessionRef(sessionId),
752
+ display: {
753
+ callId,
754
+ name: "Referenced Session",
755
+ description: `Reference session ${sessionId}`,
756
+ status: "Error" /* Error */,
757
+ resultDisplay: reason,
758
+ confirmationDetails: void 0
759
+ }
760
+ });
761
+ continue;
762
+ }
763
+ scopedMentionEntries.push({
764
+ originalAtPath,
765
+ part: { text: resolved.text },
766
+ label: buildSessionRef(sessionId),
767
+ display: {
768
+ callId,
769
+ name: "Referenced Session",
770
+ description: `Referenced session "${resolved.meta.title}"${resolved.truncated ? " (truncated)" : ""}`,
771
+ status: "Success" /* Success */,
772
+ resultDisplay: void 0,
773
+ confirmationDetails: void 0
774
+ }
775
+ });
776
+ }
613
777
  const scopedMentionOrder = new Map(
614
778
  atPathCommandParts.map((part, index) => [part.content, index])
615
779
  );
@@ -742,6 +906,8 @@ export {
742
906
  sanitizeDisplayText,
743
907
  buildExtensionMentionContext,
744
908
  getExtensionSuggestions,
909
+ SESSION_MENTION_PREFIX,
910
+ buildSessionRef,
745
911
  parseMcpServerRef,
746
912
  buildMcpServerRef,
747
913
  matchMcpServerByRef,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-VRRF3GW5.js";
5
+ } from "./chunk-LKEJ26GS.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getGlobalQwenDir
5
- } from "./chunk-RVLZCXEE.js";
5
+ } from "./chunk-RWTEFFPU.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  runExitCleanup
5
- } from "./chunk-5NJTNQUW.js";
5
+ } from "./chunk-PWVFN2LF.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-VRRF3GW5.js";
5
+ } from "./chunk-LKEJ26GS.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -27,7 +27,7 @@ function resolveVoiceTransport(model) {
27
27
  }
28
28
  __name(resolveVoiceTransport, "resolveVoiceTransport");
29
29
  function isTranscribableVoiceModel(model) {
30
- return model.authType === "openai" /* USE_OPENAI */ && model.isRuntimeModel !== true && typeof model.baseUrl === "string" && model.baseUrl.trim().length > 0;
30
+ return model.authType === "openai" /* USE_OPENAI */ && model.isRuntimeModel !== true && model.imageOnly !== true && typeof model.baseUrl === "string" && model.baseUrl.trim().length > 0;
31
31
  }
32
32
  __name(isTranscribableVoiceModel, "isTranscribableVoiceModel");
33
33
  function isSelectableVoiceModel(model) {
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  createTask
5
- } from "./chunk-GPSKDNEE.js";
5
+ } from "./chunk-K4XWPEWB.js";
6
6
  import {
7
7
  getPlanRequiredTeammatePreApprovalMessage,
8
8
  isPlanRequiredTeammateAwaitingApproval
9
- } from "./chunk-WHGVTP7Q.js";
9
+ } from "./chunk-L26JL52R.js";
10
10
  import {
11
11
  resolveActiveTeamName
12
12
  } from "./chunk-6AM5D4ME.js";
@@ -15,7 +15,7 @@ import {
15
15
  BaseToolInvocation,
16
16
  ToolDisplayNames,
17
17
  ToolNames
18
- } from "./chunk-YM3SZTH4.js";
18
+ } from "./chunk-PR75REBZ.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-VRRF3GW5.js";
5
+ } from "./chunk-LKEJ26GS.js";
6
6
  import {
7
7
  writeStderrLine
8
8
  } from "./chunk-OWAK7LMW.js";
9
9
  import {
10
10
  createDebugLogger
11
- } from "./chunk-OQB4EXO4.js";
11
+ } from "./chunk-NL7LTRLR.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -14,7 +14,7 @@ import {
14
14
  init_esbuild_shims();
15
15
  async function getCliVersion() {
16
16
  const pkgJson = await getPackageJson();
17
- return "0.20.2-headless-image-routing.1";
17
+ return "0.21.0";
18
18
  }
19
19
  __name(getCliVersion, "getCliVersion");
20
20
 
@@ -13,15 +13,15 @@ import {
13
13
  } from "./chunk-OWAK7LMW.js";
14
14
  import {
15
15
  ideContextStore
16
- } from "./chunk-OTQ6PSZC.js";
16
+ } from "./chunk-PHOF65IG.js";
17
17
  import {
18
18
  atomicWriteFileSync
19
- } from "./chunk-6X4GWOPW.js";
19
+ } from "./chunk-A5L3JMUA.js";
20
20
  import {
21
21
  FatalConfigError,
22
22
  Storage,
23
23
  getErrorMessage
24
- } from "./chunk-OQB4EXO4.js";
24
+ } from "./chunk-NL7LTRLR.js";
25
25
  import {
26
26
  init_esbuild_shims
27
27
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  expandHomeDir
5
- } from "./chunk-OQB4EXO4.js";
5
+ } from "./chunk-NL7LTRLR.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  performStandaloneUpdate
5
- } from "./chunk-BSHD62QJ.js";
5
+ } from "./chunk-M4FMGVY4.js";
6
6
  import {
7
7
  updateEventEmitter
8
8
  } from "./chunk-YAF2MQZ6.js";
9
- import {
10
- t
11
- } from "./chunk-VRRF3GW5.js";
12
9
  import {
13
10
  getInstallationInfo,
14
11
  resolveUpdateCommand
15
- } from "./chunk-4OWXOUYF.js";
12
+ } from "./chunk-ZNAUOR2I.js";
13
+ import {
14
+ t
15
+ } from "./chunk-LKEJ26GS.js";
16
16
  import {
17
17
  createDebugLogger
18
- } from "./chunk-OQB4EXO4.js";
18
+ } from "./chunk-NL7LTRLR.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -0,0 +1,289 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ getRateLimitErrorDetails
5
+ } from "./chunk-6FGBXPWM.js";
6
+ import {
7
+ isInternalPromptId
8
+ } from "./chunk-CIKQ7KKO.js";
9
+ import {
10
+ createDebugLogger
11
+ } from "./chunk-NL7LTRLR.js";
12
+ import {
13
+ init_esbuild_shims
14
+ } from "./chunk-5O2XNYP6.js";
15
+ import {
16
+ __name
17
+ } from "./chunk-J2S4EL5Y.js";
18
+
19
+ // packages/core/src/utils/openaiLogger.ts
20
+ init_esbuild_shims();
21
+ import * as path from "node:path";
22
+ import { promises as fs } from "node:fs";
23
+
24
+ // node_modules/uuid/dist/esm-node/index.js
25
+ init_esbuild_shims();
26
+
27
+ // node_modules/uuid/dist/esm-node/rng.js
28
+ init_esbuild_shims();
29
+ import crypto from "crypto";
30
+ var rnds8Pool = new Uint8Array(256);
31
+ var poolPtr = rnds8Pool.length;
32
+ function rng() {
33
+ if (poolPtr > rnds8Pool.length - 16) {
34
+ crypto.randomFillSync(rnds8Pool);
35
+ poolPtr = 0;
36
+ }
37
+ return rnds8Pool.slice(poolPtr, poolPtr += 16);
38
+ }
39
+ __name(rng, "rng");
40
+
41
+ // node_modules/uuid/dist/esm-node/stringify.js
42
+ init_esbuild_shims();
43
+ var byteToHex = [];
44
+ for (let i = 0; i < 256; ++i) {
45
+ byteToHex.push((i + 256).toString(16).slice(1));
46
+ }
47
+ function unsafeStringify(arr, offset = 0) {
48
+ return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
49
+ }
50
+ __name(unsafeStringify, "unsafeStringify");
51
+
52
+ // node_modules/uuid/dist/esm-node/v4.js
53
+ init_esbuild_shims();
54
+
55
+ // node_modules/uuid/dist/esm-node/native.js
56
+ init_esbuild_shims();
57
+ import crypto2 from "crypto";
58
+ var native_default = {
59
+ randomUUID: crypto2.randomUUID
60
+ };
61
+
62
+ // node_modules/uuid/dist/esm-node/v4.js
63
+ function v4(options, buf, offset) {
64
+ if (native_default.randomUUID && !buf && !options) {
65
+ return native_default.randomUUID();
66
+ }
67
+ options = options || {};
68
+ const rnds = options.random || (options.rng || rng)();
69
+ rnds[6] = rnds[6] & 15 | 64;
70
+ rnds[8] = rnds[8] & 63 | 128;
71
+ if (buf) {
72
+ offset = offset || 0;
73
+ for (let i = 0; i < 16; ++i) {
74
+ buf[offset + i] = rnds[i];
75
+ }
76
+ return buf;
77
+ }
78
+ return unsafeStringify(rnds);
79
+ }
80
+ __name(v4, "v4");
81
+ var v4_default = v4;
82
+
83
+ // packages/core/src/utils/openaiLogger.ts
84
+ import * as os from "os";
85
+ var debugLogger = createDebugLogger("OPENAI_LOGGER");
86
+ var MAIN_SESSION_PROMPT_ID_DELIMITER = "########";
87
+ var UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
88
+ function resolveOpenAILogDir(customLogDir, cwd) {
89
+ const baseCwd = cwd || process.cwd();
90
+ if (!customLogDir) {
91
+ return path.join(baseCwd, "logs", "openai");
92
+ }
93
+ let resolvedPath = customLogDir;
94
+ if (customLogDir === "~" || customLogDir.startsWith("~/")) {
95
+ resolvedPath = path.join(os.homedir(), customLogDir.slice(1));
96
+ } else if (!path.isAbsolute(customLogDir)) {
97
+ resolvedPath = path.resolve(baseCwd, customLogDir);
98
+ }
99
+ return path.normalize(resolvedPath);
100
+ }
101
+ __name(resolveOpenAILogDir, "resolveOpenAILogDir");
102
+ function sanitizeDiagnosticSuffix(suffix) {
103
+ if (!suffix) return void 0;
104
+ const sanitized = suffix.replace(/[^a-zA-Z0-9._-]+/g, "-").replace(/^-+|-+$/g, "");
105
+ return sanitized || void 0;
106
+ }
107
+ __name(sanitizeDiagnosticSuffix, "sanitizeDiagnosticSuffix");
108
+ function extractSubagentSuffix(promptId) {
109
+ const parts = promptId.split("#");
110
+ if (parts.length !== 3) return void 0;
111
+ const [, subagentId, turn] = parts;
112
+ if (!subagentId || !turn || !/^\d+$/.test(turn)) {
113
+ return void 0;
114
+ }
115
+ return `subagent-${subagentId}`;
116
+ }
117
+ __name(extractSubagentSuffix, "extractSubagentSuffix");
118
+ function promptIdSuffixForFilename(promptId) {
119
+ if (!promptId) return void 0;
120
+ if (isInternalPromptId(promptId)) {
121
+ return sanitizeDiagnosticSuffix(promptId);
122
+ }
123
+ return sanitizeDiagnosticSuffix(extractSubagentSuffix(promptId));
124
+ }
125
+ __name(promptIdSuffixForFilename, "promptIdSuffixForFilename");
126
+ function sessionIdFromPromptId(promptId) {
127
+ if (!promptId) return void 0;
128
+ const mainSessionDelimiterIndex = promptId.indexOf(
129
+ MAIN_SESSION_PROMPT_ID_DELIMITER
130
+ );
131
+ if (mainSessionDelimiterIndex > 0) {
132
+ return promptId.slice(0, mainSessionDelimiterIndex);
133
+ }
134
+ if (UUID_PATTERN.test(promptId)) {
135
+ return promptId;
136
+ }
137
+ const parts = promptId.split("#");
138
+ if (parts.length >= 3 && parts[0]) {
139
+ return parts[0];
140
+ }
141
+ return void 0;
142
+ }
143
+ __name(sessionIdFromPromptId, "sessionIdFromPromptId");
144
+ function contextForPromptId(promptId) {
145
+ const trimmedPromptId = promptId?.trim();
146
+ const sessionId = sessionIdFromPromptId(trimmedPromptId);
147
+ if (!trimmedPromptId && !sessionId) {
148
+ return null;
149
+ }
150
+ return {
151
+ ...trimmedPromptId ? { promptId: trimmedPromptId } : {},
152
+ ...sessionId ? { sessionId } : {}
153
+ };
154
+ }
155
+ __name(contextForPromptId, "contextForPromptId");
156
+ function getString(value) {
157
+ return typeof value === "string" && value ? value : void 0;
158
+ }
159
+ __name(getString, "getString");
160
+ function getErrorRequestId(error) {
161
+ const source = error;
162
+ return getString(source.requestID) ?? getString(source.request_id) ?? getString(source.requestId) ?? getString(source.response_id) ?? getRateLimitErrorDetails(error).requestId;
163
+ }
164
+ __name(getErrorRequestId, "getErrorRequestId");
165
+ function serializeError(error) {
166
+ const requestId = getErrorRequestId(error);
167
+ return {
168
+ message: error.message,
169
+ stack: error.stack,
170
+ ...requestId ? { requestId } : {}
171
+ };
172
+ }
173
+ __name(serializeError, "serializeError");
174
+ var OpenAILogger = class {
175
+ static {
176
+ __name(this, "OpenAILogger");
177
+ }
178
+ logDir;
179
+ initialized = false;
180
+ /**
181
+ * Creates a new OpenAI logger
182
+ * @param customLogDir Optional custom log directory path (supports relative paths, absolute paths, and ~ expansion)
183
+ * @param cwd Optional working directory for resolving relative paths. Defaults to process.cwd().
184
+ * In ACP mode, process.cwd() may be '/' (filesystem root), so callers should
185
+ * pass the project working directory from Config.getWorkingDir().
186
+ */
187
+ constructor(customLogDir, cwd) {
188
+ this.logDir = resolveOpenAILogDir(customLogDir, cwd);
189
+ }
190
+ /**
191
+ * Initialize the logger by creating the log directory if it doesn't exist
192
+ */
193
+ async initialize() {
194
+ if (this.initialized) return;
195
+ try {
196
+ await fs.mkdir(this.logDir, { recursive: true });
197
+ this.initialized = true;
198
+ } catch (error) {
199
+ debugLogger.error("Failed to initialize OpenAI logger:", error);
200
+ throw new Error(`Failed to initialize OpenAI logger: ${error}`);
201
+ }
202
+ }
203
+ /**
204
+ * Logs an OpenAI API request and its response
205
+ * @param request The request sent to OpenAI
206
+ * @param response The response received from OpenAI
207
+ * @param error Optional error if the request failed
208
+ * @param promptId Optional prompt id; internal and subagent prompt ids are
209
+ * appended to the filename after timestamp and id.
210
+ * @returns The file path where the log was written
211
+ */
212
+ async logInteraction(request, response, error, promptId) {
213
+ if (!this.initialized) {
214
+ await this.initialize();
215
+ }
216
+ const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/:/g, "-");
217
+ const id = v4_default().slice(0, 8);
218
+ const promptIdSuffix = promptIdSuffixForFilename(promptId);
219
+ const filename = promptIdSuffix ? `openai-${timestamp}-${id}-${promptIdSuffix}.json` : `openai-${timestamp}-${id}.json`;
220
+ const filePath = path.join(this.logDir, filename);
221
+ const logData = {
222
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
223
+ request,
224
+ response: response || null,
225
+ error: error ? serializeError(error) : null,
226
+ context: contextForPromptId(promptId),
227
+ system: {
228
+ hostname: os.hostname(),
229
+ platform: os.platform(),
230
+ release: os.release(),
231
+ nodeVersion: process.version
232
+ }
233
+ };
234
+ try {
235
+ await fs.writeFile(filePath, JSON.stringify(logData, null, 2), "utf-8");
236
+ return filePath;
237
+ } catch (writeError) {
238
+ debugLogger.error("Failed to write OpenAI log file:", writeError);
239
+ throw new Error(`Failed to write OpenAI log file: ${writeError}`);
240
+ }
241
+ }
242
+ /**
243
+ * Get all logged interactions
244
+ * @param limit Optional limit on the number of log files to return (sorted by most recent first)
245
+ * @returns Array of log file paths
246
+ */
247
+ async getLogFiles(limit) {
248
+ if (!this.initialized) {
249
+ await this.initialize();
250
+ }
251
+ try {
252
+ const files = await fs.readdir(this.logDir);
253
+ const logFiles = files.filter((file) => file.startsWith("openai-") && file.endsWith(".json")).map((file) => path.join(this.logDir, file)).sort().reverse();
254
+ return limit === void 0 ? logFiles : logFiles.slice(0, limit);
255
+ } catch (error) {
256
+ if (error.code === "ENOENT") {
257
+ return [];
258
+ }
259
+ debugLogger.error("Failed to read OpenAI log directory:", error);
260
+ return [];
261
+ }
262
+ }
263
+ /**
264
+ * Read a specific log file
265
+ * @param filePath The path to the log file
266
+ * @returns The log file content
267
+ */
268
+ async readLogFile(filePath) {
269
+ try {
270
+ const content = await fs.readFile(filePath, "utf-8");
271
+ return JSON.parse(content);
272
+ } catch (error) {
273
+ debugLogger.error(`Failed to read log file ${filePath}:`, error);
274
+ throw new Error(`Failed to read log file: ${error}`);
275
+ }
276
+ }
277
+ };
278
+ var openaiLogger = new OpenAILogger();
279
+
280
+ export {
281
+ resolveOpenAILogDir,
282
+ OpenAILogger,
283
+ openaiLogger
284
+ };
285
+ /**
286
+ * @license
287
+ * Copyright 2025 Google LLC
288
+ * SPDX-License-Identifier: Apache-2.0
289
+ */