@qwen-code/qwen-code 0.19.5 → 0.19.6-nightly.20260705.015ee4248

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 (264) hide show
  1. package/bundled/dataviz/SKILL.md +50 -0
  2. package/bundled/dataviz/references/anti-patterns.md +12 -0
  3. package/bundled/dataviz/references/choosing-a-form.md +16 -0
  4. package/bundled/dataviz/references/palette.md +57 -0
  5. package/bundled/dataviz/scripts/validate_palette.js +328 -0
  6. package/bundled/loop/SKILL.md +1 -1
  7. package/bundled/qc-helper/docs/configuration/settings.md +14 -8
  8. package/bundled/qc-helper/docs/features/headless.md +2 -2
  9. package/bundled/qc-helper/docs/features/scheduled-tasks.md +4 -2
  10. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  11. package/bundled/review/DESIGN.md +23 -0
  12. package/bundled/review/SKILL.md +65 -8
  13. package/chunks/{MaxSizedBox-5JV77KRA.js → MaxSizedBox-PRXTXIGC.js} +31 -30
  14. package/chunks/{StandaloneSessionPicker-MGUGB6PH.js → StandaloneSessionPicker-PV7BSC5D.js} +42 -41
  15. package/chunks/{acpAgent-4F36XM3X.js → acpAgent-F34HNAM3.js} +939 -424
  16. package/chunks/{agent-IWBUZI6A.js → agent-XSQDKLST.js} +26 -25
  17. package/chunks/{agent-headless-JUTICAYO.js → agent-headless-B63XCKWX.js} +26 -25
  18. package/chunks/{anthropicContentGenerator-WL3LJOUB.js → anthropicContentGenerator-INXXI4PW.js} +7 -7
  19. package/chunks/{artifact-tool-W76WC2JX.js → artifact-tool-H2TNPNP5.js} +16 -3
  20. package/chunks/{askUserQuestion-J3P6TH3V.js → askUserQuestion-MKL5ZTMC.js} +2 -2
  21. package/chunks/{bridge-DHZHQ4UV.js → bridge-NCZDJBRF.js} +34 -32
  22. package/chunks/{channel-worker-supervisor-EVPAYNZ5.js → channel-worker-supervisor-JUYQ5Z4R.js} +5 -5
  23. package/chunks/{chunk-AVQDCKNF.js → chunk-22MNNNXE.js} +4 -0
  24. package/chunks/chunk-3RW4AZJV.js +5063 -0
  25. package/chunks/chunk-3VJ7MT3N.js +111 -0
  26. package/chunks/{chunk-JKGCBO3O.js → chunk-3VRMGS3A.js} +4 -4
  27. package/chunks/{chunk-TN6RT6EJ.js → chunk-3WOJO5EJ.js} +16 -4
  28. package/chunks/{chunk-G7OQ3RFJ.js → chunk-42XGFRJS.js} +3 -3
  29. package/chunks/{chunk-MOUXUCXQ.js → chunk-4KJ2BPIT.js} +1 -1
  30. package/chunks/{chunk-PPFWEV7G.js → chunk-4RQIB5UZ.js} +62 -62
  31. package/chunks/{chunk-JJ6B3ZD3.js → chunk-544UZQBD.js} +3 -3
  32. package/chunks/{chunk-B236XPGF.js → chunk-5UDYETKK.js} +1 -1
  33. package/chunks/{chunk-7DMQRPC7.js → chunk-6BEOH4KK.js} +1 -1
  34. package/chunks/{chunk-CXBG27SF.js → chunk-6IAWPIQ6.js} +3 -2
  35. package/chunks/{chunk-MDBNFHIO.js → chunk-6MDY7FX3.js} +5 -5
  36. package/chunks/{chunk-RM3PGSGL.js → chunk-6SHO7WFF.js} +15 -2
  37. package/chunks/{chunk-YCU7QV7Q.js → chunk-73WGF3NW.js} +34 -1
  38. package/chunks/{chunk-T42ACHFI.js → chunk-7LTB54MK.js} +1 -1
  39. package/chunks/{chunk-SJVPSHXU.js → chunk-7U6J224Z.js} +132 -25
  40. package/chunks/{chunk-CSPSJU5R.js → chunk-7WLJPMWU.js} +17 -17
  41. package/chunks/{chunk-R6RI2HIC.js → chunk-ACD5DFUY.js} +41 -14
  42. package/chunks/{chunk-EWALXUAD.js → chunk-AGHU5VRK.js} +8 -0
  43. package/chunks/{chunk-GLPV75ES.js → chunk-AHNJGLFV.js} +2 -2
  44. package/chunks/{chunk-DRS2HTNT.js → chunk-AOAFX4PL.js} +5 -5
  45. package/chunks/{chunk-QHYITL6P.js → chunk-CK7IUFOB.js} +63 -22
  46. package/chunks/{chunk-RSBQS6M4.js → chunk-CODWJXQA.js} +1 -1
  47. package/chunks/{chunk-LWGLBVWA.js → chunk-CSOTA7KX.js} +1 -1
  48. package/chunks/{chunk-UJT42DB6.js → chunk-DFH4T5IQ.js} +6 -6
  49. package/chunks/{chunk-DX3TKXNT.js → chunk-DJACOX4C.js} +2 -2
  50. package/chunks/{chunk-KKQWC6WS.js → chunk-DNV4FSN5.js} +1 -1
  51. package/chunks/{chunk-YPCPZSZB.js → chunk-DT3B47QP.js} +1 -1
  52. package/chunks/{chunk-NIOPRZNN.js → chunk-E7KNELIZ.js} +1 -1
  53. package/chunks/{chunk-DG573EOO.js → chunk-FEJ2FZ3U.js} +1 -1
  54. package/chunks/{chunk-M5ITDKSM.js → chunk-FHGQFG2K.js} +1 -1
  55. package/chunks/{chunk-HISPEX42.js → chunk-FSXFNDTI.js} +7 -7
  56. package/chunks/{chunk-LHMZCIKL.js → chunk-FUW7YGJU.js} +3 -1
  57. package/chunks/{chunk-Y4UQT3PM.js → chunk-FV5SBNNC.js} +1 -1
  58. package/chunks/{chunk-YTFBURQD.js → chunk-GB6HDZIK.js} +10 -2
  59. package/chunks/{chunk-D5KISTLW.js → chunk-H6EMK6QK.js} +1 -1
  60. package/chunks/{chunk-2Z43HUXT.js → chunk-HLKG6CZN.js} +3 -2
  61. package/chunks/{chunk-VXGPYF7U.js → chunk-IFEWJXFS.js} +1 -1
  62. package/chunks/{chunk-TENOUWY2.js → chunk-IJRL2S3D.js} +3 -3
  63. package/chunks/{chunk-OQHLUA2Y.js → chunk-IL6ZEDZ2.js} +4 -4
  64. package/chunks/{chunk-2CAII5HD.js → chunk-J7XUJALJ.js} +1 -1
  65. package/chunks/chunk-JFFOH2XO.js +2472 -0
  66. package/chunks/{chunk-NNEJEBCF.js → chunk-K3FZXSTO.js} +95 -107
  67. package/chunks/{chunk-NDY7OENU.js → chunk-KB4ICCA5.js} +3 -3
  68. package/chunks/{chunk-MNOXKSM2.js → chunk-LFFF2SPV.js} +3 -3
  69. package/chunks/{chunk-J3ERRYYI.js → chunk-LTMDKOZC.js} +2 -2
  70. package/chunks/{chunk-R3UWLLRQ.js → chunk-M7AGQP5D.js} +1 -1
  71. package/chunks/{chunk-CBJE2PLG.js → chunk-MLB5AB2I.js} +4 -4
  72. package/chunks/{chunk-YHTNWGRR.js → chunk-MZ7BABX3.js} +1 -1
  73. package/chunks/{chunk-SJBIFVD2.js → chunk-NFE3DQ4R.js} +7 -3
  74. package/chunks/{chunk-BC4R5C5R.js → chunk-NLD2WKE3.js} +55 -12
  75. package/chunks/{chunk-ALX6BUYW.js → chunk-NUGPZXAZ.js} +35 -1
  76. package/chunks/{chunk-NSSVORTQ.js → chunk-NYKWPUAE.js} +17 -13
  77. package/chunks/{chunk-K4I4STSL.js → chunk-OGEJMKN5.js} +2 -2
  78. package/chunks/{chunk-HTWHAN44.js → chunk-PC4ZXHU2.js} +1 -1
  79. package/chunks/{chunk-2YH27UNF.js → chunk-QLBBV7C6.js} +1 -1
  80. package/chunks/chunk-QT7XKZT7.js +293 -0
  81. package/chunks/{chunk-NPQWQYU6.js → chunk-QYNNN7BK.js} +1 -1
  82. package/chunks/chunk-R4N3OALZ.js +5631 -0
  83. package/chunks/{chunk-G4M7FPNY.js → chunk-RB5GAQR6.js} +2 -2
  84. package/chunks/{chunk-SBMHB6N5.js → chunk-RPHMD5UC.js} +15 -15
  85. package/chunks/{chunk-CHY5C5T4.js → chunk-SJ2CTIYH.js} +185 -88
  86. package/chunks/chunk-SLQXGMYY.js +949 -0
  87. package/chunks/{chunk-BZHLWC6T.js → chunk-SUAKHHK7.js} +2 -2
  88. package/chunks/{chunk-IMAMNLY6.js → chunk-SWV4CVYG.js} +158 -3
  89. package/chunks/{chunk-XKSCTXPK.js → chunk-TDGF35EN.js} +4 -3
  90. package/chunks/{chunk-TOAUDIS7.js → chunk-TLWA7TPR.js} +6 -2
  91. package/chunks/{chunk-WALEWZ44.js → chunk-UVHL5TCO.js} +1 -1
  92. package/chunks/{chunk-ZISMVA6U.js → chunk-VDMM5LVR.js} +1566 -37
  93. package/chunks/{chunk-BPFJQGY7.js → chunk-VEB3NYSO.js} +164 -5
  94. package/chunks/{chunk-L7OJ3ZO3.js → chunk-VZ7HY3YU.js} +1 -1
  95. package/chunks/{chunk-6KPZJJ6U.js → chunk-W4I6PLEG.js} +131 -38
  96. package/chunks/{chunk-QOMAHFYI.js → chunk-W7EEOR7D.js} +3 -3
  97. package/chunks/{chunk-6QVQZAW6.js → chunk-WKP5QZOP.js} +1 -1
  98. package/chunks/{chunk-YXK4GPYO.js → chunk-WMPVYQ4P.js} +30 -1
  99. package/chunks/{chunk-DM4E337C.js → chunk-WNTS5A2R.js} +5 -5
  100. package/chunks/{chunk-6QTCOQX7.js → chunk-WOG7QWIT.js} +3086 -2635
  101. package/chunks/{chunk-UY2TCIZS.js → chunk-X265R5C6.js} +3 -3
  102. package/chunks/{chunk-LKWAVAB5.js → chunk-X2XNQQJI.js} +2 -2
  103. package/chunks/{chunk-MTNTVOJR.js → chunk-X3YGAX7V.js} +6 -3
  104. package/chunks/{chunk-EROWZQN7.js → chunk-XD3OLPII.js} +6 -6
  105. package/chunks/{chunk-RNGAT2Y2.js → chunk-YYL6HROQ.js} +1 -1
  106. package/chunks/{chunk-XKZXGIRM.js → chunk-YZ2LNTHO.js} +2 -2
  107. package/chunks/{chunk-Z7XNVNPM.js → chunk-YZ5ANQMR.js} +3 -3
  108. package/chunks/{chunk-4MCC4XHH.js → chunk-Z7EYROOJ.js} +3568 -5508
  109. package/chunks/{chunk-5B2WNM6V.js → chunk-ZI4MGBB5.js} +1 -1
  110. package/chunks/{chunk-WZ724G6K.js → chunk-ZPGE42V7.js} +6 -6
  111. package/chunks/{computer-use-ON3JQUHW.js → computer-use-5I2UHVNY.js} +26 -25
  112. package/chunks/{contextCommand-OGCG7W6N.js → contextCommand-3NWY7AJG.js} +28 -27
  113. package/chunks/{cron-create-6YTCOX6P.js → cron-create-O6ZHD3JN.js} +22 -7
  114. package/chunks/{cron-delete-E3NIFSUK.js → cron-delete-BFD5B2XX.js} +4 -4
  115. package/chunks/{cron-list-Q64MNQNE.js → cron-list-KI6FV4KN.js} +4 -4
  116. package/chunks/{daemon-EEB2RYOL.js → daemon-DRUMLVFP.js} +140 -0
  117. package/chunks/daemon-status-provider-A2DK3ZTO.js +74 -0
  118. package/chunks/{dist-AP5V4WYU.js → dist-AAO65DPC.js} +2 -2
  119. package/chunks/{dist-X4ZDE726.js → dist-ABQ7VWRR.js} +3 -3
  120. package/chunks/{dist-SNXOUPYS.js → dist-AW5ZYMUI.js} +2 -2
  121. package/chunks/{dist-Z57Q4YF5.js → dist-DN6M6TJ5.js} +525 -95
  122. package/chunks/{dist-IZP2VV4C.js → dist-JPSVN367.js} +2 -2
  123. package/chunks/{earlyInputCapture-DAFHSGVW.js → earlyInputCapture-5TMSSPQ5.js} +27 -26
  124. package/chunks/{edit-3QFNCSZH.js → edit-V4ITLSUD.js} +27 -26
  125. package/chunks/{en-M4EBUBNU.js → en-AXARKOWO.js} +2 -0
  126. package/chunks/{enter-worktree-62EQQMLD.js → enter-worktree-7ULPRMTJ.js} +26 -25
  127. package/chunks/{enterPlanMode-VUQSE4EG.js → enterPlanMode-YSHMLHJZ.js} +26 -25
  128. package/chunks/{errors-PW75PZXE.js → errors-TCUTD7NF.js} +28 -27
  129. package/chunks/{exit-worktree-VVNH7OVY.js → exit-worktree-JZDCKR6A.js} +26 -25
  130. package/chunks/{exitPlanMode-RUYRCYZW.js → exitPlanMode-GOQBN6SG.js} +26 -25
  131. package/chunks/{fast-path-TFRJRTTR.js → fast-path-F2HGAKO2.js} +3 -3
  132. package/chunks/{fast-path-settings-UQLRFDQP.js → fast-path-settings-RCRXH2JG.js} +2 -2
  133. package/chunks/{gemini-XW7ZDUVR.js → gemini-3M7ECKNW.js} +86 -80
  134. package/chunks/{geminiContentGenerator-MZDVHVZH.js → geminiContentGenerator-5EG3QEJM.js} +4 -4
  135. package/chunks/{glob-WAY2PUWA.js → glob-2DBDTLR4.js} +54 -29
  136. package/chunks/{grep-W6CBKSYC.js → grep-R27DLGWT.js} +26 -25
  137. package/chunks/{initializer-HK2XE6P2.js → initializer-OXB6BJZU.js} +32 -31
  138. package/chunks/{keychain-token-storage-GPAKRDKQ.js → keychain-token-storage-UJV5XP4Z.js} +2 -2
  139. package/chunks/{list-RVLIIKKL.js → list-HLCOEOSF.js} +33 -32
  140. package/chunks/{loadedSettingsAdapter-C63OUYZC.js → loadedSettingsAdapter-JHTVH3YO.js} +31 -30
  141. package/chunks/{loop-wakeup-G2EHBRGR.js → loop-wakeup-CUVIY2JY.js} +5 -5
  142. package/chunks/{ls-IDHUVSAG.js → ls-L654WOAT.js} +4 -4
  143. package/chunks/{lsp-FSRYXGFT.js → lsp-M35KE54Y.js} +2 -2
  144. package/chunks/mcp-2JWEFAIN.js +67 -0
  145. package/chunks/{monitor-FOG36ABM.js → monitor-5QKFZFDX.js} +26 -25
  146. package/chunks/nonInteractiveCli-W5W5PIHI.js +112 -0
  147. package/chunks/{notebook-edit-GC6NXRCX.js → notebook-edit-XAFBWORI.js} +27 -26
  148. package/chunks/{openaiContentGenerator-EXR3ZL3Z.js → openaiContentGenerator-NULJROYV.js} +13 -12
  149. package/chunks/{pidfile-FNZM2DDH.js → pidfile-3LT7PZSW.js} +27 -26
  150. package/chunks/{qwenContentGenerator-A7B6J4U7.js → qwenContentGenerator-KLSURVNH.js} +28 -27
  151. package/chunks/{qwenOAuth2-LWLA6MQG.js → qwenOAuth2-ZV7YLMND.js} +5 -5
  152. package/chunks/{read-file-6JL4ULMY.js → read-file-HDAM3RHJ.js} +8 -8
  153. package/chunks/{read-mcp-resource-PIJF24RO.js → read-mcp-resource-CNQHBSJM.js} +2 -2
  154. package/chunks/record-artifact-PP3LKHTS.js +343 -0
  155. package/chunks/{ripGrep-DIUGLJE5.js → ripGrep-W36NLR7M.js} +26 -25
  156. package/chunks/{run-qwen-serve-CME3AKM4.js → run-qwen-serve-IMI2CQB5.js} +72 -28
  157. package/chunks/{scheduler-L7F6GDDT.js → scheduler-I5NKE5UJ.js} +26 -25
  158. package/chunks/{send-message-33PYFMCT.js → send-message-OA6MV4EU.js} +3 -3
  159. package/chunks/{serve-SRCBOJGP.js → serve-JMHMOYBO.js} +33 -32
  160. package/chunks/{server-QSQ45QFR.js → server-QIYIN34N.js} +1358 -492
  161. package/chunks/{session-5DG6NXHZ.js → session-BLL6HB35.js} +68 -65
  162. package/chunks/{settings-3EEQI4MN.js → settings-ABECXCTY.js} +30 -29
  163. package/chunks/{shell-B7FNYF5S.js → shell-A2TQI3U4.js} +26 -25
  164. package/chunks/{skill-AAOGHD5O.js → skill-4GTWZZWR.js} +10 -10
  165. package/chunks/{spawnChannel-3CBN3ZLK.js → spawnChannel-DFUVGP53.js} +30 -29
  166. package/chunks/{src-T5A7P7FS.js → src-ZORBMUM7.js} +77 -43
  167. package/chunks/{startInteractiveUI-2FGEQ6AS.js → startInteractiveUI-FH5MVXUE.js} +449 -175
  168. package/chunks/{syntheticOutput-YOSWIHDJ.js → syntheticOutput-F7LSDCAR.js} +3 -3
  169. package/chunks/{task-create-NHS2NGB3.js → task-create-RPFZNB4B.js} +7 -7
  170. package/chunks/{task-list-5UIB564R.js → task-list-TGGJX7EA.js} +5 -5
  171. package/chunks/{task-stop-HGXZ2VZ3.js → task-stop-W7NGTMYQ.js} +2 -2
  172. package/chunks/{task-update-IYYWUILG.js → task-update-5WUG5MVQ.js} +7 -7
  173. package/chunks/{team-create-KDF6W6PV.js → team-create-F76QOR6H.js} +26 -25
  174. package/chunks/{team-delete-FEKJCU4P.js → team-delete-UHQQ2QQX.js} +5 -5
  175. package/chunks/{team-plan-approval-PSFKQX7M.js → team-plan-approval-OKM7YZC2.js} +26 -25
  176. package/chunks/{theme-manager-5XOA2AO7.js → theme-manager-6R7EVWHW.js} +27 -26
  177. package/chunks/{todoWrite-TKMVZ2HT.js → todoWrite-C4ZAMSR3.js} +4 -4
  178. package/chunks/{tool-search-LFRILZXC.js → tool-search-UWXDKI7D.js} +9 -9
  179. package/chunks/{trustedFolders-7HQY6T6X.js → trustedFolders-DHASVVUP.js} +27 -26
  180. package/chunks/{validateNonInterActiveAuth-UC27B7BA.js → validateNonInterActiveAuth-56J7MOOP.js} +62 -59
  181. package/chunks/version-NE2I4PBN.js +10 -0
  182. package/chunks/{web-fetch-J4PIW36Q.js → web-fetch-UYGMOHW4.js} +5 -5
  183. package/chunks/{workflow-KUTESS6L.js → workflow-HGF3URV3.js} +35 -27
  184. package/chunks/{workspace-providers-status-LJT5AQDS.js → workspace-providers-status-KXB2OZFQ.js} +33 -32
  185. package/chunks/{workspace-service-YOBYVDXH.js → workspace-service-NSTI55BC.js} +39 -38
  186. package/chunks/workspace-skills-status-X5S6JGQZ.js +69 -0
  187. package/chunks/{write-file-FJYBZUHP.js → write-file-HVKT5VTX.js} +27 -26
  188. package/chunks/yargs-B64EYTCF.js +10 -0
  189. package/chunks/{zh-SLZNSSZB.js → zh-RS3HZHFH.js} +2 -0
  190. package/chunks/{zh-TW-P53C2SL5.js → zh-TW-L5GRQ4S4.js} +2 -0
  191. package/cli-entry.js +81 -8
  192. package/cli.js +348 -55
  193. package/locales/en.js +2 -0
  194. package/locales/zh-TW.js +2 -0
  195. package/locales/zh.js +2 -0
  196. package/node_modules/@qwen-code/audio-capture/package.json +1 -1
  197. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  198. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  199. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  200. package/package.json +3 -3
  201. package/web-shell/assets/{arc-D_rAuMDd.js → arc-Csx4m4N0.js} +1 -1
  202. package/web-shell/assets/{architectureDiagram-3BPJPVTR-DUCzbHVo.js → architectureDiagram-3BPJPVTR-BEa0vCM7.js} +1 -1
  203. package/web-shell/assets/{blockDiagram-GPEHLZMM-BEEBt1LL.js → blockDiagram-GPEHLZMM-BPzbKnn3.js} +1 -1
  204. package/web-shell/assets/{c4Diagram-AAUBKEIU-5ZJ_DeFL.js → c4Diagram-AAUBKEIU-B8YO71yP.js} +1 -1
  205. package/web-shell/assets/channel-QU1XUuVe.js +1 -0
  206. package/web-shell/assets/{chunk-2J33WTMH-Cfw7EiLn.js → chunk-2J33WTMH-32XhwSHt.js} +1 -1
  207. package/web-shell/assets/{chunk-4BX2VUAB-FGuZNCZY.js → chunk-4BX2VUAB-Bmoyo6PS.js} +1 -1
  208. package/web-shell/assets/{chunk-55IACEB6-CaBwYPBF.js → chunk-55IACEB6-TwH6PFhs.js} +1 -1
  209. package/web-shell/assets/{chunk-727SXJPM-BlR04OFz.js → chunk-727SXJPM-RI_IVUtZ.js} +1 -1
  210. package/web-shell/assets/{chunk-AQP2D5EJ-D3_mYJH5.js → chunk-AQP2D5EJ-DH6GIAZD.js} +1 -1
  211. package/web-shell/assets/{chunk-FMBD7UC4-7D4q4SbB.js → chunk-FMBD7UC4-DeD3k3D5.js} +1 -1
  212. package/web-shell/assets/{chunk-ND2GUHAM-BjX_Iwmr.js → chunk-ND2GUHAM-BLPb8nv3.js} +1 -1
  213. package/web-shell/assets/{chunk-QZHKN3VN-C3Hz_ZQh.js → chunk-QZHKN3VN-PZpyglW1.js} +1 -1
  214. package/web-shell/assets/classDiagram-4FO5ZUOK-fv1EWO-L.js +1 -0
  215. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-fv1EWO-L.js +1 -0
  216. package/web-shell/assets/{cose-bilkent-S5V4N54A-Ax4UycaT.js → cose-bilkent-S5V4N54A-Jsd0yKfz.js} +1 -1
  217. package/web-shell/assets/{dagre-BM42HDAG-C6hmPtGt.js → dagre-BM42HDAG-B-zADciZ.js} +1 -1
  218. package/web-shell/assets/{diagram-2AECGRRQ-tXZnxjmw.js → diagram-2AECGRRQ-Cn6GDxoo.js} +1 -1
  219. package/web-shell/assets/{diagram-5GNKFQAL-99dwIzQG.js → diagram-5GNKFQAL-udLgyJxO.js} +1 -1
  220. package/web-shell/assets/{diagram-KO2AKTUF-Bqhn0-2s.js → diagram-KO2AKTUF-EcLpfzy3.js} +1 -1
  221. package/web-shell/assets/{diagram-LMA3HP47-DzThVSvo.js → diagram-LMA3HP47-D-YFbYsJ.js} +1 -1
  222. package/web-shell/assets/{diagram-OG6HWLK6-DPE8vjln.js → diagram-OG6HWLK6-C8oRUATa.js} +1 -1
  223. package/web-shell/assets/{erDiagram-TEJ5UH35-KzUKgQCV.js → erDiagram-TEJ5UH35-DPH5nStc.js} +1 -1
  224. package/web-shell/assets/{flowDiagram-I6XJVG4X-DBN-DXw5.js → flowDiagram-I6XJVG4X-CSOTwkAt.js} +1 -1
  225. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DuBsP9u8.js → ganttDiagram-6RSMTGT7-D0L988t0.js} +1 -1
  226. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BjWHMyKR.js → gitGraphDiagram-PVQCEYII-B9Oo7gxS.js} +1 -1
  227. package/web-shell/assets/index-BYZZL5N7.css +5 -0
  228. package/web-shell/assets/index-C_oTyz0s.js +753 -0
  229. package/web-shell/assets/{infoDiagram-5YYISTIA-BVux0vP6.js → infoDiagram-5YYISTIA-Ddj4YN2P.js} +1 -1
  230. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-2qzw7f--.js → ishikawaDiagram-YF4QCWOH-CBjafcl7.js} +1 -1
  231. package/web-shell/assets/{journeyDiagram-JHISSGLW-Dnl65sxL.js → journeyDiagram-JHISSGLW-Bn3XD99u.js} +1 -1
  232. package/web-shell/assets/{kanban-definition-UN3LZRKU-BElSQYtY.js → kanban-definition-UN3LZRKU-D7PBPJmE.js} +1 -1
  233. package/web-shell/assets/{linear-BjoycSSY.js → linear-Bmfo22rZ.js} +1 -1
  234. package/web-shell/assets/{mermaid.core-xe6bvMRz.js → mermaid.core-xRkAI-EI.js} +5 -5
  235. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D8DQgI4U.js → mindmap-definition-RKZ34NQL-B30zRinm.js} +1 -1
  236. package/web-shell/assets/{pieDiagram-4H26LBE5-Dwh7Gp7c.js → pieDiagram-4H26LBE5-DblnKR9Z.js} +1 -1
  237. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BXKNBln2.js → quadrantDiagram-W4KKPZXB-COkHFKjF.js} +1 -1
  238. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BzaC3cIA.js → requirementDiagram-4Y6WPE33-DDU3MMyn.js} +1 -1
  239. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DP2t7eZk.js → sankeyDiagram-5OEKKPKP-Dt4lqEYv.js} +1 -1
  240. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-XlFiWEYv.js → sequenceDiagram-3UESZ5HK-BRzby5gN.js} +1 -1
  241. package/web-shell/assets/{stateDiagram-AJRCARHV-CupgUMJO.js → stateDiagram-AJRCARHV-CylzByc3.js} +1 -1
  242. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BKWZIKkM.js +1 -0
  243. package/web-shell/assets/{timeline-definition-PNZ67QCA-DstuGywa.js → timeline-definition-PNZ67QCA-BSzaNx6w.js} +1 -1
  244. package/web-shell/assets/{vennDiagram-CIIHVFJN-CnbNp6zu.js → vennDiagram-CIIHVFJN-BbzeKzCo.js} +1 -1
  245. package/web-shell/assets/{wardley-L42UT6IY-DnvoHq6R.js → wardley-L42UT6IY-BRJwCgE_.js} +1 -1
  246. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Cz0xHEWB.js → wardleyDiagram-YWT4CUSO-BmAs0mJ-.js} +1 -1
  247. package/web-shell/assets/{xychartDiagram-2RQKCTM6-p36gfo88.js → xychartDiagram-2RQKCTM6-DqywSqVW.js} +1 -1
  248. package/web-shell/index.html +2 -2
  249. package/bundled/loop/SKILL.test.ts +0 -119
  250. package/bundled/loop/autonomous-loop.test.ts +0 -59
  251. package/bundled/loop/loop-task-file.test.ts +0 -1064
  252. package/bundled/loop/loop-tick-resolver.test.ts +0 -906
  253. package/chunks/chunk-EJ7BN3EN.js +0 -11396
  254. package/chunks/chunk-L7QPM2YD.js +0 -481
  255. package/chunks/daemon-status-provider-P72STMLB.js +0 -72
  256. package/chunks/nonInteractiveCli-6BYQSJTB.js +0 -109
  257. package/chunks/workspace-skills-status-ONEPXJV6.js +0 -62
  258. package/web-shell/assets/channel-B5ynH0q8.js +0 -1
  259. package/web-shell/assets/classDiagram-4FO5ZUOK-CK3ibywp.js +0 -1
  260. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CK3ibywp.js +0 -1
  261. package/web-shell/assets/index-9qfvU0_r.css +0 -5
  262. package/web-shell/assets/index-CWzDaQT5.js +0 -717
  263. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-By3E4QwN.js +0 -1
  264. package/chunks/{chunk-UFC57OYT.js → chunk-VRDMOSQS.js} +54 -54
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  escapeAnsiCtrlCodes
5
- } from "./chunk-2CAII5HD.js";
5
+ } from "./chunk-J7XUJALJ.js";
6
6
  import {
7
7
  wrapper_default
8
8
  } from "./chunk-H6BD2ELD.js";
