@qwen-code/qwen-code 0.19.5 → 0.19.6-nightly.20260704.5dc2e1501

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 (235) 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 +9 -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-44K34KSF.js} +14 -14
  14. package/chunks/{StandaloneSessionPicker-MGUGB6PH.js → StandaloneSessionPicker-6WZYYTZE.js} +25 -25
  15. package/chunks/{acpAgent-4F36XM3X.js → acpAgent-2CMYPFHV.js} +346 -131
  16. package/chunks/{agent-IWBUZI6A.js → agent-UOEAYBCX.js} +11 -11
  17. package/chunks/{agent-headless-JUTICAYO.js → agent-headless-7SCVZZGJ.js} +11 -11
  18. package/chunks/{anthropicContentGenerator-WL3LJOUB.js → anthropicContentGenerator-H5ZOEENQ.js} +2 -2
  19. package/chunks/{artifact-tool-W76WC2JX.js → artifact-tool-SLYPWG3C.js} +15 -2
  20. package/chunks/{askUserQuestion-J3P6TH3V.js → askUserQuestion-OKPTECON.js} +1 -1
  21. package/chunks/{bridge-DHZHQ4UV.js → bridge-IGX2XPWV.js} +17 -16
  22. package/chunks/{channel-worker-supervisor-EVPAYNZ5.js → channel-worker-supervisor-JUYQ5Z4R.js} +5 -5
  23. package/chunks/{chunk-EROWZQN7.js → chunk-2HK52TS2.js} +6 -6
  24. package/chunks/chunk-3RW4AZJV.js +5063 -0
  25. package/chunks/chunk-3VJ7MT3N.js +111 -0
  26. package/chunks/{chunk-JJ6B3ZD3.js → chunk-3ZSJDRNO.js} +2 -2
  27. package/chunks/{chunk-SJVPSHXU.js → chunk-4OIKNWUQ.js} +4 -4
  28. package/chunks/{chunk-PPFWEV7G.js → chunk-4RQIB5UZ.js} +62 -62
  29. package/chunks/{chunk-MDBNFHIO.js → chunk-4YMVQKCZ.js} +3 -3
  30. package/chunks/{chunk-2YH27UNF.js → chunk-4YXBDLX7.js} +1 -1
  31. package/chunks/{chunk-6QVQZAW6.js → chunk-537ZUZEH.js} +1 -1
  32. package/chunks/{chunk-L7OJ3ZO3.js → chunk-5ES5YPED.js} +1 -1
  33. package/chunks/{chunk-UJT42DB6.js → chunk-5QC7Y5TJ.js} +5 -5
  34. package/chunks/{chunk-BC4R5C5R.js → chunk-5WYLPENX.js} +32 -6
  35. package/chunks/{chunk-7DMQRPC7.js → chunk-6BEOH4KK.js} +1 -1
  36. package/chunks/{chunk-CXBG27SF.js → chunk-6IAWPIQ6.js} +3 -2
  37. package/chunks/{chunk-RM3PGSGL.js → chunk-6SHO7WFF.js} +15 -2
  38. package/chunks/{chunk-CBJE2PLG.js → chunk-777PHAJF.js} +2 -2
  39. package/chunks/{chunk-NSSVORTQ.js → chunk-7UU2AGR4.js} +16 -12
  40. package/chunks/{chunk-RNGAT2Y2.js → chunk-AGLMKJH5.js} +1 -1
  41. package/chunks/{chunk-J3ERRYYI.js → chunk-AWSTZHHZ.js} +2 -2
  42. package/chunks/{chunk-6QTCOQX7.js → chunk-B5ZACOMA.js} +1967 -1399
  43. package/chunks/{chunk-R6RI2HIC.js → chunk-CLQPBI4H.js} +40 -13
  44. package/chunks/{chunk-SJBIFVD2.js → chunk-DMSNJDWG.js} +5 -1
  45. package/chunks/{chunk-KKQWC6WS.js → chunk-DNV4FSN5.js} +1 -1
  46. package/chunks/{chunk-Z7XNVNPM.js → chunk-EMSRFDBD.js} +1 -1
  47. package/chunks/{chunk-HISPEX42.js → chunk-G645A66S.js} +7 -7
  48. package/chunks/{chunk-WALEWZ44.js → chunk-H3GBYW5M.js} +1 -1
  49. package/chunks/{chunk-2Z43HUXT.js → chunk-HLKG6CZN.js} +3 -2
  50. package/chunks/{chunk-XKZXGIRM.js → chunk-HNGXPBWR.js} +2 -2
  51. package/chunks/{chunk-QHYITL6P.js → chunk-HXX7S2AE.js} +5 -11
  52. package/chunks/{chunk-XKSCTXPK.js → chunk-J6ABRKAB.js} +2 -1
  53. package/chunks/{chunk-DX3TKXNT.js → chunk-JA5KWZTJ.js} +1 -1
  54. package/chunks/{chunk-4MCC4XHH.js → chunk-KBKWNEPS.js} +38 -37
  55. package/chunks/{chunk-MNOXKSM2.js → chunk-KEKV2TOO.js} +1 -1
  56. package/chunks/{chunk-R3UWLLRQ.js → chunk-KP6O77UN.js} +1 -1
  57. package/chunks/{chunk-YTFBURQD.js → chunk-KYTQOCDE.js} +1 -1
  58. package/chunks/{chunk-TN6RT6EJ.js → chunk-LJUWNRJH.js} +16 -4
  59. package/chunks/{chunk-BPFJQGY7.js → chunk-LM3YCCZJ.js} +164 -5
  60. package/chunks/{chunk-G4M7FPNY.js → chunk-M6IUEDXM.js} +1 -1
  61. package/chunks/{chunk-MTNTVOJR.js → chunk-MJKMIQMK.js} +5 -2
  62. package/chunks/{chunk-2CAII5HD.js → chunk-MWGIMAYM.js} +1 -1
  63. package/chunks/{chunk-NDY7OENU.js → chunk-N3QDCSLP.js} +2 -2
  64. package/chunks/{chunk-IMAMNLY6.js → chunk-N6AGVKMC.js} +3 -3
  65. package/chunks/{chunk-WZ724G6K.js → chunk-NGCPNXJC.js} +5 -5
  66. package/chunks/{chunk-YXK4GPYO.js → chunk-NVFJSIAX.js} +29 -0
  67. package/chunks/{chunk-6KPZJJ6U.js → chunk-P2OIJOKP.js} +9 -9
  68. package/chunks/{chunk-RSBQS6M4.js → chunk-P2RRV2UB.js} +1 -1
  69. package/chunks/{chunk-NNEJEBCF.js → chunk-PGMCFUZS.js} +30 -21
  70. package/chunks/{chunk-CSPSJU5R.js → chunk-PNGENHT7.js} +16 -16
  71. package/chunks/{chunk-Y4UQT3PM.js → chunk-QQXG2BL6.js} +1 -1
  72. package/chunks/{chunk-M5ITDKSM.js → chunk-RUM2UEL3.js} +1 -1
  73. package/chunks/{chunk-DG573EOO.js → chunk-RZORUN6X.js} +1 -1
  74. package/chunks/{chunk-LHMZCIKL.js → chunk-SZFYG244.js} +3 -1
  75. package/chunks/{chunk-CHY5C5T4.js → chunk-TDMIHT6B.js} +171 -79
  76. package/chunks/{chunk-DRS2HTNT.js → chunk-TE6JTKY5.js} +5 -5
  77. package/chunks/chunk-U7UXWKGG.js +949 -0
  78. package/chunks/{chunk-JKGCBO3O.js → chunk-UPYORLKQ.js} +3 -3
  79. package/chunks/{chunk-UY2TCIZS.js → chunk-V5VTULL5.js} +2 -2
  80. package/chunks/{chunk-ZISMVA6U.js → chunk-WGCLCXAN.js} +1371 -24
  81. package/chunks/chunk-WSOGYJMT.js +5630 -0
  82. package/chunks/{chunk-SBMHB6N5.js → chunk-WWGZJJRG.js} +12 -12
  83. package/chunks/{chunk-DM4E337C.js → chunk-X3UQVEBR.js} +4 -4
  84. package/chunks/{chunk-K4I4STSL.js → chunk-XPOO5OMB.js} +2 -2
  85. package/chunks/{chunk-5B2WNM6V.js → chunk-ZI4MGBB5.js} +1 -1
  86. package/chunks/{chunk-OQHLUA2Y.js → chunk-ZLJKZ57K.js} +3 -3
  87. package/chunks/{chunk-YCU7QV7Q.js → chunk-ZZDAIAA6.js} +32 -0
  88. package/chunks/{computer-use-ON3JQUHW.js → computer-use-TQWGUBPQ.js} +11 -11
  89. package/chunks/{contextCommand-OGCG7W6N.js → contextCommand-XDK5RNWI.js} +13 -13
  90. package/chunks/{cron-create-6YTCOX6P.js → cron-create-7JYUDTUY.js} +20 -5
  91. package/chunks/{cron-delete-E3NIFSUK.js → cron-delete-YPULQQAK.js} +2 -2
  92. package/chunks/{cron-list-Q64MNQNE.js → cron-list-HJIW5MHP.js} +2 -2
  93. package/chunks/{daemon-EEB2RYOL.js → daemon-7XYW4BC3.js} +102 -0
  94. package/chunks/{daemon-status-provider-P72STMLB.js → daemon-status-provider-6UEN56WN.js} +20 -19
  95. package/chunks/{dist-AP5V4WYU.js → dist-AAO65DPC.js} +2 -2
  96. package/chunks/{dist-X4ZDE726.js → dist-ABQ7VWRR.js} +3 -3
  97. package/chunks/{dist-SNXOUPYS.js → dist-AW5ZYMUI.js} +2 -2
  98. package/chunks/{dist-Z57Q4YF5.js → dist-BV56HW3W.js} +276 -95
  99. package/chunks/{dist-IZP2VV4C.js → dist-JPSVN367.js} +2 -2
  100. package/chunks/{earlyInputCapture-DAFHSGVW.js → earlyInputCapture-7MNFMUJE.js} +11 -11
  101. package/chunks/{edit-3QFNCSZH.js → edit-HOC63PHG.js} +12 -12
  102. package/chunks/{en-M4EBUBNU.js → en-XR3S5VWY.js} +1 -0
  103. package/chunks/{enter-worktree-62EQQMLD.js → enter-worktree-THXLMUX2.js} +11 -11
  104. package/chunks/{enterPlanMode-VUQSE4EG.js → enterPlanMode-TW4WQVEI.js} +11 -11
  105. package/chunks/{errors-PW75PZXE.js → errors-NTNVSC6G.js} +13 -13
  106. package/chunks/{exit-worktree-VVNH7OVY.js → exit-worktree-CLL7RGAT.js} +11 -11
  107. package/chunks/{exitPlanMode-RUYRCYZW.js → exitPlanMode-BTZZ3QEL.js} +11 -11
  108. package/chunks/{fast-path-TFRJRTTR.js → fast-path-RYXBU6AS.js} +3 -3
  109. package/chunks/{fast-path-settings-UQLRFDQP.js → fast-path-settings-RCRXH2JG.js} +2 -2
  110. package/chunks/{gemini-XW7ZDUVR.js → gemini-36FE3OHS.js} +69 -64
  111. package/chunks/{geminiContentGenerator-MZDVHVZH.js → geminiContentGenerator-JEG2PANG.js} +1 -1
  112. package/chunks/{glob-WAY2PUWA.js → glob-EYVHOFCY.js} +11 -11
  113. package/chunks/{grep-W6CBKSYC.js → grep-TZY5TDGH.js} +11 -11
  114. package/chunks/{initializer-HK2XE6P2.js → initializer-HPF2RBSB.js} +16 -16
  115. package/chunks/{list-RVLIIKKL.js → list-THUTQ7B5.js} +18 -18
  116. package/chunks/{loadedSettingsAdapter-C63OUYZC.js → loadedSettingsAdapter-CUMWJNWJ.js} +16 -16
  117. package/chunks/{loop-wakeup-G2EHBRGR.js → loop-wakeup-34YK7T7O.js} +3 -3
  118. package/chunks/{ls-IDHUVSAG.js → ls-MPD5OJUX.js} +1 -1
  119. package/chunks/{lsp-FSRYXGFT.js → lsp-72PWTDW7.js} +1 -1
  120. package/chunks/{workspace-skills-status-ONEPXJV6.js → mcp-NQD5MT2T.js} +20 -16
  121. package/chunks/{monitor-FOG36ABM.js → monitor-PB7NVSG2.js} +11 -11
  122. package/chunks/{nonInteractiveCli-6BYQSJTB.js → nonInteractiveCli-F5FJXYQR.js} +46 -44
  123. package/chunks/{notebook-edit-GC6NXRCX.js → notebook-edit-LAK6OHS6.js} +12 -12
  124. package/chunks/{openaiContentGenerator-EXR3ZL3Z.js → openaiContentGenerator-GMMEY5PG.js} +6 -6
  125. package/chunks/{pidfile-FNZM2DDH.js → pidfile-NQ2YUNKI.js} +11 -11
  126. package/chunks/{qwenContentGenerator-A7B6J4U7.js → qwenContentGenerator-7XCBMQBM.js} +13 -13
  127. package/chunks/{read-file-6JL4ULMY.js → read-file-KUROJDUQ.js} +3 -3
  128. package/chunks/{read-mcp-resource-PIJF24RO.js → read-mcp-resource-OWOBJY72.js} +1 -1
  129. package/chunks/record-artifact-URK3YUDJ.js +343 -0
  130. package/chunks/{ripGrep-DIUGLJE5.js → ripGrep-USDWBX4L.js} +11 -11
  131. package/chunks/{run-qwen-serve-CME3AKM4.js → run-qwen-serve-WKCKS23N.js} +72 -28
  132. package/chunks/{scheduler-L7F6GDDT.js → scheduler-QR4F5TAH.js} +11 -11
  133. package/chunks/{send-message-33PYFMCT.js → send-message-L7OLQEKH.js} +2 -2
  134. package/chunks/{serve-SRCBOJGP.js → serve-2EIPX62G.js} +18 -18
  135. package/chunks/{server-QSQ45QFR.js → server-UJ7ZF5D7.js} +1184 -490
  136. package/chunks/{session-5DG6NXHZ.js → session-XB3CFJ6R.js} +48 -46
  137. package/chunks/{settings-3EEQI4MN.js → settings-DYVJFW5H.js} +15 -15
  138. package/chunks/{shell-B7FNYF5S.js → shell-IG7KGPLR.js} +11 -11
  139. package/chunks/{skill-AAOGHD5O.js → skill-RWX646DC.js} +4 -4
  140. package/chunks/{spawnChannel-3CBN3ZLK.js → spawnChannel-GWIJHDZ5.js} +15 -15
  141. package/chunks/{src-T5A7P7FS.js → src-IYODJOVK.js} +47 -21
  142. package/chunks/{startInteractiveUI-2FGEQ6AS.js → startInteractiveUI-PLEZAI44.js} +354 -152
  143. package/chunks/{syntheticOutput-YOSWIHDJ.js → syntheticOutput-J3MLCQAR.js} +2 -2
  144. package/chunks/{task-create-NHS2NGB3.js → task-create-ELEBZ7H2.js} +3 -3
  145. package/chunks/{task-list-5UIB564R.js → task-list-IEUZLF3Y.js} +1 -1
  146. package/chunks/{task-stop-HGXZ2VZ3.js → task-stop-QEZW3UDY.js} +1 -1
  147. package/chunks/{task-update-IYYWUILG.js → task-update-DW36J5P5.js} +3 -3
  148. package/chunks/{team-create-KDF6W6PV.js → team-create-RXRE7FCH.js} +11 -11
  149. package/chunks/{team-delete-FEKJCU4P.js → team-delete-SVITIMBO.js} +1 -1
  150. package/chunks/{team-plan-approval-PSFKQX7M.js → team-plan-approval-OJDMQXOK.js} +11 -11
  151. package/chunks/{theme-manager-5XOA2AO7.js → theme-manager-QBK6PZOQ.js} +11 -11
  152. package/chunks/{todoWrite-TKMVZ2HT.js → todoWrite-SFFQHZYY.js} +2 -2
  153. package/chunks/{tool-search-LFRILZXC.js → tool-search-EZQYPVFF.js} +4 -4
  154. package/chunks/{trustedFolders-7HQY6T6X.js → trustedFolders-GZDMSATB.js} +12 -12
  155. package/chunks/{validateNonInterActiveAuth-UC27B7BA.js → validateNonInterActiveAuth-AHXCFAV6.js} +43 -41
  156. package/chunks/version-KQ5CA4C5.js +10 -0
  157. package/chunks/{web-fetch-J4PIW36Q.js → web-fetch-SXAXJHIO.js} +2 -2
  158. package/chunks/{workflow-KUTESS6L.js → workflow-KUBRBYWH.js} +20 -13
  159. package/chunks/{workspace-providers-status-LJT5AQDS.js → workspace-providers-status-LRMZ4KYI.js} +18 -18
  160. package/chunks/{workspace-service-YOBYVDXH.js → workspace-service-5UYFHP42.js} +23 -23
  161. package/chunks/workspace-skills-status-TKLU5O2X.js +68 -0
  162. package/chunks/{write-file-FJYBZUHP.js → write-file-37LNLFQC.js} +12 -12
  163. package/chunks/yargs-B64EYTCF.js +10 -0
  164. package/chunks/{zh-SLZNSSZB.js → zh-FSVJTXA4.js} +1 -0
  165. package/chunks/{zh-TW-P53C2SL5.js → zh-TW-66MG4LWL.js} +1 -0
  166. package/cli-entry.js +81 -8
  167. package/cli.js +348 -55
  168. package/locales/en.js +1 -0
  169. package/locales/zh-TW.js +1 -0
  170. package/locales/zh.js +1 -0
  171. package/node_modules/@qwen-code/audio-capture/package.json +1 -1
  172. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  173. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  174. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  175. package/package.json +3 -3
  176. package/web-shell/assets/{arc-D_rAuMDd.js → arc-CUpe0ibu.js} +1 -1
  177. package/web-shell/assets/{architectureDiagram-3BPJPVTR-DUCzbHVo.js → architectureDiagram-3BPJPVTR-JvyrY_mK.js} +1 -1
  178. package/web-shell/assets/{blockDiagram-GPEHLZMM-BEEBt1LL.js → blockDiagram-GPEHLZMM-CK3Y_vom.js} +1 -1
  179. package/web-shell/assets/{c4Diagram-AAUBKEIU-5ZJ_DeFL.js → c4Diagram-AAUBKEIU-DprSnyrf.js} +1 -1
  180. package/web-shell/assets/channel-BAxQ2-aZ.js +1 -0
  181. package/web-shell/assets/{chunk-2J33WTMH-Cfw7EiLn.js → chunk-2J33WTMH-DJtRJPmu.js} +1 -1
  182. package/web-shell/assets/{chunk-4BX2VUAB-FGuZNCZY.js → chunk-4BX2VUAB-ON6Q2-BG.js} +1 -1
  183. package/web-shell/assets/{chunk-55IACEB6-CaBwYPBF.js → chunk-55IACEB6-c60ou5HZ.js} +1 -1
  184. package/web-shell/assets/{chunk-727SXJPM-BlR04OFz.js → chunk-727SXJPM-BamtPKxx.js} +1 -1
  185. package/web-shell/assets/{chunk-AQP2D5EJ-D3_mYJH5.js → chunk-AQP2D5EJ-CsVgpu-T.js} +1 -1
  186. package/web-shell/assets/{chunk-FMBD7UC4-7D4q4SbB.js → chunk-FMBD7UC4-vZrpjAx4.js} +1 -1
  187. package/web-shell/assets/{chunk-ND2GUHAM-BjX_Iwmr.js → chunk-ND2GUHAM-qxyNOd5t.js} +1 -1
  188. package/web-shell/assets/{chunk-QZHKN3VN-C3Hz_ZQh.js → chunk-QZHKN3VN-BvTJSM_S.js} +1 -1
  189. package/web-shell/assets/classDiagram-4FO5ZUOK-Cvd_xhZI.js +1 -0
  190. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvd_xhZI.js +1 -0
  191. package/web-shell/assets/{cose-bilkent-S5V4N54A-Ax4UycaT.js → cose-bilkent-S5V4N54A-1tXB4pju.js} +1 -1
  192. package/web-shell/assets/{dagre-BM42HDAG-C6hmPtGt.js → dagre-BM42HDAG-DglBzme8.js} +1 -1
  193. package/web-shell/assets/{diagram-2AECGRRQ-tXZnxjmw.js → diagram-2AECGRRQ-DEJpqsWz.js} +1 -1
  194. package/web-shell/assets/{diagram-5GNKFQAL-99dwIzQG.js → diagram-5GNKFQAL-CsQ1NrMG.js} +1 -1
  195. package/web-shell/assets/{diagram-KO2AKTUF-Bqhn0-2s.js → diagram-KO2AKTUF-Z-3codAi.js} +1 -1
  196. package/web-shell/assets/{diagram-LMA3HP47-DzThVSvo.js → diagram-LMA3HP47-mBuPTA2i.js} +1 -1
  197. package/web-shell/assets/{diagram-OG6HWLK6-DPE8vjln.js → diagram-OG6HWLK6-tcA3K3s9.js} +1 -1
  198. package/web-shell/assets/{erDiagram-TEJ5UH35-KzUKgQCV.js → erDiagram-TEJ5UH35-D9bXFRyZ.js} +1 -1
  199. package/web-shell/assets/{flowDiagram-I6XJVG4X-DBN-DXw5.js → flowDiagram-I6XJVG4X-Ck0Py04s.js} +1 -1
  200. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DuBsP9u8.js → ganttDiagram-6RSMTGT7-rOevCekE.js} +1 -1
  201. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BjWHMyKR.js → gitGraphDiagram-PVQCEYII-CoPQaLj0.js} +1 -1
  202. package/web-shell/assets/index-Cr7MYW6T.css +5 -0
  203. package/web-shell/assets/index-DCHPAUp3.js +730 -0
  204. package/web-shell/assets/{infoDiagram-5YYISTIA-BVux0vP6.js → infoDiagram-5YYISTIA-a77CUKoI.js} +1 -1
  205. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-2qzw7f--.js → ishikawaDiagram-YF4QCWOH-DlLgUAO-.js} +1 -1
  206. package/web-shell/assets/{journeyDiagram-JHISSGLW-Dnl65sxL.js → journeyDiagram-JHISSGLW-BXR5kVAZ.js} +1 -1
  207. package/web-shell/assets/{kanban-definition-UN3LZRKU-BElSQYtY.js → kanban-definition-UN3LZRKU-h5CoHZg7.js} +1 -1
  208. package/web-shell/assets/{linear-BjoycSSY.js → linear-BkaREbyD.js} +1 -1
  209. package/web-shell/assets/{mermaid.core-xe6bvMRz.js → mermaid.core-Bkagz0ng.js} +5 -5
  210. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D8DQgI4U.js → mindmap-definition-RKZ34NQL-D7EMKR_5.js} +1 -1
  211. package/web-shell/assets/{pieDiagram-4H26LBE5-Dwh7Gp7c.js → pieDiagram-4H26LBE5-DAmPOjsL.js} +1 -1
  212. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BXKNBln2.js → quadrantDiagram-W4KKPZXB-e4WFQkQu.js} +1 -1
  213. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BzaC3cIA.js → requirementDiagram-4Y6WPE33-v1zo7OiV.js} +1 -1
  214. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DP2t7eZk.js → sankeyDiagram-5OEKKPKP-Bstm4aW_.js} +1 -1
  215. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-XlFiWEYv.js → sequenceDiagram-3UESZ5HK-DzcZy6xN.js} +1 -1
  216. package/web-shell/assets/{stateDiagram-AJRCARHV-CupgUMJO.js → stateDiagram-AJRCARHV-BEJH6YbH.js} +1 -1
  217. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BopifCBI.js +1 -0
  218. package/web-shell/assets/{timeline-definition-PNZ67QCA-DstuGywa.js → timeline-definition-PNZ67QCA-TI1wH-Pm.js} +1 -1
  219. package/web-shell/assets/{vennDiagram-CIIHVFJN-CnbNp6zu.js → vennDiagram-CIIHVFJN-YaH8VDMS.js} +1 -1
  220. package/web-shell/assets/{wardley-L42UT6IY-DnvoHq6R.js → wardley-L42UT6IY-B80co7OP.js} +1 -1
  221. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Cz0xHEWB.js → wardleyDiagram-YWT4CUSO-4fHNDEMl.js} +1 -1
  222. package/web-shell/assets/{xychartDiagram-2RQKCTM6-p36gfo88.js → xychartDiagram-2RQKCTM6-DT3q4Z3J.js} +1 -1
  223. package/web-shell/index.html +2 -2
  224. package/bundled/loop/SKILL.test.ts +0 -119
  225. package/bundled/loop/autonomous-loop.test.ts +0 -59
  226. package/bundled/loop/loop-task-file.test.ts +0 -1064
  227. package/bundled/loop/loop-tick-resolver.test.ts +0 -906
  228. package/chunks/chunk-EJ7BN3EN.js +0 -11396
  229. package/web-shell/assets/channel-B5ynH0q8.js +0 -1
  230. package/web-shell/assets/classDiagram-4FO5ZUOK-CK3ibywp.js +0 -1
  231. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CK3ibywp.js +0 -1
  232. package/web-shell/assets/index-9qfvU0_r.css +0 -5
  233. package/web-shell/assets/index-CWzDaQT5.js +0 -717
  234. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-By3E4QwN.js +0 -1
  235. package/chunks/{chunk-UFC57OYT.js → chunk-VRDMOSQS.js} +54 -54