9
9
  import {
10
10
  createDebugLogger
11
- } from "./chunk-AVQDCKNF.js";
11
+ } from "./chunk-22MNNNXE.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-A4BMJM77.js";
@@ -1,14 +1,14 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ handleAtCommand
5
+ } from "./chunk-7U6J224Z.js";
3
6
  import {
4
7
  JsonOutputAdapter
5
- } from "./chunk-RNGAT2Y2.js";
8
+ } from "./chunk-YYL6HROQ.js";
6
9
  import {
7
10
  StreamJsonOutputAdapter
8
- } from "./chunk-J3ERRYYI.js";
9
- import {
10
- handleAtCommand
11
- } from "./chunk-SJVPSHXU.js";
11
+ } from "./chunk-LTMDKOZC.js";
12
12
  import {
13
13
  buildInitialSystemReminders,
14
14
  buildSystemMessage,
@@ -20,10 +20,10 @@ import {
20
20
  insertAfterFunctionResponses,
21
21
  isSlashCommand,
22
22
  normalizePartList
23
- } from "./chunk-4MCC4XHH.js";
23
+ } from "./chunk-Z7EYROOJ.js";
24
24
  import {
25
25
  RunBudgetEnforcer
26
- } from "./chunk-EJ7BN3EN.js";
26
+ } from "./chunk-R4N3OALZ.js";
27
27
  import {
28
28
  AlreadyReportedError,
29
29
  handleBudgetExceededError,
@@ -31,10 +31,10 @@ import {
31
31
  handleError,
32
32
  handleMaxTurnsExceededError,
33
33
  handleToolError
34
- } from "./chunk-JJ6B3ZD3.js";
34
+ } from "./chunk-544UZQBD.js";
35
35
  import {
36
36
  isInlineModelOverrideAllowed
37
- } from "./chunk-K4I4STSL.js";
37
+ } from "./chunk-OGEJMKN5.js";
38
38
  import {
39
39
  ORPHAN_TOOL_USE_REPAIR_REASON,
40
40
  buildSyntheticToolResponseParts,
@@ -49,19 +49,19 @@ import {
49
49
  parseAndFormatApiError,
50
50
  promptIdContext,
51
51
  restoreWorktreeContext
52
- } from "./chunk-6QTCOQX7.js";
52
+ } from "./chunk-WOG7QWIT.js";
53
53
  import {
54
54
  isTelemetrySdkInitialized,
55
55
  shutdownTelemetry,
56
56
  uiTelemetryService
57
- } from "./chunk-CHY5C5T4.js";
57
+ } from "./chunk-SJ2CTIYH.js";
58
58
  import {
59
59
  ToolNames
60
- } from "./chunk-MTNTVOJR.js";
60
+ } from "./chunk-X3YGAX7V.js";
61
61
  import {
62
62
  FatalInputError,
63
63
  createDebugLogger
64
- } from "./chunk-AVQDCKNF.js";
64
+ } from "./chunk-22MNNNXE.js";
65
65
  import {
66
66
  init_esbuild_shims
67
67
  } from "./chunk-A4BMJM77.js";
@@ -98,8 +98,8 @@ var LOOP_TYPE_LABELS = {
98
98
  function formatLoopDetectedMessage(loopType) {
99
99
  const reason = loopType ? LOOP_TYPE_LABELS[loopType] : void 0;
100
100
  const detail = reason ? ` (${loopType}: ${reason})` : "";
101
- const isAlwaysOn = loopType === "turn_tool_call_cap" /* TURN_TOOL_CALL_CAP */ || loopType === "consecutive_identical_tool_calls" /* CONSECUTIVE_IDENTICAL_TOOL_CALLS */ || loopType === "shell_command_stagnation" /* SHELL_COMMAND_STAGNATION */ || loopType === "global_tool_call_duplicate" /* GLOBAL_TOOL_CALL_DUPLICATE */ || loopType === "invalid_tool_params_stagnation" /* INVALID_TOOL_PARAMS_STAGNATION */;
102
- const hint = isAlwaysOn ? " This is an always-on guard and cannot be disabled via `model.skipLoopDetection`." : " Set the `model.skipLoopDetection` setting to true to disable.";
101
+ const isAlwaysOn = loopType === "consecutive_identical_tool_calls" /* CONSECUTIVE_IDENTICAL_TOOL_CALLS */ || loopType === "shell_command_stagnation" /* SHELL_COMMAND_STAGNATION */ || loopType === "global_tool_call_duplicate" /* GLOBAL_TOOL_CALL_DUPLICATE */ || loopType === "invalid_tool_params_stagnation" /* INVALID_TOOL_PARAMS_STAGNATION */;
102
+ const hint = loopType === "turn_tool_call_cap" /* TURN_TOOL_CALL_CAP */ ? " Raise the `model.maxToolCallsPerTurn` setting to allow longer turns, or set it to 0 to disable the cap." : isAlwaysOn ? " This is an always-on guard and cannot be disabled via `model.skipLoopDetection`." : " Set the `model.skipLoopDetection` setting to true to disable.";
103
103
  return `Loop detection halted the run${detail}.${hint}`;
104
104
  }
105
105
  __name(formatLoopDetectedMessage, "formatLoopDetectedMessage");
@@ -23,28 +23,28 @@ import {
23
23
  } from "./chunk-OMX7CUOE.js";
24
24
  import {
25
25
  isAnyAutoMemPath
26
- } from "./chunk-MOUXUCXQ.js";
26
+ } from "./chunk-4KJ2BPIT.js";
27
27
  import {
28
28
  InstallationManager
29
- } from "./chunk-BZHLWC6T.js";
29
+ } from "./chunk-SUAKHHK7.js";
30
30
  import {
31
31
  STRUCTURED_OUTPUT_REDACTED_ARGS
32
- } from "./chunk-DG573EOO.js";
32
+ } from "./chunk-FEJ2FZ3U.js";
33
33
  import {
34
34
  BaseDeclarativeTool,
35
35
  BaseToolInvocation,
36
36
  ToolDisplayNames,
37
37
  ToolNames
38
- } from "./chunk-MTNTVOJR.js";
38
+ } from "./chunk-X3YGAX7V.js";
39
39
  import {
40
40
  atomicWriteFile,
41
41
  atomicWriteFileSync
42
- } from "./chunk-T42ACHFI.js";
42
+ } from "./chunk-7LTB54MK.js";
43
43
  import {
44
44
  convertSchema,
45
45
  runtimeDiagnostics,
46
46
  safeJsonParse
47
- } from "./chunk-YPCPZSZB.js";
47
+ } from "./chunk-DT3B47QP.js";
48
48
  import {
49
49
  require_lib
50
50
  } from "./chunk-IRJWHZWU.js";