@@ -0,0 +1,343 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ BaseDeclarativeTool,
5
+ BaseToolInvocation,
6
+ ToolDisplayNames,
7
+ ToolNames
8
+ } from "./chunk-MJKMIQMK.js";
9
+ import "./chunk-AVQDCKNF.js";
10
+ import "./chunk-Z2Z3GUXZ.js";
11
+ import {
12
+ init_esbuild_shims
13
+ } from "./chunk-A4BMJM77.js";
14
+ import {
15
+ __name
16
+ } from "./chunk-J2S4EL5Y.js";
17
+
18
+ // packages/core/src/tools/record-artifact.ts
19
+ init_esbuild_shims();
20
+ import path from "node:path";
21
+ var DESCRIPTION = `Registers a session artifact so clients can show it in an artifacts panel. Use it after creating a useful file, URL, image, report, notebook, or other intermediate result that the user may want to open later.
22
+
23
+ This tool only records metadata. It does not publish, upload, read, write, or verify the referenced resource. Provide exactly one locator: workspacePath, managedId, or url. Use the Artifact tool, not record_artifact, for published interactive HTML artifacts.`;
24
+ var RecordArtifactInvocation = class extends BaseToolInvocation {
25
+ static {
26
+ __name(this, "RecordArtifactInvocation");
27
+ }
28
+ getDescription() {
29
+ return `Recording artifact ${this.params.title}`;
30
+ }
31
+ execute(_signal) {
32
+ const artifact = {
33
+ title: this.params.title.trim(),
34
+ kind: this.params.kind,
35
+ storage: this.params.storage ?? inferStorage(this.params),
36
+ description: trimOptional(this.params.description),
37
+ workspacePath: trimOptional(this.params.workspacePath),
38
+ managedId: trimOptional(this.params.managedId),
39
+ url: trimOptional(this.params.url),
40
+ mimeType: trimOptional(this.params.mimeType),
41
+ sizeBytes: this.params.sizeBytes,
42
+ metadata: this.params.metadata
43
+ };
44
+ return Promise.resolve({
45
+ llmContent: `Recorded artifact "${artifact.title}".`,
46
+ returnDisplay: `Recorded artifact **${artifact.title}**.`,
47
+ artifacts: [artifact]
48
+ });
49
+ }
50
+ };
51
+ var RecordArtifactTool = class _RecordArtifactTool extends BaseDeclarativeTool {
52
+ static {
53
+ __name(this, "RecordArtifactTool");
54
+ }
55
+ static Name = ToolNames.RECORD_ARTIFACT;
56
+ constructor() {
57
+ super(
58
+ _RecordArtifactTool.Name,
59
+ ToolDisplayNames.RECORD_ARTIFACT,
60
+ DESCRIPTION,
61
+ "other" /* Other */,
62
+ {
63
+ type: "object",
64
+ properties: {
65
+ title: {
66
+ type: "string",
67
+ description: "Concise title shown in the client artifact list."
68
+ },
69
+ kind: {
70
+ type: "string",
71
+ enum: [
72
+ "file",
73
+ "link",
74
+ "html",
75
+ "image",
76
+ "video",
77
+ "audio",
78
+ "pdf",
79
+ "notebook",
80
+ "other"
81
+ ],
82
+ description: "Best-effort artifact type for client rendering."
83
+ },
84
+ storage: {
85
+ type: "string",
86
+ enum: ["workspace", "external_url", "managed"],
87
+ description: "Storage class. Omit it to infer from the provided locator."
88
+ },
89
+ description: {
90
+ type: "string",
91
+ description: "Optional short description for the user."
92
+ },
93
+ workspacePath: {
94
+ type: "string",
95
+ description: "Workspace-relative path for a file produced in the current workspace."
96
+ },
97
+ managedId: {
98
+ type: "string",
99
+ description: "Opaque identifier for a resource managed by an extension or tool."
100
+ },
101
+ url: {
102
+ type: "string",
103
+ description: "HTTP or HTTPS URL that the user can open for details."
104
+ },
105
+ mimeType: {
106
+ type: "string",
107
+ description: "Optional MIME type."
108
+ },
109
+ sizeBytes: {
110
+ type: "integer",
111
+ minimum: 0,
112
+ description: "Optional size in bytes."
113
+ },
114
+ metadata: {
115
+ type: "object",
116
+ additionalProperties: {
117
+ anyOf: [
118
+ { type: "string" },
119
+ { type: "number" },
120
+ { type: "boolean" },
121
+ { type: "null" }
122
+ ]
123
+ },
124
+ description: "Small primitive metadata bag for client-specific display hints."
125
+ }
126
+ },
127
+ required: ["title"]
128
+ },
129
+ true,
130
+ false,
131
+ true,
132
+ false,
133
+ "artifact url link file image report notebook dashboard"
134
+ );
135
+ }
136
+ validateToolParamValues(params) {
137
+ params.title = (params.title ?? "").trim();
138
+ const titleError = validateString(params.title, "title", 200, true);
139
+ if (titleError) {
140
+ return titleError;
141
+ }
142
+ const descriptionError = validateString(
143
+ params.description,
144
+ "description",
145
+ 1e3,
146
+ false
147
+ );
148
+ if (descriptionError) {
149
+ return descriptionError;
150
+ }
151
+ const mimeTypeError = validateString(
152
+ params.mimeType,
153
+ "mimeType",
154
+ 120,
155
+ false
156
+ );
157
+ if (mimeTypeError) {
158
+ return mimeTypeError;
159
+ }
160
+ if (params.kind && !isArtifactKind(params.kind)) {
161
+ return '"kind" must be a supported artifact kind';
162
+ }
163
+ if (params.storage && params.storage !== "workspace" && params.storage !== "external_url" && params.storage !== "managed") {
164
+ return '"storage" must be workspace, external_url, or managed';
165
+ }
166
+ const locators = [
167
+ trimOptional(params.workspacePath),
168
+ trimOptional(params.managedId),
169
+ trimOptional(params.url)
170
+ ].filter(Boolean);
171
+ if (locators.length !== 1) {
172
+ return 'Provide exactly one of "workspacePath", "managedId", or "url"';
173
+ }
174
+ const inferredStorage = inferStorage(params);
175
+ if (params.storage && params.storage !== inferredStorage) {
176
+ return `"storage" must be "${inferredStorage}" for the provided locator`;
177
+ }
178
+ if (params.workspacePath) {
179
+ const workspacePathError = validateWorkspacePath(params.workspacePath);
180
+ if (workspacePathError) {
181
+ return workspacePathError;
182
+ }
183
+ }
184
+ if (params.managedId) {
185
+ const managedIdError = validateManagedId(params.managedId);
186
+ if (managedIdError) {
187
+ return managedIdError;
188
+ }
189
+ }
190
+ if (params.url) {
191
+ try {
192
+ const parsed = new URL(params.url);
193
+ if (parsed.username || parsed.password) {
194
+ return '"url" must not include credentials';
195
+ }
196
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
197
+ return '"url" must use http or https';
198
+ }
199
+ } catch {
200
+ return '"url" must be a valid URL';
201
+ }
202
+ }
203
+ if (params.sizeBytes !== void 0 && (!Number.isSafeInteger(params.sizeBytes) || params.sizeBytes < 0)) {
204
+ return '"sizeBytes" must be a non-negative safe integer';
205
+ }
206
+ const metadataError = validateMetadata(params.metadata);
207
+ if (metadataError) {
208
+ return metadataError;
209
+ }
210
+ return null;
211
+ }
212
+ createInvocation(params) {
213
+ return new RecordArtifactInvocation(params);
214
+ }
215
+ };
216
+ function inferStorage(params) {
217
+ if (trimOptional(params.workspacePath)) {
218
+ return "workspace";
219
+ }
220
+ if (trimOptional(params.managedId)) {
221
+ return "managed";
222
+ }
223
+ return "external_url";
224
+ }
225
+ __name(inferStorage, "inferStorage");
226
+ function trimOptional(value) {
227
+ const trimmed = value?.trim();
228
+ return trimmed ? trimmed : void 0;
229
+ }
230
+ __name(trimOptional, "trimOptional");
231
+ function validateString(value, field, maxLength, required) {
232
+ const trimmed = value?.trim();
233
+ if (!trimmed) {
234
+ return required ? `Missing or empty "${field}"` : null;
235
+ }
236
+ if (trimmed.length > maxLength) {
237
+ return `"${field}" exceeds ${maxLength} characters`;
238
+ }
239
+ if (hasControlCharacter(trimmed, field === "description")) {
240
+ return `"${field}" contains control characters`;
241
+ }
242
+ if (isDisplayField(field) && hasUnsafeDisplayPayload(trimmed)) {
243
+ return `"${field}" contains unsafe markup`;
244
+ }
245
+ return null;
246
+ }
247
+ __name(validateString, "validateString");
248
+ function validateManagedId(value) {
249
+ const trimmed = value.trim();
250
+ const stringError = validateString(trimmed, "managedId", 200, true);
251
+ if (stringError) {
252
+ return stringError;
253
+ }
254
+ if (trimmed.includes("/") || trimmed.includes("\\") || trimmed.includes("..") || path.isAbsolute(trimmed) || path.win32.isAbsolute(trimmed)) {
255
+ return '"managedId" must be an opaque managed resource id';
256
+ }
257
+ return null;
258
+ }
259
+ __name(validateManagedId, "validateManagedId");
260
+ function isDisplayField(field) {
261
+ return field === "title" || field === "description" || field === "mimeType" || field === "workspacePath" || field === "managedId";
262
+ }
263
+ __name(isDisplayField, "isDisplayField");
264
+ function hasControlCharacter(value, allowLineWhitespace = false) {
265
+ for (let i = 0; i < value.length; i++) {
266
+ const code = value.charCodeAt(i);
267
+ if (allowLineWhitespace && (code === 9 || code === 10 || code === 13)) {
268
+ continue;
269
+ }
270
+ if (code <= 31 || code === 127 || code >= 8203 && code <= 8207 || code === 8232 || code === 8233 || code >= 8234 && code <= 8238 || code >= 8294 && code <= 8297 || code === 65279) {
271
+ return true;
272
+ }
273
+ }
274
+ return false;
275
+ }
276
+ __name(hasControlCharacter, "hasControlCharacter");
277
+ function hasUnsafeDisplayPayload(value) {
278
+ return /<\s*\/?[a-z!]|&(?:#[0-9]+|#x[0-9a-f]+|[a-z][a-z0-9]+);|javascript\s*:|data\s*:\s*(?:text\/(?:html|javascript)|application\/javascript|image\/svg\+xml)/i.test(
279
+ value
280
+ ) || /(?:^|[\s"'`<])on[a-z][a-z0-9-]*\s*=/i.test(value);
281
+ }
282
+ __name(hasUnsafeDisplayPayload, "hasUnsafeDisplayPayload");
283
+ function validateWorkspacePath(value) {
284
+ const trimmed = value.trim();
285
+ const stringError = validateString(trimmed, "workspacePath", 500, true);
286
+ if (stringError) {
287
+ return stringError;
288
+ }
289
+ if (path.isAbsolute(trimmed)) {
290
+ return '"workspacePath" must be relative to the workspace';
291
+ }
292
+ const normalized = path.normalize(trimmed);
293
+ if (normalized === ".." || normalized.startsWith(`..${path.sep}`) || path.isAbsolute(normalized)) {
294
+ return '"workspacePath" must stay inside the workspace';
295
+ }
296
+ return null;
297
+ }
298
+ __name(validateWorkspacePath, "validateWorkspacePath");
299
+ function validateMetadata(metadata) {
300
+ if (metadata === void 0) {
301
+ return null;
302
+ }
303
+ if (typeof metadata !== "object" || metadata === null || Array.isArray(metadata)) {
304
+ return '"metadata" must be an object';
305
+ }
306
+ for (const [key, value] of Object.entries(metadata)) {
307
+ if (!key) {
308
+ return '"metadata" keys must not be empty';
309
+ }
310
+ if (key.length > 120) {
311
+ return '"metadata" keys must be 120 characters or fewer';
312
+ }
313
+ if (hasControlCharacter(key) || hasUnsafeDisplayPayload(key)) {
314
+ return '"metadata" keys contain unsafe content';
315
+ }
316
+ if (value !== null && typeof value !== "string" && typeof value !== "number" && typeof value !== "boolean") {
317
+ return '"metadata" values must be primitive';
318
+ }
319
+ if (typeof value === "number" && !Number.isFinite(value)) {
320
+ return '"metadata" numbers must be finite';
321
+ }
322
+ if (typeof value === "string" && (hasControlCharacter(value) || hasUnsafeDisplayPayload(value))) {
323
+ return '"metadata" string values contain unsafe content';
324
+ }
325
+ }
326
+ if (Buffer.byteLength(JSON.stringify(metadata), "utf8") > 4096) {
327
+ return '"metadata" must be 4096 bytes or fewer';
328
+ }
329
+ return null;
330
+ }
331
+ __name(validateMetadata, "validateMetadata");
332
+ function isArtifactKind(kind) {
333
+ return kind === "file" || kind === "link" || kind === "html" || kind === "image" || kind === "video" || kind === "audio" || kind === "pdf" || kind === "notebook" || kind === "other";
334
+ }
335
+ __name(isArtifactKind, "isArtifactKind");
336
+ export {
337
+ RecordArtifactTool
338
+ };
339
+ /**
340
+ * @license
341
+ * Copyright 2025 Google LLC
342
+ * SPDX-License-Identifier: Apache-2.0
343
+ */
@@ -3,42 +3,42 @@
3
3
  import {
4
4
  RipGrepTool,
5
5
  _resetRipGrepCachesForTest
6
- } from "./chunk-6QTCOQX7.js";
6
+ } from "./chunk-B5ZACOMA.js";
7
7
  import "./chunk-5P5XGNYH.js";
8
- import "./chunk-K5PGHDBN.js";
9
8
  import "./chunk-SKAZWEV5.js";
9
+ import "./chunk-K5PGHDBN.js";
10
+ import "./chunk-CLQPBI4H.js";
10
11
  import "./chunk-QOMAHFYI.js";
11
12
  import "./chunk-G7OQ3RFJ.js";
12
13
  import "./chunk-LKWAVAB5.js";
13
- import "./chunk-L7OJ3ZO3.js";
14
- import "./chunk-R6RI2HIC.js";
14
+ import "./chunk-5ES5YPED.js";
15
15
  import "./chunk-2MPVVENX.js";
16
16
  import "./chunk-ZTQ26VBE.js";
17
- import "./chunk-SJBIFVD2.js";
17
+ import "./chunk-DMSNJDWG.js";
18
18
  import "./chunk-MLZQVCF3.js";
19
19
  import "./chunk-LQ7TMOCE.js";
20
20
  import "./chunk-E5A7LHNN.js";
21
- import "./chunk-BPFJQGY7.js";
21
+ import "./chunk-LM3YCCZJ.js";
22
22
  import "./chunk-GO6LNQXT.js";
23
23
  import "./chunk-B236XPGF.js";
24
- import "./chunk-YXK4GPYO.js";
24
+ import "./chunk-NVFJSIAX.js";
25
25
  import "./chunk-TOAUDIS7.js";
26
26
  import "./chunk-NPQWQYU6.js";
27
- import "./chunk-CHY5C5T4.js";
27
+ import "./chunk-TDMIHT6B.js";
28
28
  import "./chunk-E6US47KI.js";
29
29
  import "./chunk-UWCTAVOD.js";
30
30
  import "./chunk-OFEVLU4C.js";
31
31
  import "./chunk-OMX7CUOE.js";
32
32
  import "./chunk-MOUXUCXQ.js";
33
33
  import "./chunk-BZHLWC6T.js";
34
- import "./chunk-DG573EOO.js";
35
- import "./chunk-MTNTVOJR.js";
34
+ import "./chunk-RZORUN6X.js";
35
+ import "./chunk-MJKMIQMK.js";
36
36
  import "./chunk-TENOUWY2.js";
37
37
  import "./chunk-GLPV75ES.js";
38
38
  import "./chunk-22IFUCVR.js";
39
39
  import "./chunk-T42ACHFI.js";
40
40
  import "./chunk-SIUQ3YYX.js";
41
- import "./chunk-YTFBURQD.js";
41
+ import "./chunk-KYTQOCDE.js";
42
42
  import "./chunk-YPCPZSZB.js";
43
43
  import "./chunk-IRJWHZWU.js";
44
44
  import "./chunk-SYCJMSIJ.js";
@@ -3,6 +3,9 @@
3
3
  import {
4
4
  findCliEntryPath
5
5
  } from "./chunk-AHNXYU4O.js";
6
+ import {
7
+ RUNTIME_STARTUP_CANCELLED_MESSAGE
8
+ } from "./chunk-GHOTR7HL.js";
6
9
  import {
7
10
  CAPABILITIES_SCHEMA_VERSION,
8
11
  ClientMcpSenderRegistry,
@@ -23,36 +26,33 @@ import {
23
26
  positiveFiniteOrNull,
24
27
  require_express,
25
28
  resolveWebShellDir
26
- } from "./chunk-YCU7QV7Q.js";
29
+ } from "./chunk-ZZDAIAA6.js";
27
30
  import {
28
31
  isLoopbackBind
29
32
  } from "./chunk-RNBYOUGV.js";
30
33
  import "./chunk-3HX5LZ6R.js";
31
34
  import "./chunk-7RYW5LQV.js";
32
35
  import {
33
- RUNTIME_STARTUP_CANCELLED_MESSAGE
34
- } from "./chunk-GHOTR7HL.js";
35
- import {
36
- getCliVersion
37
- } from "./chunk-RSBQS6M4.js";
38
- import "./chunk-EWALXUAD.js";
39
- import {
40
- canonicalizeWorkspace
41
- } from "./chunk-SEZC2725.js";
36
+ loadServeFastPathSettings,
37
+ preResolveServeFastPathHomeEnvOverrides
38
+ } from "./chunk-DNV4FSN5.js";
42
39
  import {
43
40
  QWEN_SERVER_TOKEN_ENV
44
41
  } from "./chunk-S6RLAIUR.js";