@@ -70,7 +70,7 @@ import {
70
70
  setShellTracePropagation,
71
71
  shortenPath,
72
72
  unescapePath
73
- } from "./chunk-AVQDCKNF.js";
73
+ } from "./chunk-22MNNNXE.js";
74
74
  import {
75
75
  require_dist
76
76
  } from "./chunk-ZERZSAZL.js";
@@ -60124,6 +60124,10 @@ async function detectFileType(filePath) {
60124
60124
  return "text";
60125
60125
  }
60126
60126
  __name(detectFileType, "detectFileType");
60127
+ function isCacheableReadResult(result) {
60128
+ return typeof result.llmContent === "string" && result.originalLineCount !== void 0;
60129
+ }
60130
+ __name(isCacheableReadResult, "isCacheableReadResult");
60127
60131
  function mediaModalityKey(fileType) {
60128
60132
  if (fileType === "image" || fileType === "pdf" || fileType === "audio" || fileType === "video") {
60129
60133
  return fileType;
@@ -63605,7 +63609,7 @@ async function convertGeminiToolsToOpenAI(geminiTools, schemaCompliance = "auto"
63605
63609
  }
63606
63610
  if (actualTool.functionDeclarations) {
63607
63611
  for (const func of actualTool.functionDeclarations) {
63608
- if (func.name && func.description) {
63612
+ if (func.name) {
63609
63613
  let parameters;
63610
63614
  if (func.parametersJsonSchema) {
63611
63615
  const paramsCopy = {
@@ -63624,7 +63628,7 @@ async function convertGeminiToolsToOpenAI(geminiTools, schemaCompliance = "auto"
63624
63628
  type: "function",
63625
63629
  function: {
63626
63630
  name: func.name,
63627
- description: func.description,
63631
+ description: func.description ?? "",
63628
63632
  parameters
63629
63633
  }
63630
63634
  });
@@ -64131,21 +64135,22 @@ function convertOpenAITextToParts(text, requestContext, final = true) {
64131
64135
  return parseTaggedThinkingText(text);
64132
64136
  }
64133
64137
  __name(convertOpenAITextToParts, "convertOpenAITextToParts");
64134
- function hasThoughtPart(parts) {
64135
- return parts.some((part) => part.thought === true);
64136
- }
64137
- __name(hasThoughtPart, "hasThoughtPart");
64138
64138
  function convertOpenAIResponseToGemini(openaiResponse, requestContext) {
64139
64139
  const choice = openaiResponse.choices?.[0];
64140
64140
  const response = new GenerateContentResponse();
64141
64141
  if (choice) {
64142
64142
  const parts = [];
64143
- const textParts = choice.message.content ? convertOpenAITextToParts(choice.message.content, requestContext) : [];
64144
- const reasoningText = choice.message.reasoning_content ?? choice.message.reasoning;
64145
- if (reasoningText && !hasThoughtPart(textParts)) {
64146
- parts.push({ text: reasoningText, thought: true });
64143
+ if (!requestContext.responseParsingOptions?.taggedThinkingTags) {
64144
+ const reasoningText = choice.message.reasoning_content ?? choice.message.reasoning;
64145
+ if (reasoningText) {
64146
+ parts.push({ text: reasoningText, thought: true });
64147
+ }
64148
+ }
64149
+ if (choice.message.content) {
64150
+ parts.push(
64151
+ ...convertOpenAITextToParts(choice.message.content, requestContext)
64152
+ );
64147
64153
  }
64148
- parts.push(...textParts);
64149
64154
  if (choice.message.tool_calls) {
64150
64155
  for (const toolCall of choice.message.tool_calls) {
64151
64156
  if (toolCall.function) {
@@ -64219,8 +64224,22 @@ function convertOpenAIChunkToGemini(chunk, requestContext) {
64219
64224
  }
64220
64225
  if (choice) {
64221
64226
  const parts = [];
64222
- let contentParts = [];
64223
- const reasoningText = choice.delta?.reasoning_content ?? choice.delta?.reasoning;
64227
+ if (!requestContext.responseParsingOptions?.taggedThinkingTags) {
64228
+ const reasoningText = choice.delta?.reasoning_content ?? choice.delta?.reasoning;
64229
+ if (reasoningText) {
64230
+ const normalizedReasoningText = normalizeStreamingTextDelta(
64231
+ reasoningText,
64232
+ requestContext.reasoningDeltaState ??= {
64233
+ emittedText: "",
64234
+ emittedLength: 0,
64235
+ cumulativeMode: false
64236
+ }
64237
+ );
64238
+ if (normalizedReasoningText) {
64239
+ parts.push({ text: normalizedReasoningText, thought: true });
64240
+ }
64241
+ }
64242
+ }
64224
64243
  if (typeof choice.delta?.content === "string") {
64225
64244
  const normalizedContent = normalizeStreamingTextDelta(
64226
64245
  choice.delta.content,
@@ -64231,72 +64250,17 @@ function convertOpenAIChunkToGemini(chunk, requestContext) {
64231
64250
  }
64232
64251
  );
64233
64252
  if (normalizedContent || choice.finish_reason) {
64234
- contentParts = convertOpenAITextToParts(
64235
- normalizedContent,
64236
- requestContext,
64237
- Boolean(choice.finish_reason)
64253
+ parts.push(
64254
+ ...convertOpenAITextToParts(
64255
+ normalizedContent,
64256
+ requestContext,
64257
+ Boolean(choice.finish_reason)
64258
+ )
64238
64259
  );
64239
64260
  }
64240
64261
  } else if (choice.finish_reason) {
64241
- contentParts = convertOpenAITextToParts("", requestContext, true);
64242
- }
64243
- if (hasThoughtPart(contentParts)) {
64244
- requestContext.hasTaggedThinkingThought = true;
64245
- requestContext.pendingReasoningText = void 0;
64246
- debugLogger6.debug(
64247
- "convertOpenAIChunkToGemini: tagged thinking content emitted a thought; dropping buffered reasoning"
64248
- );
64249
- if (requestContext.pendingContentParts?.length) {
64250
- debugLogger6.debug(
64251
- `convertOpenAIChunkToGemini: flushing ${requestContext.pendingContentParts.length} buffered content part(s) before tagged content`
64252
- );
64253
- parts.push(...requestContext.pendingContentParts);
64254
- requestContext.pendingContentParts = void 0;
64255
- }
64256
- }
64257
- if (reasoningText && (!requestContext.responseParsingOptions?.taggedThinkingTags || !requestContext.hasTaggedThinkingThought)) {
64258
- const normalizedReasoningText = normalizeStreamingTextDelta(
64259
- reasoningText,
64260
- requestContext.reasoningDeltaState ??= {
64261
- emittedText: "",
64262
- emittedLength: 0,
64263
- cumulativeMode: false
64264
- }
64265
- );
64266
- if (normalizedReasoningText && !requestContext.responseParsingOptions?.taggedThinkingTags) {
64267
- parts.push({ text: normalizedReasoningText, thought: true });
64268
- } else if (normalizedReasoningText && !requestContext.hasTaggedThinkingThought) {
64269
- requestContext.pendingReasoningText = (requestContext.pendingReasoningText ?? "") + normalizedReasoningText;
64270
- debugLogger6.debug(
64271
- `convertOpenAIChunkToGemini: buffered reasoning text (${requestContext.pendingReasoningText.length} chars) for tagged stream`
64272
- );
64273
- }
64262
+ parts.push(...convertOpenAITextToParts("", requestContext, true));
64274
64263
  }
64275
- if (requestContext.responseParsingOptions?.taggedThinkingTags && !requestContext.hasTaggedThinkingThought && requestContext.pendingReasoningText && contentParts.length) {
64276
- requestContext.pendingContentParts = [
64277
- ...requestContext.pendingContentParts ?? [],
64278
- ...contentParts
64279
- ];
64280
- debugLogger6.debug(
64281
- `convertOpenAIChunkToGemini: buffered ${contentParts.length} content part(s) behind pending reasoning`
64282
- );
64283
- contentParts = [];
64284
- }
64285
- if (choice.finish_reason && requestContext.responseParsingOptions?.taggedThinkingTags && !requestContext.hasTaggedThinkingThought && requestContext.pendingReasoningText) {
64286
- debugLogger6.debug(
64287
- "convertOpenAIChunkToGemini: flushing buffered reasoning for tagged stream with no tagged thought"
64288
- );
64289
- parts.push({ text: requestContext.pendingReasoningText, thought: true });
64290
- requestContext.pendingReasoningText = void 0;
64291
- }
64292
- if (choice.finish_reason && requestContext.pendingContentParts?.length) {
64293
- debugLogger6.debug(
64294
- `convertOpenAIChunkToGemini: flushing ${requestContext.pendingContentParts.length} buffered content part(s) on stream finish`
64295
- );
64296
- parts.push(...requestContext.pendingContentParts);
64297
- requestContext.pendingContentParts = void 0;
64298
- }
64299
- parts.push(...contentParts);
64300
64264
  if (choice.delta?.tool_calls) {
64301
64265
  for (const toolCall of choice.delta.tool_calls) {
64302
64266
  const index = toolCall.index ?? 0;
@@ -67637,6 +67601,7 @@ var DAEMON_PROMPT_QUEUE_WAIT = `${SERVICE_NAME}.daemon.prompt.queue_wait`;
67637
67601
  var DAEMON_PROMPT_DURATION = `${SERVICE_NAME}.daemon.prompt.duration`;
67638
67602
  var DAEMON_BRIDGE_ERROR_COUNT = `${SERVICE_NAME}.daemon.bridge.error.count`;
67639
67603
  var DAEMON_CANCEL_COUNT = `${SERVICE_NAME}.daemon.cancel.count`;
67604
+ var DAEMON_PIPE_MESSAGE_BYTES = `${SERVICE_NAME}.daemon.pipe.message_bytes`;
67640
67605
  var DAEMON_SSE_ACTIVE = `${SERVICE_NAME}.daemon.sse.active`;
67641
67606
  var DAEMON_PROCESS_HEAP_USED = `${SERVICE_NAME}.daemon.process.heap_used`;
67642
67607
  var KNOWN_ERROR_TYPES = /* @__PURE__ */ new Set([
@@ -67669,6 +67634,7 @@ var promptQueueWaitHistogram;
67669
67634
  var promptDurationHistogram;
67670
67635
  var bridgeErrorCounter;
67671
67636
  var cancelCounter;
67637
+ var pipeMessageBytesHistogram;
67672
67638
  function normalizeErrorType(err) {
67673
67639
  const name = err instanceof Error ? err.name : typeof err;
67674
67640
  return KNOWN_ERROR_TYPES.has(name) ? name : "unknown";
@@ -67764,6 +67730,24 @@ function initializeDaemonMetrics() {
67764
67730
  description: "Daemon cancel request count.",
67765
67731
  valueType: ValueType.INT
67766
67732
  });
67733
+ pipeMessageBytesHistogram = meter.createHistogram(DAEMON_PIPE_MESSAGE_BYTES, {
67734
+ description: "Daemon ACP child pipe message payload size in bytes.",
67735
+ unit: "By",
67736
+ valueType: ValueType.INT,
67737
+ advice: {
67738
+ explicitBucketBoundaries: [
67739
+ 256,
67740
+ 1024,
67741
+ 4096,
67742
+ 16384,
67743
+ 65536,
67744
+ 262144,
67745
+ 1048576,
67746
+ 4194304,
67747
+ 16777216
67748
+ ]
67749
+ }
67750
+ });
67767
67751
  initialized = true;
67768
67752
  }
67769
67753
  __name(initializeDaemonMetrics, "initializeDaemonMetrics");
@@ -67843,6 +67827,114 @@ function recordDaemonCancel() {
67843
67827
  cancelCounter?.add(1);
67844
67828
  }
67845
67829
  __name(recordDaemonCancel, "recordDaemonCancel");
67830
+ function recordDaemonPipeMessage(direction, bytes) {
67831
+ if (!initialized) return;
67832
+ pipeMessageBytesHistogram?.record(bytes, { direction });
67833
+ }
67834
+ __name(recordDaemonPipeMessage, "recordDaemonPipeMessage");
67835
+
67836
+ // packages/core/src/telemetry/event-loop-lag.ts
67837
+ init_esbuild_shims();
67838
+ import { monitorEventLoopDelay } from "node:perf_hooks";
67839
+ var DEFAULT_RESOLUTION_MS = 20;
67840
+ var DEFAULT_STALL_THRESHOLD_MS = 1e3;
67841
+ var NS_PER_MS = 1e6;
67842
+ function startEventLoopLagMonitor(options = {}) {
67843
+ const resolutionMs = positiveFiniteOrDefault(
67844
+ options.resolutionMs,
67845
+ DEFAULT_RESOLUTION_MS
67846
+ );
67847
+ const stallThresholdMs = positiveFiniteOrDefault(
67848
+ options.stallThresholdMs,
67849
+ DEFAULT_STALL_THRESHOLD_MS
67850
+ );
67851
+ const histogram = monitorEventLoopDelay({ resolution: resolutionMs });
67852
+ histogram.enable();
67853
+ let disposed = false;
67854
+ let lastReportedMaxMs = 0;
67855
+ const readMaxMs = /* @__PURE__ */ __name(() => nsToMs(histogram.max), "readMaxMs");
67856
+ const checkForNewMaxStall = /* @__PURE__ */ __name(() => {
67857
+ if (disposed || !options.onNewMaxStall) return;
67858
+ const maxMs = readMaxMs();
67859
+ if (maxMs >= stallThresholdMs && maxMs > lastReportedMaxMs) {
67860
+ lastReportedMaxMs = maxMs;
67861
+ try {
67862
+ options.onNewMaxStall(maxMs);
67863
+ } catch {
67864
+ }
67865
+ }
67866
+ }, "checkForNewMaxStall");
67867
+ const interval = options.onNewMaxStall !== void 0 ? setInterval(checkForNewMaxStall, resolutionMs) : void 0;
67868
+ interval?.unref();
67869
+ return {
67870
+ snapshot() {
67871
+ return {
67872
+ meanMs: nsToMs(histogram.mean),
67873
+ p50Ms: nsToMs(histogram.percentile(50)),
67874
+ p99Ms: nsToMs(histogram.percentile(99)),
67875
+ maxMs: readMaxMs()
67876
+ };
67877
+ },
67878
+ dispose() {
67879
+ if (disposed) return;
67880
+ disposed = true;
67881
+ if (interval) {
67882
+ clearInterval(interval);
67883
+ }
67884
+ histogram.disable();
67885
+ }
67886
+ };
67887
+ }
67888
+ __name(startEventLoopLagMonitor, "startEventLoopLagMonitor");
67889
+ function nsToMs(value) {
67890
+ return Number.isFinite(value) ? value / NS_PER_MS : 0;
67891
+ }
67892
+ __name(nsToMs, "nsToMs");
67893
+ function positiveFiniteOrDefault(value, fallback) {
67894
+ return value !== void 0 && Number.isFinite(value) && value > 0 ? value : fallback;
67895
+ }
67896
+ __name(positiveFiniteOrDefault, "positiveFiniteOrDefault");
67897
+
67898
+ // packages/core/src/telemetry/event-loop-lag-metrics.ts
67899
+ init_esbuild_shims();
67900
+ init_esm();
67901
+ var DAEMON_EVENT_LOOP_LAG = `${SERVICE_NAME}.daemon.event_loop.lag`;
67902
+ var ACP_EVENT_LOOP_LAG = `${SERVICE_NAME}.acp.event_loop.lag`;
67903
+ var daemonGaugeRegistered = false;
67904
+ var acpGaugeRegistered = false;
67905
+ function registerDaemonEventLoopLagGauge(read2) {
67906
+ if (daemonGaugeRegistered) return;
67907
+ daemonGaugeRegistered = registerEventLoopLagGauge(
67908
+ DAEMON_EVENT_LOOP_LAG,
67909
+ read2
67910
+ );
67911
+ }
67912
+ __name(registerDaemonEventLoopLagGauge, "registerDaemonEventLoopLagGauge");
67913
+ function registerAcpEventLoopLagGauge(read2) {
67914
+ if (acpGaugeRegistered) return;
67915
+ acpGaugeRegistered = registerEventLoopLagGauge(ACP_EVENT_LOOP_LAG, read2);
67916
+ }
67917
+ __name(registerAcpEventLoopLagGauge, "registerAcpEventLoopLagGauge");
67918
+ function registerEventLoopLagGauge(name, read2) {
67919
+ const meter = getMeter();
67920
+ if (!meter) return false;
67921
+ meter.createObservableGauge(name, {
67922
+ description: "Event loop lag in milliseconds.",
67923
+ unit: "ms",
67924
+ valueType: ValueType.DOUBLE
67925
+ }).addCallback((result) => {
67926
+ try {
67927
+ const snapshot = read2();
67928
+ result.observe(snapshot.meanMs, { stat: "mean" });
67929
+ result.observe(snapshot.p50Ms, { stat: "p50" });
67930
+ result.observe(snapshot.p99Ms, { stat: "p99" });
67931
+ result.observe(snapshot.maxMs, { stat: "max" });
67932
+ } catch {
67933
+ }
67934
+ });
67935
+ return true;
67936
+ }
67937
+ __name(registerEventLoopLagGauge, "registerEventLoopLagGauge");
67846
67938
 
67847
67939
  // packages/core/src/telemetry/index.ts
67848
67940
  var TelemetryTarget = /* @__PURE__ */ ((TelemetryTarget2) => {
@@ -68959,11 +69051,11 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
68959
69051
  let baseGenerator;
68960
69052
  try {
68961
69053
  if (authType === "openai" /* USE_OPENAI */) {
68962
- const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-EXR3ZL3Z.js");
69054
+ const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-NULJROYV.js");
68963
69055
  baseGenerator = createOpenAIContentGenerator(generatorConfig, config);
68964
69056
  } else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
68965
- const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-LWLA6MQG.js");
68966
- const { QwenContentGenerator } = await import("./qwenContentGenerator-A7B6J4U7.js");
69057
+ const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-ZV7YLMND.js");
69058
+ const { QwenContentGenerator } = await import("./qwenContentGenerator-KLSURVNH.js");
68967
69059
  try {
68968
69060
  const qwenClient = await getQwenOauthClient(
68969
69061
  config,
@@ -68981,10 +69073,10 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
68981
69073
  throw new Error(error instanceof Error ? error.message : String(error));
68982
69074
  }
68983
69075
  } else if (authType === "anthropic" /* USE_ANTHROPIC */) {
68984
- const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-WL3LJOUB.js");
69076
+ const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-INXXI4PW.js");
68985
69077
  baseGenerator = createAnthropicContentGenerator(generatorConfig, config);
68986
69078
  } else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
68987
- const { createGeminiContentGenerator } = await import("./geminiContentGenerator-MZDVHVZH.js");
69079
+ const { createGeminiContentGenerator } = await import("./geminiContentGenerator-5EG3QEJM.js");
68988
69080
  baseGenerator = createGeminiContentGenerator(generatorConfig, config);
68989
69081
  } else {
68990
69082
  throw new Error(
@@ -71573,7 +71665,7 @@ var ReadFileToolInvocation = class extends BaseToolInvocation {
71573
71665
  };
71574
71666
  }
71575
71667
  if (cacheEnabled && (result.stats ?? stats)) {
71576
- const cacheable = typeof result.llmContent === "string" && result.originalLineCount !== void 0;
71668
+ const cacheable = isCacheableReadResult(result);
71577
71669
  const recordStats = result.stats ?? stats;
71578
71670
  cache.recordRead(absPath, recordStats, {
71579
71671
  full: isFullRead && !result.isTruncated,
@@ -71811,6 +71903,7 @@ export {
71811
71903
  isWithinRoot,
71812
71904
  isBinaryFile,
71813
71905
  detectFileType,
71906
+ isCacheableReadResult,
71814
71907
  processSingleFileContent,
71815
71908
  fileExists,
71816
71909
  FileOperation,
@@ -72045,6 +72138,10 @@ export {
72045
72138
  recordDaemonPromptDuration,
72046
72139
  recordDaemonBridgeError,
72047
72140
  recordDaemonCancel,
72141
+ recordDaemonPipeMessage,
72142
+ startEventLoopLagMonitor,
72143
+ registerDaemonEventLoopLagGauge,
72144
+ registerAcpEventLoopLagGauge,
72048
72145
  TelemetryTarget,
72049
72146
  DEFAULT_TELEMETRY_TARGET,
72050
72147
  DEFAULT_OTLP_ENDPOINT,