45
42
  import {
46
43
  channelSelectionNames
47
44
  } from "./chunk-MX2YXRER.js";
48
- import {
49
- loadServeFastPathSettings,
50
- preResolveServeFastPathHomeEnvOverrides
51
- } from "./chunk-KKQWC6WS.js";
52
45
  import {
53
46
  getGlobalQwenDirLite,
54
47
  resolveConfigPathLite
55
- } from "./chunk-PPFWEV7G.js";
48
+ } from "./chunk-4RQIB5UZ.js";
49
+ import "./chunk-EWALXUAD.js";
50
+ import {
51
+ canonicalizeWorkspace
52
+ } from "./chunk-SEZC2725.js";
53
+ import {
54
+ getCliVersion
55
+ } from "./chunk-P2RRV2UB.js";
56
56
  import {
57
57
  writeStderrLine,
58
58
  writeStdoutLine
@@ -531,8 +531,8 @@ __name(withSettingsLock, "withSettingsLock");
531
531
  var channelWorkerRuntimePromise;
532
532
  async function loadChannelWorkerRuntime() {
533
533
  channelWorkerRuntimePromise ??= Promise.all([
534
- import("./channel-worker-supervisor-EVPAYNZ5.js"),
535
- import("./pidfile-FNZM2DDH.js")
534
+ import("./channel-worker-supervisor-JUYQ5Z4R.js"),
535
+ import("./pidfile-NQ2YUNKI.js")
536
536
  ]).then(([supervisor, pidfile]) => ({
537
537
  createChannelWorkerSupervisor: supervisor.createChannelWorkerSupervisor,
538
538
  channelServicePidfile: pidfile
@@ -603,7 +603,7 @@ function shouldPreheatBridge(deps) {
603
603
  __name(shouldPreheatBridge, "shouldPreheatBridge");
604
604
  var coreRuntimePromise;
605
605
  function loadCoreRuntime() {
606
- coreRuntimePromise ??= import("./src-T5A7P7FS.js");
606
+ coreRuntimePromise ??= import("./src-IYODJOVK.js");
607
607
  return coreRuntimePromise;
608
608
  }
609
609
  __name(loadCoreRuntime, "loadCoreRuntime");
@@ -633,9 +633,9 @@ __name(resolveDaemonLogBaseDirForRun, "resolveDaemonLogBaseDirForRun");
633
633
  var settingsRuntimePromise;
634
634
  function loadSettingsRuntimeModules() {
635
635
  settingsRuntimePromise ??= Promise.all([
636
- import("./settings-3EEQI4MN.js"),
637
- import("./loadedSettingsAdapter-C63OUYZC.js"),
638
- import("./trustedFolders-7HQY6T6X.js")
636
+ import("./settings-DYVJFW5H.js"),
637
+ import("./loadedSettingsAdapter-CUMWJNWJ.js"),
638
+ import("./trustedFolders-GZDMSATB.js")
639
639
  ]).then(([settings, loadedSettingsAdapter, trustedFolders]) => ({
640
640
  settings,
641
641
  loadedSettingsAdapter,
@@ -655,14 +655,14 @@ async function loadServeRuntimeModules() {
655
655
  workspaceProvidersStatusModule,
656
656
  workspaceSkillsStatusModule
657
657
  ] = await Promise.all([
658
- import("./server-QSQ45QFR.js"),
659
- import("./bridge-DHZHQ4UV.js"),
660
- import("./spawnChannel-3CBN3ZLK.js"),
661
- import("./workspace-service-YOBYVDXH.js"),
658
+ import("./server-UJ7ZF5D7.js"),
659
+ import("./bridge-IGX2XPWV.js"),
660
+ import("./spawnChannel-GWIJHDZ5.js"),
661
+ import("./workspace-service-5UYFHP42.js"),
662
662
  import("./types-QX5C3CHJ.js"),
663
- import("./daemon-status-provider-P72STMLB.js"),
664
- import("./workspace-providers-status-LJT5AQDS.js"),
665
- import("./workspace-skills-status-ONEPXJV6.js")
663
+ import("./daemon-status-provider-6UEN56WN.js"),
664
+ import("./workspace-providers-status-LRMZ4KYI.js"),
665
+ import("./workspace-skills-status-TKLU5O2X.js")
666
666
  ]);
667
667
  return {
668
668
  createServeApp: serverModule.createServeApp,
@@ -1014,6 +1014,11 @@ function createBootstrapServeApp(input) {
1014
1014
  read: 0
1015
1015
  }
1016
1016
  },
1017
+ activity: {
1018
+ activePrompts: 0,
1019
+ lastActivityAt: null,
1020
+ idleSinceMs: null
1021
+ },
1017
1022
  process: process.memoryUsage()
1018
1023
  },
1019
1024
  ...detail.detail === "full" ? {
@@ -1445,6 +1450,7 @@ async function runQwenServe(optsIn, deps = {}) {
1445
1450
  let runtimeApp;
1446
1451
  let runtimeAppForCleanup;
1447
1452
  let bridgeRef = deps.bridge;
1453
+ let daemonEventLoopMonitor;
1448
1454
  let runtimeStartupError;
1449
1455
  let runtimeStarting;
1450
1456
  let markRuntimeReady;
@@ -1459,6 +1465,10 @@ async function runQwenServe(optsIn, deps = {}) {
1459
1465
  });
1460
1466
  void runtimeReady.catch(() => {
1461
1467
  });
1468
+ const disposeDaemonEventLoopMonitor = /* @__PURE__ */ __name(() => {
1469
+ daemonEventLoopMonitor?.dispose();
1470
+ daemonEventLoopMonitor = void 0;
1471
+ }, "disposeDaemonEventLoopMonitor");
1462
1472
  let channelWorker = createDisabledChannelWorkerSupervisor();
1463
1473
  const getChannelWorkerSnapshot = /* @__PURE__ */ __name(() => channelWorker.snapshot(), "getChannelWorkerSnapshot");
1464
1474
  const writeChannelWorkerPidfile = /* @__PURE__ */ __name((snapshot = channelWorker.snapshot(), options = {}) => {
@@ -1532,6 +1542,27 @@ async function runQwenServe(optsIn, deps = {}) {
1532
1542
  )
1533
1543
  );
1534
1544
  core.initializeDaemonMetrics();
1545
+ daemonEventLoopMonitor?.dispose();
1546
+ daemonEventLoopMonitor = core.startEventLoopLagMonitor({
1547
+ onNewMaxStall: /* @__PURE__ */ __name((maxMs) => {
1548
+ daemonLog.warn("daemon event loop stall detected", { maxMs });
1549
+ }, "onNewMaxStall")
1550
+ });
1551
+ const currentDaemonEventLoopMonitor = daemonEventLoopMonitor;
1552
+ core.registerDaemonEventLoopLagGauge(
1553
+ () => currentDaemonEventLoopMonitor.snapshot()
1554
+ );
1555
+ const pipeStats = {
1556
+ inbound: { count: 0, totalBytes: 0, maxBytes: 0 },
1557
+ outbound: { count: 0, totalBytes: 0, maxBytes: 0 }
1558
+ };
1559
+ const recordPipeMessage = /* @__PURE__ */ __name((direction, bytes) => {
1560
+ const stats = pipeStats[direction];
1561
+ stats.count += 1;
1562
+ stats.totalBytes += bytes;
1563
+ stats.maxBytes = Math.max(stats.maxBytes, bytes);
1564
+ core.recordDaemonPipeMessage(direction, bytes);
1565
+ }, "recordPipeMessage");
1535
1566
  const daemonTelemetry = core.createDaemonBridgeTelemetry();
1536
1567
  daemonTelemetry.metrics = {
1537
1568
  sessionLifecycle(action) {
@@ -1577,6 +1608,10 @@ async function runQwenServe(optsIn, deps = {}) {
1577
1608
  });
1578
1609
  const channelFactory = runtime.createSpawnChannelFactory({
1579
1610
  onDiagnosticLine: diagnosticSink,
1611
+ pipeHooks: {
1612
+ onMessageSent: /* @__PURE__ */ __name((bytes) => recordPipeMessage("outbound", bytes), "onMessageSent"),
1613
+ onMessageReceived: /* @__PURE__ */ __name((bytes) => recordPipeMessage("inbound", bytes), "onMessageReceived")
1614
+ },
1580
1615
  ...opts.experimentalLsp === true ? { extraArgs: ["--experimental-lsp"] } : {}
1581
1616
  });
1582
1617
  const statusProvider = runtime.createDaemonStatusProvider();
@@ -1697,6 +1732,13 @@ async function runQwenServe(optsIn, deps = {}) {
1697
1732
  fsFactory,
1698
1733
  daemonLog,
1699
1734
  getChannelWorkerSnapshot,
1735
+ getPerfSnapshot: /* @__PURE__ */ __name(() => ({
1736
+ eventLoop: currentDaemonEventLoopMonitor.snapshot(),
1737
+ pipe: {
1738
+ inbound: { ...pipeStats.inbound },
1739
+ outbound: { ...pipeStats.outbound }
1740
+ }
1741
+ }), "getPerfSnapshot"),
1700
1742
  workspace: workspaceService,
1701
1743
  // Reverse tool channel (#5626): the SAME registry wired into `bridge` above,
1702
1744
  // so the WS provider and the child-answering bridge share one sender map.
@@ -1951,6 +1993,7 @@ async function runQwenServe(optsIn, deps = {}) {
1951
1993
  writeStderrLine(`qwen serve: runtime startup failed: ${message}`);
1952
1994
  daemonLog.error("runtime startup failed", error);
1953
1995
  await stopChannelWorkerAfterFailedStartup();
1996
+ disposeDaemonEventLoopMonitor();
1954
1997
  removeCurrentServePidfile();
1955
1998
  await shutdownBridgeAfterFailedStartup(bridgeForCleanup ?? bridgeRef);
1956
1999
  markRuntimeFailed(error);
@@ -2163,6 +2206,7 @@ async function runQwenServe(optsIn, deps = {}) {
2163
2206
  rl.setDraining(true);
2164
2207
  rl.dispose();
2165
2208
  }
2209
+ disposeDaemonEventLoopMonitor();
2166
2210
  await channelWorker.stop().catch((err) => {
2167
2211
  daemonLog.error(
2168
2212
  "channel worker stop error",
@@ -6,42 +6,42 @@ import {
6
6
  import {
7
7
  FILE_HISTORY_DIR,
8
8
  getSubagentsRootDir
9
- } from "./chunk-6QTCOQX7.js";
9
+ } from "./chunk-B5ZACOMA.js";
10
10
  import "./chunk-5P5XGNYH.js";
11
- import "./chunk-K5PGHDBN.js";
12
11
  import "./chunk-SKAZWEV5.js";
12
+ import "./chunk-K5PGHDBN.js";
13
+ import "./chunk-CLQPBI4H.js";
13
14
  import "./chunk-QOMAHFYI.js";
14
15
  import "./chunk-G7OQ3RFJ.js";
15
16
  import "./chunk-LKWAVAB5.js";
16
- import "./chunk-L7OJ3ZO3.js";
17
- import "./chunk-R6RI2HIC.js";
17
+ import "./chunk-5ES5YPED.js";
18
18
  import "./chunk-2MPVVENX.js";
19
19
  import "./chunk-ZTQ26VBE.js";
20
- import "./chunk-SJBIFVD2.js";
20
+ import "./chunk-DMSNJDWG.js";
21
21
  import "./chunk-MLZQVCF3.js";
22
22
  import "./chunk-LQ7TMOCE.js";
23
23
  import "./chunk-E5A7LHNN.js";
24
- import "./chunk-BPFJQGY7.js";
24
+ import "./chunk-LM3YCCZJ.js";
25
25
  import "./chunk-GO6LNQXT.js";
26
26
  import "./chunk-B236XPGF.js";
27
- import "./chunk-YXK4GPYO.js";
27
+ import "./chunk-NVFJSIAX.js";
28
28
  import "./chunk-TOAUDIS7.js";
29
29
  import "./chunk-NPQWQYU6.js";
30
- import "./chunk-CHY5C5T4.js";
30
+ import "./chunk-TDMIHT6B.js";
31
31
  import "./chunk-E6US47KI.js";
32
32
  import "./chunk-UWCTAVOD.js";
33
33
  import "./chunk-OFEVLU4C.js";
34
34
  import "./chunk-OMX7CUOE.js";
35
35
  import "./chunk-MOUXUCXQ.js";
36
36
  import "./chunk-BZHLWC6T.js";
37
- import "./chunk-DG573EOO.js";
38
- import "./chunk-MTNTVOJR.js";
37
+ import "./chunk-RZORUN6X.js";
38
+ import "./chunk-MJKMIQMK.js";
39
39
  import "./chunk-TENOUWY2.js";
40
40
  import "./chunk-GLPV75ES.js";
41
41
  import "./chunk-22IFUCVR.js";
42
42
  import "./chunk-T42ACHFI.js";
43
43
  import "./chunk-SIUQ3YYX.js";
44
- import "./chunk-YTFBURQD.js";
44
+ import "./chunk-KYTQOCDE.js";
45
45
  import "./chunk-YPCPZSZB.js";
46
46
  import "./chunk-IRJWHZWU.js";
47
47
  import "./chunk-SYCJMSIJ.js";
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  getPlanRequiredTeammatePreApprovalMessage,
8
8
  isPlanRequiredTeammateAwaitingApproval
9
- } from "./chunk-BPFJQGY7.js";
9
+ } from "./chunk-LM3YCCZJ.js";
10
10
  import {
11
11
  getAgentName,
12
12
  isTeammate
@@ -16,7 +16,7 @@ import {
16
16
  BaseToolInvocation,
17
17
  ToolDisplayNames,
18
18
  ToolNames
19
- } from "./chunk-MTNTVOJR.js";
19
+ } from "./chunk-MJKMIQMK.js";
20
20
  import "./chunk-AVQDCKNF.js";
21
21
  import "./chunk-Z2Z3GUXZ.js";
22
22
  import {