@qwen-code/qwen-code 0.19.2 → 0.19.3-nightly.20260630.e00fe6a27

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 (286) hide show
  1. package/bundled/extension-creator/SKILL.md +357 -0
  2. package/bundled/loop/SKILL.md +21 -7
  3. package/bundled/loop/SKILL.test.ts +41 -0
  4. package/bundled/loop/loop-task-file.test.ts +1064 -0
  5. package/bundled/loop/loop-task-file.ts +404 -0
  6. package/bundled/loop/loop-tick-resolver.test.ts +665 -0
  7. package/bundled/loop/loop-tick-resolver.ts +347 -0
  8. package/bundled/qc-helper/SKILL.md +26 -19
  9. package/bundled/qc-helper/docs/configuration/auth.md +11 -11
  10. package/bundled/qc-helper/docs/configuration/model-providers.md +13 -13
  11. package/bundled/qc-helper/docs/configuration/settings.md +76 -75
  12. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
  13. package/bundled/qc-helper/docs/features/commands.md +108 -77
  14. package/bundled/qc-helper/docs/features/hooks.md +6 -1
  15. package/bundled/qc-helper/docs/features/memory.md +52 -0
  16. package/bundled/qc-helper/docs/qwen-serve.md +24 -2
  17. package/bundled/qc-helper/docs/support/tos-privacy.md +16 -3
  18. package/bundled/qc-helper/docs/support/troubleshooting.md +6 -0
  19. package/chunks/{MaxSizedBox-7RERNLFK.js → MaxSizedBox-T5X5MN5Q.js} +29 -27
  20. package/chunks/{StandaloneSessionPicker-S22XBSN6.js → StandaloneSessionPicker-P3E3WTOQ.js} +42 -37
  21. package/chunks/{acpAgent-4MCETHF2.js → acpAgent-QEP6DXFW.js} +864 -175
  22. package/chunks/{agent-K3ENVYSB.js → agent-UDANDUF7.js} +24 -23
  23. package/chunks/{agent-headless-HO3V3A3A.js → agent-headless-KYVSZHSO.js} +24 -23
  24. package/chunks/{anthropicContentGenerator-E3TQ5XJJ.js → anthropicContentGenerator-KWSJAQ7B.js} +33 -12
  25. package/chunks/{artifact-tool-QA4KRO3B.js → artifact-tool-D2X7G3C3.js} +2 -2
  26. package/chunks/{askUserQuestion-HMWXW6VN.js → askUserQuestion-UGETICJQ.js} +2 -2
  27. package/chunks/{bridge-4LV2HBH2.js → bridge-X42LXPTA.js} +31 -30
  28. package/chunks/{ca-7WC7ELX6.js → ca-IUFWESZL.js} +1 -0
  29. package/chunks/{chunk-JXQ23SNT.js → chunk-2JKEQWDZ.js} +623 -78
  30. package/chunks/{chunk-2TJ3YN6Q.js → chunk-2RJA6J57.js} +416 -401
  31. package/chunks/{chunk-3UALQ56H.js → chunk-3227DZO4.js} +1 -1
  32. package/chunks/{chunk-BGUDAULQ.js → chunk-3CPCDXFR.js} +5 -5
  33. package/chunks/{chunk-5RVSM6NW.js → chunk-3HUHAQF3.js} +1 -1
  34. package/chunks/{chunk-D5E5TMYH.js → chunk-3M4W4U5G.js} +16 -2
  35. package/chunks/{chunk-DBZUXSSV.js → chunk-4X7NIEQJ.js} +3 -3
  36. package/chunks/chunk-5GOVVXEV.js +73 -0
  37. package/chunks/{chunk-2BAQ3ACS.js → chunk-5SM4VT6V.js} +405 -5
  38. package/chunks/{chunk-NYOHZYHM.js → chunk-5XQ4A26L.js} +45 -3
  39. package/chunks/{chunk-CI5O6SQL.js → chunk-6FKEVYCD.js} +4 -4
  40. package/chunks/{chunk-ZD3NW5KL.js → chunk-7LM4XHPE.js} +63 -9
  41. package/chunks/chunk-7UNP2XM7.js +840 -0
  42. package/chunks/{chunk-OQHQHJRK.js → chunk-ARYCHZ4B.js} +151 -4775
  43. package/chunks/chunk-BC3C4F3Q.js +40 -0
  44. package/chunks/{chunk-CGEGHF2C.js → chunk-BKXBARJZ.js} +1 -1
  45. package/chunks/chunk-BMFMJINR.js +45 -0
  46. package/chunks/chunk-BOJWHRMX.js +11273 -0
  47. package/chunks/{chunk-CGOMICBE.js → chunk-BSZEQNUA.js} +34 -1
  48. package/chunks/{chunk-OIC6S73E.js → chunk-BUUQ5HPX.js} +1 -1
  49. package/chunks/{chunk-2BIF2NVV.js → chunk-BVSVIN45.js} +2 -2
  50. package/chunks/{chunk-TOEGRAVX.js → chunk-BX5YO7UW.js} +17 -5
  51. package/chunks/{chunk-4W4T77MO.js → chunk-BXVWV4GI.js} +109 -6
  52. package/chunks/{chunk-VQRYPFCV.js → chunk-CYHVPQYT.js} +10 -460
  53. package/chunks/{chunk-PRYMDRBV.js → chunk-DDMOU62Q.js} +1 -1
  54. package/chunks/{chunk-S566HKUS.js → chunk-DHXWNSJA.js} +15 -1
  55. package/chunks/{chunk-F6XNTYNE.js → chunk-E6XQPQXW.js} +30 -307
  56. package/chunks/{chunk-QBZ22PQX.js → chunk-EWALXUAD.js} +3 -1
  57. package/chunks/{chunk-EL5IHQON.js → chunk-EWYQFWYF.js} +6 -27
  58. package/chunks/{chunk-HG6YKEBI.js → chunk-F2DOT6UZ.js} +161 -30
  59. package/chunks/{chunk-JTYRZODB.js → chunk-FOOIZCWL.js} +16 -7
  60. package/chunks/{chunk-EX4W6ZYG.js → chunk-G5G4TFZ7.js} +1 -1
  61. package/chunks/{chunk-EW6C27XX.js → chunk-GEHVIWAT.js} +9 -3
  62. package/chunks/chunk-HEVBZSXG.js +4923 -0
  63. package/chunks/chunk-HFQ2XSE7.js +690 -0
  64. package/chunks/{chunk-PF523XJX.js → chunk-HPGTGMP3.js} +1 -1
  65. package/chunks/{chunk-OTBK43JR.js → chunk-HYCC3XM3.js} +1 -1
  66. package/chunks/{chunk-TMBPDHXD.js → chunk-I4H7PRWQ.js} +1 -1
  67. package/chunks/{chunk-EEEZIVFJ.js → chunk-JOLIREYR.js} +1 -1
  68. package/chunks/{chunk-TZM5JIAX.js → chunk-JYPQTRA3.js} +10 -7
  69. package/chunks/chunk-K5XU6E4T.js +167 -0
  70. package/chunks/{chunk-BS64PXY3.js → chunk-KFVU7ODN.js} +1 -1
  71. package/chunks/{chunk-3RJ3ZPPR.js → chunk-KKQWC6WS.js} +7 -7
  72. package/chunks/{chunk-3QFE4OTE.js → chunk-LBW7NW7X.js} +4 -4
  73. package/chunks/{chunk-Z7XXFPGP.js → chunk-LDWTYE33.js} +1 -1
  74. package/chunks/{chunk-EXMX5YHG.js → chunk-LP5E4YIH.js} +1 -1
  75. package/chunks/{chunk-ZUAXI2OA.js → chunk-M2U5NM24.js} +188 -11366
  76. package/chunks/{chunk-I5T6PIBQ.js → chunk-MBV2CTRL.js} +1010 -925
  77. package/chunks/{chunk-5JZLXFPD.js → chunk-MTHMXSNT.js} +11 -11
  78. package/chunks/{chunk-FPACXT7T.js → chunk-MTJVHQDP.js} +534 -164
  79. package/chunks/chunk-NDOC6M5S.js +481 -0
  80. package/chunks/{chunk-HGNSRCRB.js → chunk-NL4C3H6C.js} +1 -1
  81. package/chunks/{chunk-GZCJS5WH.js → chunk-O2VBQ3Y2.js} +2 -2
  82. package/chunks/{chunk-UN3C6GOR.js → chunk-PPFWEV7G.js} +10 -108
  83. package/chunks/{chunk-RS4HRC75.js → chunk-QI2CFVRF.js} +85 -8
  84. package/chunks/{chunk-XU5P23GN.js → chunk-QLDPRILK.js} +3 -3
  85. package/chunks/chunk-QYUE6W3T.js +123 -0
  86. package/chunks/{chunk-USGMPVOY.js → chunk-R3LHDWF2.js} +21 -12
  87. package/chunks/{chunk-BNXANYLH.js → chunk-RD6YJJJ6.js} +81 -1
  88. package/chunks/{chunk-PXFFKNCO.js → chunk-RIP623NO.js} +4877 -2469
  89. package/chunks/{chunk-XKBP7M7A.js → chunk-RYBSUGOR.js} +142 -30
  90. package/chunks/{chunk-BG4BIP7F.js → chunk-SBBN4BWR.js} +4 -2
  91. package/chunks/{chunk-T2VDEFUU.js → chunk-SKQZZVAV.js} +2 -2
  92. package/chunks/{chunk-5R4SBCX6.js → chunk-SL5MOGQH.js} +3 -3
  93. package/chunks/chunk-SMXULRAN.js +37 -0
  94. package/chunks/{chunk-WA5OJGFL.js → chunk-SS6WJMQK.js} +363 -76
  95. package/chunks/{chunk-UAARVVBI.js → chunk-TNWFHGN6.js} +1 -1
  96. package/chunks/{chunk-I2RFAW6Q.js → chunk-TT6Q3EN4.js} +7 -5
  97. package/chunks/chunk-UAKXW3DN.js +30 -0
  98. package/chunks/{chunk-C4K3FEQ2.js → chunk-UX4SGCGN.js} +32 -3
  99. package/chunks/{chunk-J6AW7O5D.js → chunk-WHDQZHRU.js} +2 -2
  100. package/chunks/{chunk-WGAEWQTF.js → chunk-WN6K47NR.js} +1 -2
  101. package/chunks/{chunk-UAARJR2G.js → chunk-WQT5SOI6.js} +2 -2
  102. package/chunks/{chunk-VYFMN7C6.js → chunk-WUMVIRTN.js} +225 -37
  103. package/chunks/{chunk-R36VMVEP.js → chunk-XJMKOTVV.js} +5 -5
  104. package/chunks/{chunk-TXVGVZYR.js → chunk-XJYUPHRC.js} +3 -3
  105. package/chunks/{chunk-2JD55C6G.js → chunk-Y6YMRS3U.js} +2 -2
  106. package/chunks/{chunk-LLFFKXZZ.js → chunk-YALKC62D.js} +56 -29
  107. package/chunks/{chunk-GYZQA2FO.js → chunk-YLZJCUH6.js} +1 -1
  108. package/chunks/chunk-YTFBURQD.js +313 -0
  109. package/chunks/{chunk-KBXLIVWQ.js → chunk-ZFPRYHWR.js} +2 -2
  110. package/chunks/{chunk-X6EDWN44.js → chunk-ZP6UKOPB.js} +1 -1
  111. package/chunks/{computer-use-6BBRNT6S.js → computer-use-LF2S6LUZ.js} +103 -49
  112. package/chunks/{contextCommand-UJAJ6N57.js → contextCommand-VPX5UG55.js} +26 -25
  113. package/chunks/{cron-create-4KQE6YLH.js → cron-create-SKEY55RG.js} +4 -4
  114. package/chunks/{cron-delete-THME66UP.js → cron-delete-I3NAT32Z.js} +6 -6
  115. package/chunks/{cron-list-7A54SJ5N.js → cron-list-6XRRL6TH.js} +5 -5
  116. package/chunks/{daemon-status-provider-CSL3BUOY.js → daemon-status-provider-5JAWZS4V.js} +34 -34
  117. package/chunks/{de-ACHALDED.js → de-EOW5PVHF.js} +1 -0
  118. package/chunks/{dist-BD27IA3L.js → dist-4FCNM6KJ.js} +2 -2
  119. package/chunks/{dist-OD2FY543.js → dist-O3H4PABL.js} +2 -2
  120. package/chunks/{dist-BOOH5JWN.js → dist-SCAAUWPS.js} +18 -4
  121. package/chunks/{dist-QHJRBCMP.js → dist-UKPWQJCL.js} +44 -2
  122. package/chunks/{dist-QFFZWACU.js → dist-VD7HXTML.js} +20 -9
  123. package/chunks/{earlyInputCapture-X6KMCSHD.js → earlyInputCapture-7FRQMU4P.js} +25 -24
  124. package/chunks/{edit-7J6WXARF.js → edit-REKJDIRL.js} +68 -27
  125. package/chunks/{en-NCUBOJOY.js → en-HPWEJBTR.js} +8 -0
  126. package/chunks/{enter-worktree-KULCKJPJ.js → enter-worktree-GBKUDCD3.js} +24 -23
  127. package/chunks/{enterPlanMode-H2CIOLMH.js → enterPlanMode-WB3Y4FGT.js} +24 -23
  128. package/chunks/{errors-6G2JYR54.js → errors-2XJDYO3M.js} +26 -25
  129. package/chunks/{exit-worktree-ECBWBVC5.js → exit-worktree-KKC7O2ZV.js} +24 -23
  130. package/chunks/{exitPlanMode-DQV56GTW.js → exitPlanMode-7HMS3TF7.js} +24 -23
  131. package/chunks/{fast-path-35JJFS3C.js → fast-path-XVNIYWGG.js} +4 -4
  132. package/chunks/{fast-path-settings-TSVI53EB.js → fast-path-settings-UQLRFDQP.js} +3 -2
  133. package/chunks/{fr-GVKZ27MF.js → fr-BN5NKSAC.js} +1 -0
  134. package/chunks/{gemini-NDTG7WAX.js → gemini-U5TPU3IQ.js} +210 -104
  135. package/chunks/{geminiContentGenerator-XTG6SFLA.js → geminiContentGenerator-ZVWRHXOO.js} +4 -4
  136. package/chunks/{glob-SJ2JBZK4.js → glob-FEJWIH2W.js} +24 -23
  137. package/chunks/{grep-BRMWFEWR.js → grep-KMP25IIA.js} +24 -23
  138. package/chunks/{headlessSafetyWarnings-LJ6FJX77.js → headlessSafetyWarnings-5DEDET4M.js} +24 -23
  139. package/chunks/{initializer-P5AXF7PV.js → initializer-FJTACLOH.js} +31 -28
  140. package/chunks/{ja-FKZ2WZ4D.js → ja-7DEUB2TS.js} +1 -0
  141. package/chunks/{keychain-token-storage-CSYMNRPP.js → keychain-token-storage-YLMDLKXT.js} +2 -2
  142. package/chunks/{list-6COK34BP.js → list-SCQXYJUW.js} +32 -29
  143. package/chunks/{loadedSettingsAdapter-XIUTN245.js → loadedSettingsAdapter-P6KPNAG7.js} +30 -27
  144. package/chunks/{loop-wakeup-33GPXJLA.js → loop-wakeup-FYEQEJUA.js} +7 -7
  145. package/chunks/{ls-BYQY7RVV.js → ls-R5WP4BGZ.js} +4 -4
  146. package/chunks/{lsp-X54RO4IV.js → lsp-GSICJMMW.js} +2 -2
  147. package/chunks/{monitor-DH7KFSJV.js → monitor-JU3HHHVY.js} +24 -23
  148. package/chunks/nonInteractiveCli-IZEKUHU3.js +100 -0
  149. package/chunks/{notebook-edit-D4R4ZLMA.js → notebook-edit-YHY3Z2QQ.js} +52 -23
  150. package/chunks/{openaiContentGenerator-F74IPQ6E.js → openaiContentGenerator-4WUVA3Q2.js} +13 -12
  151. package/chunks/{pt-SY5NCFGR.js → pt-TNZRNLQB.js} +1 -0
  152. package/chunks/{qwenContentGenerator-ATTK5P4D.js → qwenContentGenerator-MVYYR44B.js} +26 -25
  153. package/chunks/{qwenOAuth2-K4AASPCV.js → qwenOAuth2-6HNGHALT.js} +5 -4
  154. package/chunks/{read-file-767G23OY.js → read-file-NABEO2X4.js} +8 -8
  155. package/chunks/{read-mcp-resource-I5HCZJ6X.js → read-mcp-resource-DQQW7H7T.js} +2 -2
  156. package/chunks/{ripGrep-4OMMGSWX.js → ripGrep-YXLK6UTX.js} +24 -23
  157. package/chunks/{ru-FWNXJG4F.js → ru-NIAUBKCN.js} +1 -0
  158. package/chunks/{run-qwen-serve-REKSTYRA.js → run-qwen-serve-4B5QBMLQ.js} +144 -41
  159. package/chunks/{scheduler-UNTFDQLG.js → scheduler-XAKIYBDL.js} +24 -23
  160. package/chunks/{send-message-2DAFXEYP.js → send-message-EE4TWKVU.js} +2 -2
  161. package/chunks/{serve-KZ56QB5S.js → serve-4RXVLUKD.js} +30 -28
  162. package/chunks/{server-BV5TZUMU.js → server-7PA5QGIA.js} +11037 -8747
  163. package/chunks/{session-OIBXFSGD.js → session-WNVWRYAH.js} +194 -57
  164. package/chunks/{settings-WJTCBIRA.js → settings-YJH32TFF.js} +30 -27
  165. package/chunks/{shell-WC52IBHW.js → shell-YFLABOS5.js} +24 -23
  166. package/chunks/{skill-U7F7JR4M.js → skill-N3J7FUAY.js} +38 -11
  167. package/chunks/{spawnChannel-EI2E5BCW.js → spawnChannel-D6WVMFZJ.js} +26 -25
  168. package/chunks/{src-4F6FBZFI.js → src-IU5GDBEH.js} +88 -28
  169. package/chunks/{startInteractiveUI-SFRVB3CE.js → startInteractiveUI-QIPQTRT4.js} +2784 -2474
  170. package/chunks/{syntheticOutput-PPS3HDVA.js → syntheticOutput-T5YHQ6S2.js} +3 -3
  171. package/chunks/{task-create-OUYCA553.js → task-create-BLY7RHXX.js} +6 -6
  172. package/chunks/{task-list-WAX7I2IA.js → task-list-3QUYNVYR.js} +5 -5
  173. package/chunks/{task-stop-CAIL6FNH.js → task-stop-U4RATK2V.js} +2 -2
  174. package/chunks/{task-update-AHEO5OUT.js → task-update-U54O7KJX.js} +6 -6
  175. package/chunks/{team-create-3WC7CIIW.js → team-create-TP4CLLM3.js} +24 -23
  176. package/chunks/{team-delete-HGHFG23B.js → team-delete-LKBYPASD.js} +5 -5
  177. package/chunks/{theme-manager-DICFCT3P.js → theme-manager-N2TBIBZT.js} +25 -24
  178. package/chunks/{todoWrite-IFBMN3FH.js → todoWrite-OYXKTVYN.js} +4 -4
  179. package/chunks/{tool-search-L5K7HLER.js → tool-search-GBBSICYB.js} +101 -16
  180. package/chunks/trustedFolders-F7TBU5CD.js +76 -0
  181. package/chunks/types-QX5C3CHJ.js +12 -0
  182. package/chunks/{validateNonInterActiveAuth-GCH4Z6KI.js → validateNonInterActiveAuth-EQDQPSMI.js} +55 -50
  183. package/chunks/{web-fetch-B5IIQ5TT.js → web-fetch-PCVCML2X.js} +29 -15
  184. package/chunks/{workflow-OB3AND7I.js → workflow-ANJ4FYBK.js} +32 -30
  185. package/chunks/{workspace-providers-status-ZIR5EPOO.js → workspace-providers-status-462QQKQM.js} +32 -29
  186. package/chunks/workspace-service-VTG4G6CW.js +75 -0
  187. package/chunks/{write-file-SEXBNDZM.js → write-file-3P3WMQQW.js} +63 -27
  188. package/chunks/{zh-RBEGQVQT.js → zh-5EUYXASN.js} +8 -0
  189. package/chunks/{zh-TW-QGAVRXT3.js → zh-TW-TR3XYGE5.js} +8 -0
  190. package/cli-entry.js +20 -9
  191. package/cli.js +6 -6
  192. package/locales/ca.js +2 -0
  193. package/locales/de.js +2 -0
  194. package/locales/en.js +14 -0
  195. package/locales/fr.js +2 -0
  196. package/locales/ja.js +1 -0
  197. package/locales/pt.js +2 -0
  198. package/locales/ru.js +2 -0
  199. package/locales/zh-TW.js +12 -0
  200. package/locales/zh.js +12 -0
  201. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +35 -0
  202. package/node_modules/@qwen-code/audio-capture/dist/index.js +48 -0
  203. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +1 -0
  204. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +7 -0
  205. package/node_modules/@qwen-code/audio-capture/dist/platform.js +18 -0
  206. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +1 -0
  207. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +21 -0
  208. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +58 -0
  209. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +5 -0
  210. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +84 -0
  211. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +19 -0
  212. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +6 -0
  213. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +207 -0
  214. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +7 -0
  215. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +43 -0
  216. package/node_modules/@qwen-code/audio-capture/package.json +30 -0
  217. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  218. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  219. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  220. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  221. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  222. package/package.json +18 -6
  223. package/patches/chrome-devtools-mcp+1.4.0.patch +31 -0
  224. package/postinstall.js +50 -0
  225. package/web-shell/assets/{arc-D_ae_Y9k.js → arc-DIemsO_F.js} +1 -1
  226. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BMLRjppa.js → architectureDiagram-3BPJPVTR-CTlUvIQv.js} +1 -1
  227. package/web-shell/assets/{blockDiagram-GPEHLZMM-qVDQC8KL.js → blockDiagram-GPEHLZMM-DG0jmIZK.js} +1 -1
  228. package/web-shell/assets/{c4Diagram-AAUBKEIU-CxWS6MBd.js → c4Diagram-AAUBKEIU-WljDBi55.js} +1 -1
  229. package/web-shell/assets/channel-CbzRbdpA.js +1 -0
  230. package/web-shell/assets/{chunk-2J33WTMH-BtNuY5Yp.js → chunk-2J33WTMH-8nc6onr2.js} +1 -1
  231. package/web-shell/assets/{chunk-4BX2VUAB-BU-x368d.js → chunk-4BX2VUAB-EopXix8Z.js} +1 -1
  232. package/web-shell/assets/{chunk-55IACEB6-DRgTLvBu.js → chunk-55IACEB6-BE4Jz3N3.js} +1 -1
  233. package/web-shell/assets/{chunk-727SXJPM-D2aElv7q.js → chunk-727SXJPM-C_eErgDN.js} +1 -1
  234. package/web-shell/assets/{chunk-AQP2D5EJ-BwHCMRQ0.js → chunk-AQP2D5EJ-DFtVW-Is.js} +1 -1
  235. package/web-shell/assets/{chunk-FMBD7UC4-BMyPH-ku.js → chunk-FMBD7UC4-CJPyxIg9.js} +1 -1
  236. package/web-shell/assets/{chunk-ND2GUHAM-BNKTstUf.js → chunk-ND2GUHAM-Bk-xgj6M.js} +1 -1
  237. package/web-shell/assets/{chunk-QZHKN3VN-gD3vsFId.js → chunk-QZHKN3VN-p3Y4yaFB.js} +1 -1
  238. package/web-shell/assets/classDiagram-4FO5ZUOK-BFdyQ52h.js +1 -0
  239. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BFdyQ52h.js +1 -0
  240. package/web-shell/assets/{cose-bilkent-S5V4N54A-BG9FAsXE.js → cose-bilkent-S5V4N54A-BCMO6Js3.js} +1 -1
  241. package/web-shell/assets/{dagre-BM42HDAG-Cy1sR7om.js → dagre-BM42HDAG-DUMrwASf.js} +1 -1
  242. package/web-shell/assets/default-aEtf0G7-.svg +1 -0
  243. package/web-shell/assets/{diagram-2AECGRRQ-Bxi1I_Vu.js → diagram-2AECGRRQ-C5d7qJbL.js} +1 -1
  244. package/web-shell/assets/{diagram-5GNKFQAL-BGCJjO6y.js → diagram-5GNKFQAL-CjLzMhbT.js} +1 -1
  245. package/web-shell/assets/{diagram-KO2AKTUF-CMTeLXp7.js → diagram-KO2AKTUF-RCoNWeAm.js} +1 -1
  246. package/web-shell/assets/{diagram-LMA3HP47-BN1wyAGh.js → diagram-LMA3HP47-KThXjaNV.js} +1 -1
  247. package/web-shell/assets/{diagram-OG6HWLK6-UYSG_zcp.js → diagram-OG6HWLK6-DKsC2BWz.js} +1 -1
  248. package/web-shell/assets/{erDiagram-TEJ5UH35-DqXL08lw.js → erDiagram-TEJ5UH35-DJ2ukmq0.js} +1 -1
  249. package/web-shell/assets/{flowDiagram-I6XJVG4X-BPJ9SFji.js → flowDiagram-I6XJVG4X-zzqaARRX.js} +1 -1
  250. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BEd9Pnms.js → ganttDiagram-6RSMTGT7-kFUg-gqT.js} +1 -1
  251. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DrNRH3oi.js → gitGraphDiagram-PVQCEYII-C6JnMVzD.js} +1 -1
  252. package/web-shell/assets/index-B3XUm7dw.js +713 -0
  253. package/web-shell/assets/index-CHmzAWys.css +5 -0
  254. package/web-shell/assets/{infoDiagram-5YYISTIA-CFYBrkVI.js → infoDiagram-5YYISTIA-XqPVhp89.js} +1 -1
  255. package/web-shell/assets/insert-DmRbh9Rv.svg +1 -0
  256. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-Dxsddth7.js → ishikawaDiagram-YF4QCWOH-D2k8sGpf.js} +1 -1
  257. package/web-shell/assets/{journeyDiagram-JHISSGLW-DxaDK80t.js → journeyDiagram-JHISSGLW-CQEST1GE.js} +1 -1
  258. package/web-shell/assets/{kanban-definition-UN3LZRKU-Q0jQCOct.js → kanban-definition-UN3LZRKU-DZ7kqVBC.js} +1 -1
  259. package/web-shell/assets/{linear-DGGM2kcP.js → linear-B6C_6q_E.js} +1 -1
  260. package/web-shell/assets/{mermaid.core-ByoxnWut.js → mermaid.core-CsyNP1qt.js} +5 -5
  261. package/web-shell/assets/{mindmap-definition-RKZ34NQL-C0ZseHsi.js → mindmap-definition-RKZ34NQL-B1VDIzJq.js} +1 -1
  262. package/web-shell/assets/{pieDiagram-4H26LBE5-MQXNhl5A.js → pieDiagram-4H26LBE5-DN0E7Jwu.js} +1 -1
  263. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DIR4ee2A.js → quadrantDiagram-W4KKPZXB-UKTQdHKm.js} +1 -1
  264. package/web-shell/assets/queue-DWpnpFgW.svg +1 -0
  265. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BTR0UdYQ.js → requirementDiagram-4Y6WPE33-BRGceQvN.js} +1 -1
  266. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-sfnhMELN.js → sankeyDiagram-5OEKKPKP-2DDyu41v.js} +1 -1
  267. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DXczHOHH.js → sequenceDiagram-3UESZ5HK-CT5iE8ZU.js} +1 -1
  268. package/web-shell/assets/{stateDiagram-AJRCARHV-DdE_KQFH.js → stateDiagram-AJRCARHV-CqMQ_s4G.js} +1 -1
  269. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CamhV5pM.js +1 -0
  270. package/web-shell/assets/{timeline-definition-PNZ67QCA-DIc61uE8.js → timeline-definition-PNZ67QCA-Di37QSZU.js} +1 -1
  271. package/web-shell/assets/{vennDiagram-CIIHVFJN-BF7ODmxB.js → vennDiagram-CIIHVFJN-DCXvpz5S.js} +1 -1
  272. package/web-shell/assets/{wardley-L42UT6IY-3pc1MEaw.js → wardley-L42UT6IY-CpUCk6OX.js} +1 -1
  273. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-9jnPcZuP.js → wardleyDiagram-YWT4CUSO-D01pVEBg.js} +1 -1
  274. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DcthaZK6.js → xychartDiagram-2RQKCTM6-DOu5JDoz.js} +1 -1
  275. package/web-shell/index.html +2 -2
  276. package/chunks/chunk-B6HQGTYR.js +0 -410
  277. package/chunks/chunk-R2BXK7SX.js +0 -13
  278. package/chunks/chunk-RKIZXJMB.js +0 -13
  279. package/chunks/nonInteractiveCli-7575LBXP.js +0 -91
  280. package/chunks/workspace-service-OM5D4OI2.js +0 -60
  281. package/web-shell/assets/channel-DYPNiTww.js +0 -1
  282. package/web-shell/assets/classDiagram-4FO5ZUOK-p_g25Tni.js +0 -1
  283. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-p_g25Tni.js +0 -1
  284. package/web-shell/assets/index-CpOXWDPh.js +0 -714
  285. package/web-shell/assets/index-oVK7qhre.css +0 -5
  286. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BHUSEndU.js +0 -1
@@ -1,5 +1,8 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ checkTeamMemorySecrets
5
+ } from "./chunk-K5XU6E4T.js";
3
6
  import {
4
7
  CommitAttributionService,
5
8
  DEFAULT_DIFF_OPTIONS,
@@ -10,59 +13,61 @@ import {
10
13
  detectLineEnding,
11
14
  getDiffStat,
12
15
  needsUtf8Bom
13
- } from "./chunk-PXFFKNCO.js";
16
+ } from "./chunk-RIP623NO.js";
14
17
  import "./chunk-K5PGHDBN.js";
15
18
  import "./chunk-5P5XGNYH.js";
16
19
  import "./chunk-SKAZWEV5.js";
17
- import "./chunk-TXVGVZYR.js";
18
- import "./chunk-XU5P23GN.js";
19
- import "./chunk-2BIF2NVV.js";
20
- import "./chunk-BG4BIP7F.js";
21
- import "./chunk-ZD3NW5KL.js";
20
+ import "./chunk-XJYUPHRC.js";
21
+ import "./chunk-QLDPRILK.js";
22
+ import "./chunk-BVSVIN45.js";
23
+ import "./chunk-SBBN4BWR.js";
24
+ import "./chunk-7LM4XHPE.js";
22
25
  import "./chunk-2MPVVENX.js";
23
26
  import "./chunk-ZTQ26VBE.js";
24
- import "./chunk-GZCJS5WH.js";
27
+ import "./chunk-O2VBQ3Y2.js";
25
28
  import "./chunk-MLZQVCF3.js";
26
29
  import "./chunk-LQ7TMOCE.js";
27
30
  import "./chunk-LD2XBG6Z.js";
28
- import "./chunk-OTBK43JR.js";
29
- import "./chunk-HGNSRCRB.js";
30
- import "./chunk-EEEZIVFJ.js";
31
- import "./chunk-PRYMDRBV.js";
31
+ import "./chunk-HYCC3XM3.js";
32
+ import "./chunk-NL4C3H6C.js";
33
+ import "./chunk-JOLIREYR.js";
34
+ import "./chunk-DDMOU62Q.js";
32
35
  import {
33
36
  FileOperationEvent,
34
37
  fileExists,
35
38
  getLanguageFromFilePath,
36
39
  getSpecificMimeType,
37
40
  logFileOperation
38
- } from "./chunk-WA5OJGFL.js";
41
+ } from "./chunk-SS6WJMQK.js";
39
42
  import "./chunk-3PJXIDKI.js";
40
43
  import "./chunk-UWCTAVOD.js";
41
44
  import "./chunk-OFEVLU4C.js";
42
45
  import "./chunk-OMX7CUOE.js";
43
46
  import {
44
- isAnyAutoMemPath
45
- } from "./chunk-BNXANYLH.js";
46
- import "./chunk-T2VDEFUU.js";
47
- import "./chunk-OIC6S73E.js";
47
+ isAnyAutoMemPath,
48
+ isTeamAutoMemPath
49
+ } from "./chunk-RD6YJJJ6.js";
50
+ import "./chunk-SKQZZVAV.js";
51
+ import "./chunk-BUUQ5HPX.js";
48
52
  import {
49
53
  BaseDeclarativeTool,
50
54
  BaseToolInvocation,
51
55
  ToolDisplayNames,
52
56
  ToolNames
53
- } from "./chunk-TOEGRAVX.js";
54
- import "./chunk-BGUDAULQ.js";
55
- import "./chunk-EW6C27XX.js";
57
+ } from "./chunk-BX5YO7UW.js";
58
+ import "./chunk-3CPCDXFR.js";
59
+ import "./chunk-GEHVIWAT.js";
56
60
  import "./chunk-22IFUCVR.js";
57
- import "./chunk-64WXLC72.js";
58
- import "./chunk-3UALQ56H.js";
59
- import "./chunk-F6XNTYNE.js";
60
- import "./chunk-CGEGHF2C.js";
61
+ import "./chunk-3227DZO4.js";
62
+ import "./chunk-YTFBURQD.js";
63
+ import "./chunk-BKXBARJZ.js";
61
64
  import "./chunk-IRJWHZWU.js";
62
65
  import "./chunk-SYCJMSIJ.js";
63
66
  import "./chunk-55ZMG67I.js";
64
67
  import "./chunk-H6BD2ELD.js";
65
68
  import "./chunk-5IFG2VC4.js";
69
+ import "./chunk-64WXLC72.js";
70
+ import "./chunk-E6XQPQXW.js";
66
71
  import {
67
72
  createDebugLogger,
68
73
  getErrorMessage,
@@ -70,7 +75,7 @@ import {
70
75
  makeRelative,
71
76
  shortenPath,
72
77
  unescapePath
73
- } from "./chunk-C4K3FEQ2.js";
78
+ } from "./chunk-UX4SGCGN.js";
74
79
  import "./chunk-ZERZSAZL.js";
75
80
  import "./chunk-QN5NZ3UQ.js";
76
81
  import "./chunk-BR4QREVK.js";
@@ -106,12 +111,20 @@ var WriteFileToolInvocation = class extends BaseToolInvocation {
106
111
  return `Writing to ${shortenPath(relativePath)}`;
107
112
  }
108
113
  /**
109
- * Write operations always need user confirmation, except for managed
110
- * auto-memory files which are written autonomously by the model.
114
+ * Write operations always need user confirmation, except for the private
115
+ * managed auto-memory files (user/project) which are written autonomously.
116
+ * Team memory is shared and committed to the repo, so it is NOT auto-allowed
117
+ * like the private tiers — writes default to 'ask'. (In AUTO_EDIT/YOLO the
118
+ * user has globally opted into auto-approval; team writes still surface in the
119
+ * git diff for review before commit.)
111
120
  */
112
121
  async getDefaultPermission() {
113
122
  const projectRoot = this.config.getProjectRoot();
114
- if (isAnyAutoMemPath(path.resolve(this.params.file_path), projectRoot)) {
123
+ const filePath = path.resolve(this.params.file_path);
124
+ if (isTeamAutoMemPath(filePath, projectRoot)) {
125
+ return "ask";
126
+ }
127
+ if (isAnyAutoMemPath(filePath, projectRoot)) {
115
128
  return "allow";
116
129
  }
117
130
  return "ask";
@@ -203,6 +216,21 @@ var WriteFileToolInvocation = class extends BaseToolInvocation {
203
216
  let detectedEncoding;
204
217
  let detectedLineEnding;
205
218
  const dirName = path.dirname(file_path);
219
+ const teamMemoryError = checkTeamMemorySecrets(
220
+ file_path,
221
+ content,
222
+ this.config.getProjectRoot()
223
+ );
224
+ if (teamMemoryError) {
225
+ return {
226
+ llmContent: `[ERROR: ${teamMemoryError}]`,
227
+ returnDisplay: teamMemoryError,
228
+ error: {
229
+ message: teamMemoryError,
230
+ type: "invalid_tool_params" /* INVALID_TOOL_PARAMS */
231
+ }
232
+ };
233
+ }
206
234
  if (!this.config.getFileReadCacheDisabled()) {
207
235
  const decision = await checkPriorRead(
208
236
  this.config.getFileReadCache(),
@@ -476,6 +504,14 @@ The user has the ability to modify \`content\`. If modified, this will be stated
476
504
  } catch (statError) {
477
505
  return `Error accessing path properties for validation: ${filePath}. Reason: ${statError instanceof Error ? statError.message : String(statError)}`;
478
506
  }
507
+ const teamMemoryError = checkTeamMemorySecrets(
508
+ filePath,
509
+ params.content ?? "",
510
+ this.config.getProjectRoot()
511
+ );
512
+ if (teamMemoryError) {
513
+ return teamMemoryError;
514
+ }
479
515
  return null;
480
516
  }
481
517
  createInvocation(params) {
@@ -591,6 +591,7 @@ var zh_default = {
591
591
  "Show usage statistics dashboard.": "\u663E\u793A\u4F7F\u7528\u7EDF\u8BA1\u9762\u677F\u3002",
592
592
  "Show model-specific usage statistics.": "\u663E\u793A\u6A21\u578B\u76F8\u5173\u7684\u4F7F\u7528\u7EDF\u8BA1\u4FE1\u606F",
593
593
  "Show tool-specific usage statistics.": "\u663E\u793A\u5DE5\u5177\u76F8\u5173\u7684\u4F7F\u7528\u7EDF\u8BA1\u4FE1\u606F",
594
+ "Show skill-specific usage statistics.": "\u663E\u793A\u6280\u80FD\u76F8\u5173\u7684\u4F7F\u7528\u7EDF\u8BA1\u4FE1\u606F",
594
595
  "Show daily token usage statistics.": "\u663E\u793A\u6BCF\u65E5 token \u4F7F\u7528\u7EDF\u8BA1\u4FE1\u606F",
595
596
  "Show monthly token usage statistics.": "\u663E\u793A\u6BCF\u6708 token \u4F7F\u7528\u7EDF\u8BA1\u4FE1\u606F",
596
597
  "Export token usage statistics to CSV or JSON.": "\u5C06 token \u4F7F\u7528\u7EDF\u8BA1\u4FE1\u606F\u5BFC\u51FA\u4E3A CSV \u6216 JSON",
@@ -1077,11 +1078,16 @@ var zh_default = {
1077
1078
  // ============================================================================
1078
1079
  "Switch the model for this session (--fast for suggestion model, [model-id] to switch immediately).": "\u5207\u6362\u6B64\u4F1A\u8BDD\u7684\u6A21\u578B\uFF08--fast \u53EF\u8BBE\u7F6E\u5EFA\u8BAE\u6A21\u578B\uFF09",
1079
1080
  "Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, [model-id] to switch immediately).": "\u5207\u6362\u6B64\u4F1A\u8BDD\u7684\u6A21\u578B\uFF08--fast \u53EF\u8BBE\u7F6E\u5EFA\u8BAE\u6A21\u578B\uFF0C--voice \u53EF\u8BBE\u7F6E\u8BED\u97F3\u8F6C\u5199\u6A21\u578B\uFF0C[model-id] \u53EF\u7ACB\u5373\u5207\u6362\uFF09",
1081
+ "Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, --vision for the vision bridge model, [model-id] to switch immediately).": "\u5207\u6362\u6B64\u4F1A\u8BDD\u7684\u6A21\u578B\uFF08--fast \u53EF\u8BBE\u7F6E\u5EFA\u8BAE\u6A21\u578B\uFF0C--voice \u53EF\u8BBE\u7F6E\u8BED\u97F3\u8F6C\u5199\u6A21\u578B\uFF0C--vision \u53EF\u8BBE\u7F6E\u89C6\u89C9\u6865\u63A5\u6A21\u578B\uFF0C[model-id] \u53EF\u7ACB\u5373\u5207\u6362\uFF09",
1082
+ "\u26A0 '{{model}}' is not a known image-capable model; the vision bridge may fail on images.": "\u26A0 '{{model}}' \u4E0D\u662F\u5DF2\u77E5\u7684\u56FE\u50CF\u80FD\u529B\u6A21\u578B\uFF1B\u89C6\u89C9\u6865\u63A5\u5904\u7406\u56FE\u7247\u65F6\u53EF\u80FD\u4F1A\u5931\u8D25\u3002",
1080
1083
  "Set a lighter model for prompt suggestions and speculative execution": "\u8BBE\u7F6E\u7528\u4E8E\u8F93\u5165\u5EFA\u8BAE\u548C\u63A8\u6D4B\u6267\u884C\u7684\u8F7B\u91CF\u6A21\u578B",
1081
1084
  "Toggle voice dictation input": "\u5207\u6362\u8BED\u97F3\u542C\u5199\u8F93\u5165",
1082
1085
  "Set the model for voice transcription": "\u8BBE\u7F6E\u8BED\u97F3\u8F6C\u5199\u6A21\u578B",
1086
+ "Set the image-capable model used to transcribe images for a text-only main model": "\u8BBE\u7F6E\u7528\u4E8E\u4E3A\u7EAF\u6587\u672C\u4E3B\u6A21\u578B\u8F6C\u5199\u56FE\u50CF\u7684\u56FE\u50CF\u80FD\u529B\u6A21\u578B",
1083
1087
  "Select Fast Model": "\u9009\u62E9\u5FEB\u901F\u6A21\u578B",
1088
+ "Select Vision Model": "\u9009\u62E9\u89C6\u89C9\u6A21\u578B",
1084
1089
  "Select Voice Model": "\u9009\u62E9\u8BED\u97F3\u6A21\u578B",
1090
+ "Vision Model": "\u89C6\u89C9\u6A21\u578B",
1085
1091
  "Voice Model": "\u8BED\u97F3\u6A21\u578B",
1086
1092
  "Selected voice model is unavailable.": "\u6240\u9009\u8BED\u97F3\u6A21\u578B\u4E0D\u53EF\u7528\u3002",
1087
1093
  "Voice model '{{model}}' is configured more than once. Remove duplicate model ids before selecting it for voice transcription.": "\u8BED\u97F3\u6A21\u578B '{{model}}' \u88AB\u914D\u7F6E\u4E86\u591A\u6B21\u3002\u8BF7\u5148\u79FB\u9664\u91CD\u590D\u7684\u6A21\u578B ID\uFF0C\u518D\u5C06\u5176\u9009\u4E3A\u8BED\u97F3\u8F6C\u5199\u6A21\u578B\u3002",
@@ -1252,6 +1258,7 @@ var zh_default = {
1252
1258
  video: "\u89C6\u9891",
1253
1259
  "not set": "\u672A\u8BBE\u7F6E",
1254
1260
  'Current voice model: {{voiceModel}}\nUse "/model --voice <model-id>" to set voice model.': '\u5F53\u524D\u8BED\u97F3\u6A21\u578B\uFF1A{{voiceModel}}\n\u4F7F\u7528 "/model --voice <model-id>" \u8BBE\u7F6E\u8BED\u97F3\u6A21\u578B\u3002',
1261
+ 'Current vision model: {{visionModel}}\nUse "/model --vision <model-id>" to set the vision bridge model.': '\u5F53\u524D\u89C6\u89C9\u6A21\u578B\uFF1A{{visionModel}}\n\u4F7F\u7528 "/model --vision <model-id>" \u8BBE\u7F6E\u89C6\u89C9\u6865\u63A5\u6A21\u578B\u3002',
1255
1262
  "Voice model '{{modelName}}' is ambiguous. Configure a unique model id before using /model --voice.": "\u8BED\u97F3\u6A21\u578B '{{modelName}}' \u4E0D\u552F\u4E00\u3002\u8BF7\u5148\u914D\u7F6E\u552F\u4E00\u7684\u6A21\u578B ID\uFF0C\u518D\u4F7F\u7528 /model --voice\u3002",
1256
1263
  none: "\u65E0",
1257
1264
  unknown: "\u672A\u77E5",
@@ -1695,6 +1702,7 @@ var zh_default = {
1695
1702
  "No tasks currently running": "\u5F53\u524D\u6CA1\u6709\u6B63\u5728\u8FD0\u884C\u7684\u4EFB\u52A1",
1696
1703
  "No entry to show.": "\u6CA1\u6709\u53EF\u663E\u793A\u7684\u6761\u76EE\u3002",
1697
1704
  "needs approval": "\u5F85\u5BA1\u6279",
1705
+ "rejected \u2014 edit config to re-approve": "\u5DF2\u62D2\u7EDD \u2014 \u7F16\u8F91\u914D\u7F6E\u4EE5\u91CD\u65B0\u5BA1\u6279",
1698
1706
  "Background agent needs approval": "\u540E\u53F0 agent \u7B49\u5F85\u5BA1\u6279",
1699
1707
  "Approve or deny the request above": "\u8BF7\u6279\u51C6\u6216\u62D2\u7EDD\u4E0A\u65B9\u7684\u8BF7\u6C42",
1700
1708
  Running: "\u8FD0\u884C\u4E2D",
@@ -550,6 +550,7 @@ var zh_TW_default = {
550
550
  "toggle vim mode on/off": "\u5207\u63DB vim \u6A21\u5F0F\u958B\u95DC",
551
551
  "Show model-specific usage statistics.": "\u986F\u793A\u6A21\u578B\u76F8\u95DC\u7684\u4F7F\u7528\u7D71\u8A08\u8CC7\u8A0A",
552
552
  "Show tool-specific usage statistics.": "\u986F\u793A\u5DE5\u5177\u76F8\u95DC\u7684\u4F7F\u7528\u7D71\u8A08\u8CC7\u8A0A",
553
+ "Show skill-specific usage statistics.": "\u986F\u793A\u6280\u80FD\u76F8\u95DC\u7684\u4F7F\u7528\u7D71\u8A08\u8CC7\u8A0A",
553
554
  "Show daily token usage statistics.": "\u986F\u793A\u6BCF\u65E5 token \u4F7F\u7528\u7D71\u8A08\u8CC7\u8A0A",
554
555
  "Show monthly token usage statistics.": "\u986F\u793A\u6BCF\u6708 token \u4F7F\u7528\u7D71\u8A08\u8CC7\u8A0A",
555
556
  "Export token usage statistics to CSV or JSON.": "\u5C07 token \u4F7F\u7528\u7D71\u8A08\u8CC7\u8A0A\u532F\u51FA\u70BA CSV \u6216 JSON",
@@ -980,11 +981,16 @@ var zh_TW_default = {
980
981
  "Failed to generate summary - no text content received from LLM response": "\u751F\u6210\u6458\u8981\u5931\u6557 - \u672A\u5F9E LLM \u97FF\u61C9\u4E2D\u63A5\u6536\u5230\u6587\u672C\u5167\u5BB9",
981
982
  "Switch the model for this session (--fast for suggestion model, [model-id] to switch immediately).": "\u5207\u63DB\u6B64\u6703\u8A71\u7684\u6A21\u578B\uFF08--fast \u53EF\u8A2D\u7F6E\u5EFA\u8B70\u6A21\u578B\uFF09",
982
983
  "Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, [model-id] to switch immediately).": "\u5207\u63DB\u6B64\u6703\u8A71\u7684\u6A21\u578B\uFF08--fast \u53EF\u8A2D\u7F6E\u5EFA\u8B70\u6A21\u578B\uFF0C--voice \u53EF\u8A2D\u7F6E\u8A9E\u97F3\u8F49\u5BEB\u6A21\u578B\uFF0C[model-id] \u53EF\u7ACB\u5373\u5207\u63DB\uFF09",
984
+ "Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, --vision for the vision bridge model, [model-id] to switch immediately).": "\u5207\u63DB\u6B64\u6703\u8A71\u7684\u6A21\u578B\uFF08--fast \u53EF\u8A2D\u7F6E\u5EFA\u8B70\u6A21\u578B\uFF0C--voice \u53EF\u8A2D\u7F6E\u8A9E\u97F3\u8F49\u5BEB\u6A21\u578B\uFF0C--vision \u53EF\u8A2D\u7F6E\u8996\u89BA\u6A4B\u63A5\u6A21\u578B\uFF0C[model-id] \u53EF\u7ACB\u5373\u5207\u63DB\uFF09",
985
+ "\u26A0 '{{model}}' is not a known image-capable model; the vision bridge may fail on images.": "\u26A0 '{{model}}' \u4E0D\u662F\u5DF2\u77E5\u7684\u5716\u50CF\u80FD\u529B\u6A21\u578B\uFF1B\u8996\u89BA\u6A4B\u63A5\u8655\u7406\u5716\u7247\u6642\u53EF\u80FD\u6703\u5931\u6557\u3002",
983
986
  "Set a lighter model for prompt suggestions and speculative execution": "\u8A2D\u7F6E\u7528\u65BC\u8F38\u5165\u5EFA\u8B70\u548C\u63A8\u6E2C\u57F7\u884C\u7684\u8F15\u91CF\u6A21\u578B",
984
987
  "Toggle voice dictation input": "\u5207\u63DB\u8A9E\u97F3\u807D\u5BEB\u8F38\u5165",
985
988
  "Set the model for voice transcription": "\u8A2D\u5B9A\u8A9E\u97F3\u8F49\u5BEB\u6A21\u578B",
989
+ "Set the image-capable model used to transcribe images for a text-only main model": "\u8A2D\u5B9A\u7528\u65BC\u70BA\u7D14\u6587\u5B57\u4E3B\u6A21\u578B\u8F49\u5BEB\u5716\u50CF\u7684\u5716\u50CF\u80FD\u529B\u6A21\u578B",
986
990
  "Select Fast Model": "\u9078\u64C7\u5FEB\u901F\u6A21\u578B",
991
+ "Select Vision Model": "\u9078\u64C7\u8996\u89BA\u6A21\u578B",
987
992
  "Select Voice Model": "\u9078\u64C7\u8A9E\u97F3\u6A21\u578B",
993
+ "Vision Model": "\u8996\u89BA\u6A21\u578B",
988
994
  "Voice Model": "\u8A9E\u97F3\u6A21\u578B",
989
995
  "Selected voice model is unavailable.": "\u6240\u9078\u8A9E\u97F3\u6A21\u578B\u4E0D\u53EF\u7528\u3002",
990
996
  "Voice model '{{model}}' is configured more than once. Remove duplicate model ids before selecting it for voice transcription.": "\u8A9E\u97F3\u6A21\u578B '{{model}}' \u88AB\u914D\u7F6E\u4E86\u591A\u6B21\u3002\u8ACB\u5148\u79FB\u9664\u91CD\u8907\u7684\u6A21\u578B ID\uFF0C\u518D\u5C07\u5176\u9078\u70BA\u8A9E\u97F3\u8F49\u5BEB\u6A21\u578B\u3002",
@@ -1131,6 +1137,7 @@ var zh_TW_default = {
1131
1137
  video: "\u8996\u983B",
1132
1138
  "not set": "\u672A\u8A2D\u7F6E",
1133
1139
  'Current voice model: {{voiceModel}}\nUse "/model --voice <model-id>" to set voice model.': '\u7576\u524D\u8A9E\u97F3\u6A21\u578B\uFF1A{{voiceModel}}\n\u4F7F\u7528 "/model --voice <model-id>" \u8A2D\u7F6E\u8A9E\u97F3\u6A21\u578B\u3002',
1140
+ 'Current vision model: {{visionModel}}\nUse "/model --vision <model-id>" to set the vision bridge model.': '\u7576\u524D\u8996\u89BA\u6A21\u578B\uFF1A{{visionModel}}\n\u4F7F\u7528 "/model --vision <model-id>" \u8A2D\u7F6E\u8996\u89BA\u6A4B\u63A5\u6A21\u578B\u3002',
1134
1141
  "Voice model '{{modelName}}' is ambiguous. Configure a unique model id before using /model --voice.": "\u8A9E\u97F3\u6A21\u578B '{{modelName}}' \u4E0D\u552F\u4E00\u3002\u8ACB\u5148\u914D\u7F6E\u552F\u4E00\u7684\u6A21\u578B ID\uFF0C\u518D\u4F7F\u7528 /model --voice\u3002",
1135
1142
  none: "\u7121",
1136
1143
  unknown: "\u672A\u77E5",
@@ -1533,6 +1540,7 @@ var zh_TW_default = {
1533
1540
  "No tasks currently running": "\u76EE\u524D\u6C92\u6709\u6B63\u5728\u57F7\u884C\u7684\u4EFB\u52D9",
1534
1541
  "No entry to show.": "\u6C92\u6709\u53EF\u986F\u793A\u7684\u9805\u76EE\u3002",
1535
1542
  "needs approval": "\u5F85\u5BE9\u6279",
1543
+ "rejected \u2014 edit config to re-approve": "\u5DF2\u62D2\u7D55 \u2014 \u7DE8\u8F2F\u8A2D\u5B9A\u4EE5\u91CD\u65B0\u5BE9\u6279",
1536
1544
  "Background agent needs approval": "\u80CC\u666F agent \u7B49\u5F85\u5BE9\u6279",
1537
1545
  "Approve or deny the request above": "\u8ACB\u6838\u51C6\u6216\u62D2\u7D55\u4E0A\u65B9\u7684\u8ACB\u6C42",
1538
1546
  Running: "\u57F7\u884C\u4E2D",
package/cli-entry.js CHANGED
@@ -1,19 +1,30 @@
1
1
  #!/usr/bin/env node
2
+ import module from 'node:module';
2
3
  import { spawnSync } from 'node:child_process';
3
- import { fileURLToPath } from 'node:url';
4
+ import { fileURLToPath, pathToFileURL } from 'node:url';
4
5
  import { dirname, join } from 'node:path';
5
6
 
6
7
  const __dirname = dirname(fileURLToPath(import.meta.url));
7
8
  const cliPath = join(__dirname, 'cli.js');
8
9
 
9
- const result = spawnSync(
10
- process.execPath,
11
- ['--expose-gc', cliPath, ...process.argv.slice(2)],
12
- { stdio: 'inherit' },
13
- );
10
+ function isServeCommand() {
11
+ return process.argv[2] === 'serve';
12
+ }
14
13
 
15
- if (result.signal) {
16
- process.kill(process.pid, result.signal);
14
+ if (isServeCommand()) {
15
+ module.enableCompileCache?.();
16
+ process.argv[1] = cliPath;
17
+ await import(pathToFileURL(cliPath).href);
17
18
  } else {
18
- process.exit(result.status ?? 1);
19
+ const result = spawnSync(
20
+ process.execPath,
21
+ ['--expose-gc', cliPath, ...process.argv.slice(2)],
22
+ { stdio: 'inherit' },
23
+ );
24
+
25
+ if (result.signal) {
26
+ process.kill(process.pid, result.signal);
27
+ } else {
28
+ process.exit(result.status ?? 1);
29
+ }
19
30
  }
package/cli.js CHANGED
@@ -3,8 +3,8 @@
3
3
  "use strict";
4
4
  import {
5
5
  initCpuProfiler
6
- } from "./chunks/chunk-PF523XJX.js";
7
- import "./chunks/chunk-GYZQA2FO.js";
6
+ } from "./chunks/chunk-HPGTGMP3.js";
7
+ import "./chunks/chunk-YLZJCUH6.js";
8
8
  import {
9
9
  initStartupProfiler
10
10
  } from "./chunks/chunk-ITOGNELQ.js";
@@ -53,17 +53,17 @@ var isExpectedPtyRaceError = /* @__PURE__ */ __name((error) => {
53
53
  }, "isExpectedPtyRaceError");
54
54
  async function runCliEntry() {
55
55
  if (isServeFastPathArgv(process.argv.slice(2))) {
56
- const { tryRunServeFastPath } = await import("./chunks/fast-path-35JJFS3C.js");
56
+ const { tryRunServeFastPath } = await import("./chunks/fast-path-XVNIYWGG.js");
57
57
  if (await tryRunServeFastPath()) return;
58
58
  }
59
- const { main } = await import("./chunks/gemini-NDTG7WAX.js");
59
+ const { main } = await import("./chunks/gemini-U5TPU3IQ.js");
60
60
  await main();
61
61
  }
62
62
  __name(runCliEntry, "runCliEntry");
63
63
  async function handleCriticalError(error) {
64
64
  const [{ FatalError }, { AlreadyReportedError }] = await Promise.all([
65
- import("./chunks/src-4F6FBZFI.js"),
66
- import("./chunks/errors-6G2JYR54.js")
65
+ import("./chunks/src-IU5GDBEH.js"),
66
+ import("./chunks/errors-2XJDYO3M.js")
67
67
  ]);
68
68
  if (error instanceof FatalError) {
69
69
  let errorMessage = error.message;
package/locales/ca.js CHANGED
@@ -1544,6 +1544,8 @@ export default {
1544
1544
  'No tasks currently running': 'No hi ha cap tasca en execució',
1545
1545
  'No entry to show.': 'No hi ha cap entrada per mostrar.',
1546
1546
  'needs approval': 'necessita aprovació',
1547
+ 'rejected — edit config to re-approve':
1548
+ 'rebutjat — editeu la configuració per tornar a aprovar',
1547
1549
  'Background agent needs approval': "L'agent en segon pla necessita aprovació",
1548
1550
  'Approve or deny the request above': 'Aprova o denega la sol·licitud de dalt',
1549
1551
  Running: 'En execució',
package/locales/de.js CHANGED
@@ -1477,6 +1477,8 @@ export default {
1477
1477
  'No tasks currently running': 'Derzeit laufen keine Aufgaben',
1478
1478
  'No entry to show.': 'Kein Eintrag zum Anzeigen.',
1479
1479
  'needs approval': 'wartet auf Genehmigung',
1480
+ 'rejected — edit config to re-approve':
1481
+ 'abgelehnt — Konfiguration bearbeiten, um erneut zu genehmigen',
1480
1482
  'Background agent needs approval': 'Hintergrund-Agent wartet auf Genehmigung',
1481
1483
  'Approve or deny the request above':
1482
1484
  'Genehmigen oder lehnen Sie die obige Anfrage ab',
package/locales/en.js CHANGED
@@ -726,6 +726,8 @@ export default {
726
726
  'Show model-specific usage statistics.',
727
727
  'Show tool-specific usage statistics.':
728
728
  'Show tool-specific usage statistics.',
729
+ 'Show skill-specific usage statistics.':
730
+ 'Show skill-specific usage statistics.',
729
731
  'Show daily token usage statistics.': 'Show daily token usage statistics.',
730
732
  'Show monthly token usage statistics.':
731
733
  'Show monthly token usage statistics.',
@@ -1431,13 +1433,21 @@ export default {
1431
1433
  'Switch the model for this session (--fast for suggestion model, [model-id] to switch immediately).',
1432
1434
  'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, [model-id] to switch immediately).':
1433
1435
  'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, [model-id] to switch immediately).',
1436
+ 'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, --vision for the vision bridge model, [model-id] to switch immediately).':
1437
+ 'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, --vision for the vision bridge model, [model-id] to switch immediately).',
1438
+ "⚠ '{{model}}' is not a known image-capable model; the vision bridge may fail on images.":
1439
+ "⚠ '{{model}}' is not a known image-capable model; the vision bridge may fail on images.",
1434
1440
  'Set a lighter model for prompt suggestions and speculative execution':
1435
1441
  'Set a lighter model for prompt suggestions and speculative execution',
1436
1442
  'Toggle voice dictation input': 'Toggle voice dictation input',
1437
1443
  'Set the model for voice transcription':
1438
1444
  'Set the model for voice transcription',
1445
+ 'Set the image-capable model used to transcribe images for a text-only main model':
1446
+ 'Set the image-capable model used to transcribe images for a text-only main model',
1439
1447
  'Select Fast Model': 'Select Fast Model',
1448
+ 'Select Vision Model': 'Select Vision Model',
1440
1449
  'Select Voice Model': 'Select Voice Model',
1450
+ 'Vision Model': 'Vision Model',
1441
1451
  'Voice Model': 'Voice Model',
1442
1452
  'Selected voice model is unavailable.':
1443
1453
  'Selected voice model is unavailable.',
@@ -1684,6 +1694,8 @@ export default {
1684
1694
  'not set': 'not set',
1685
1695
  'Current voice model: {{voiceModel}}\nUse "/model --voice <model-id>" to set voice model.':
1686
1696
  'Current voice model: {{voiceModel}}\nUse "/model --voice <model-id>" to set voice model.',
1697
+ 'Current vision model: {{visionModel}}\nUse "/model --vision <model-id>" to set the vision bridge model.':
1698
+ 'Current vision model: {{visionModel}}\nUse "/model --vision <model-id>" to set the vision bridge model.',
1687
1699
  "Voice model '{{modelName}}' is ambiguous. Configure a unique model id before using /model --voice.":
1688
1700
  "Voice model '{{modelName}}' is ambiguous. Configure a unique model id before using /model --voice.",
1689
1701
  none: 'none',
@@ -1921,6 +1933,8 @@ export default {
1921
1933
  'No tasks currently running': 'No tasks currently running',
1922
1934
  'No entry to show.': 'No entry to show.',
1923
1935
  'needs approval': 'needs approval',
1936
+ 'rejected — edit config to re-approve':
1937
+ 'rejected — edit config to re-approve',
1924
1938
  'Background agent needs approval': 'Background agent needs approval',
1925
1939
  'Approve or deny the request above': 'Approve or deny the request above',
1926
1940
  Running: 'Running',
package/locales/fr.js CHANGED
@@ -1541,6 +1541,8 @@ export default {
1541
1541
  'No tasks currently running': 'Aucune tâche en cours',
1542
1542
  'No entry to show.': 'Aucune entrée à afficher.',
1543
1543
  'needs approval': 'nécessite une approbation',
1544
+ 'rejected — edit config to re-approve':
1545
+ 'rejeté — modifiez la configuration pour réapprouver',
1544
1546
  'Background agent needs approval':
1545
1547
  "L'agent en arrière-plan nécessite une approbation",
1546
1548
  'Approve or deny the request above':
package/locales/ja.js CHANGED
@@ -923,6 +923,7 @@ export default {
923
923
  'No tasks currently running': '現在実行中のタスクはありません',
924
924
  'No entry to show.': '表示するエントリはありません。',
925
925
  'needs approval': '承認待ち',
926
+ 'rejected — edit config to re-approve': '拒否済み — 設定を編集して再承認',
926
927
  'Background agent needs approval':
927
928
  'バックグラウンドエージェントが承認待ちです',
928
929
  'Approve or deny the request above':
package/locales/pt.js CHANGED
@@ -1510,6 +1510,8 @@ export default {
1510
1510
  'No tasks currently running': 'Nenhuma tarefa em execução',
1511
1511
  'No entry to show.': 'Nenhuma entrada para mostrar.',
1512
1512
  'needs approval': 'precisa de aprovação',
1513
+ 'rejected — edit config to re-approve':
1514
+ 'rejeitado — edite a configuração para reaprovar',
1513
1515
  'Background agent needs approval':
1514
1516
  'Agente em segundo plano precisa de aprovação',
1515
1517
  'Approve or deny the request above': 'Aprove ou negue a solicitação acima',
package/locales/ru.js CHANGED
@@ -1425,6 +1425,8 @@ export default {
1425
1425
  'No tasks currently running': 'Нет запущенных задач',
1426
1426
  'No entry to show.': 'Нет записи для отображения.',
1427
1427
  'needs approval': 'требует подтверждения',
1428
+ 'rejected — edit config to re-approve':
1429
+ 'отклонено — измените конфигурацию для повторного подтверждения',
1428
1430
  'Background agent needs approval': 'Фоновый агент требует подтверждения',
1429
1431
  'Approve or deny the request above': 'Подтвердите или отклоните запрос выше',
1430
1432
  Running: 'Выполняется',
package/locales/zh-TW.js CHANGED
@@ -652,6 +652,7 @@ export default {
652
652
  'toggle vim mode on/off': '切換 vim 模式開關',
653
653
  'Show model-specific usage statistics.': '顯示模型相關的使用統計資訊',
654
654
  'Show tool-specific usage statistics.': '顯示工具相關的使用統計資訊',
655
+ 'Show skill-specific usage statistics.': '顯示技能相關的使用統計資訊',
655
656
  'Show daily token usage statistics.': '顯示每日 token 使用統計資訊',
656
657
  'Show monthly token usage statistics.': '顯示每月 token 使用統計資訊',
657
658
  'Export token usage statistics to CSV or JSON.':
@@ -1229,12 +1230,20 @@ export default {
1229
1230
  '切換此會話的模型(--fast 可設置建議模型)',
1230
1231
  'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, [model-id] to switch immediately).':
1231
1232
  '切換此會話的模型(--fast 可設置建議模型,--voice 可設置語音轉寫模型,[model-id] 可立即切換)',
1233
+ 'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, --vision for the vision bridge model, [model-id] to switch immediately).':
1234
+ '切換此會話的模型(--fast 可設置建議模型,--voice 可設置語音轉寫模型,--vision 可設置視覺橋接模型,[model-id] 可立即切換)',
1235
+ "⚠ '{{model}}' is not a known image-capable model; the vision bridge may fail on images.":
1236
+ "⚠ '{{model}}' 不是已知的圖像能力模型;視覺橋接處理圖片時可能會失敗。",
1232
1237
  'Set a lighter model for prompt suggestions and speculative execution':
1233
1238
  '設置用於輸入建議和推測執行的輕量模型',
1234
1239
  'Toggle voice dictation input': '切換語音聽寫輸入',
1235
1240
  'Set the model for voice transcription': '設定語音轉寫模型',
1241
+ 'Set the image-capable model used to transcribe images for a text-only main model':
1242
+ '設定用於為純文字主模型轉寫圖像的圖像能力模型',
1236
1243
  'Select Fast Model': '選擇快速模型',
1244
+ 'Select Vision Model': '選擇視覺模型',
1237
1245
  'Select Voice Model': '選擇語音模型',
1246
+ 'Vision Model': '視覺模型',
1238
1247
  'Voice Model': '語音模型',
1239
1248
  'Selected voice model is unavailable.': '所選語音模型不可用。',
1240
1249
  "Voice model '{{model}}' is configured more than once. Remove duplicate model ids before selecting it for voice transcription.":
@@ -1438,6 +1447,8 @@ export default {
1438
1447
  'not set': '未設置',
1439
1448
  'Current voice model: {{voiceModel}}\nUse "/model --voice <model-id>" to set voice model.':
1440
1449
  '當前語音模型:{{voiceModel}}\n使用 "/model --voice <model-id>" 設置語音模型。',
1450
+ 'Current vision model: {{visionModel}}\nUse "/model --vision <model-id>" to set the vision bridge model.':
1451
+ '當前視覺模型:{{visionModel}}\n使用 "/model --vision <model-id>" 設置視覺橋接模型。',
1441
1452
  "Voice model '{{modelName}}' is ambiguous. Configure a unique model id before using /model --voice.":
1442
1453
  "語音模型 '{{modelName}}' 不唯一。請先配置唯一的模型 ID,再使用 /model --voice。",
1443
1454
  none: '無',
@@ -1965,6 +1976,7 @@ export default {
1965
1976
  'No tasks currently running': '目前沒有正在執行的任務',
1966
1977
  'No entry to show.': '沒有可顯示的項目。',
1967
1978
  'needs approval': '待審批',
1979
+ 'rejected — edit config to re-approve': '已拒絕 — 編輯設定以重新審批',
1968
1980
  'Background agent needs approval': '背景 agent 等待審批',
1969
1981
  'Approve or deny the request above': '請核准或拒絕上方的請求',
1970
1982
  Running: '執行中',
package/locales/zh.js CHANGED
@@ -696,6 +696,7 @@ export default {
696
696
  'Show usage statistics dashboard.': '显示使用统计面板。',
697
697
  'Show model-specific usage statistics.': '显示模型相关的使用统计信息',
698
698
  'Show tool-specific usage statistics.': '显示工具相关的使用统计信息',
699
+ 'Show skill-specific usage statistics.': '显示技能相关的使用统计信息',
699
700
  'Show daily token usage statistics.': '显示每日 token 使用统计信息',
700
701
  'Show monthly token usage statistics.': '显示每月 token 使用统计信息',
701
702
  'Export token usage statistics to CSV or JSON.':
@@ -1343,12 +1344,20 @@ export default {
1343
1344
  '切换此会话的模型(--fast 可设置建议模型)',
1344
1345
  'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, [model-id] to switch immediately).':
1345
1346
  '切换此会话的模型(--fast 可设置建议模型,--voice 可设置语音转写模型,[model-id] 可立即切换)',
1347
+ 'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, --vision for the vision bridge model, [model-id] to switch immediately).':
1348
+ '切换此会话的模型(--fast 可设置建议模型,--voice 可设置语音转写模型,--vision 可设置视觉桥接模型,[model-id] 可立即切换)',
1349
+ "⚠ '{{model}}' is not a known image-capable model; the vision bridge may fail on images.":
1350
+ "⚠ '{{model}}' 不是已知的图像能力模型;视觉桥接处理图片时可能会失败。",
1346
1351
  'Set a lighter model for prompt suggestions and speculative execution':
1347
1352
  '设置用于输入建议和推测执行的轻量模型',
1348
1353
  'Toggle voice dictation input': '切换语音听写输入',
1349
1354
  'Set the model for voice transcription': '设置语音转写模型',
1355
+ 'Set the image-capable model used to transcribe images for a text-only main model':
1356
+ '设置用于为纯文本主模型转写图像的图像能力模型',
1350
1357
  'Select Fast Model': '选择快速模型',
1358
+ 'Select Vision Model': '选择视觉模型',
1351
1359
  'Select Voice Model': '选择语音模型',
1360
+ 'Vision Model': '视觉模型',
1352
1361
  'Voice Model': '语音模型',
1353
1362
  'Selected voice model is unavailable.': '所选语音模型不可用。',
1354
1363
  "Voice model '{{model}}' is configured more than once. Remove duplicate model ids before selecting it for voice transcription.":
@@ -1580,6 +1589,8 @@ export default {
1580
1589
  'not set': '未设置',
1581
1590
  'Current voice model: {{voiceModel}}\nUse "/model --voice <model-id>" to set voice model.':
1582
1591
  '当前语音模型:{{voiceModel}}\n使用 "/model --voice <model-id>" 设置语音模型。',
1592
+ 'Current vision model: {{visionModel}}\nUse "/model --vision <model-id>" to set the vision bridge model.':
1593
+ '当前视觉模型:{{visionModel}}\n使用 "/model --vision <model-id>" 设置视觉桥接模型。',
1583
1594
  "Voice model '{{modelName}}' is ambiguous. Configure a unique model id before using /model --voice.":
1584
1595
  "语音模型 '{{modelName}}' 不唯一。请先配置唯一的模型 ID,再使用 /model --voice。",
1585
1596
  none: '无',
@@ -2161,6 +2172,7 @@ export default {
2161
2172
  'No tasks currently running': '当前没有正在运行的任务',
2162
2173
  'No entry to show.': '没有可显示的条目。',
2163
2174
  'needs approval': '待审批',
2175
+ 'rejected — edit config to re-approve': '已拒绝 — 编辑配置以重新审批',
2164
2176
  'Background agent needs approval': '后台 agent 等待审批',
2165
2177
  'Approve or deny the request above': '请批准或拒绝上方的请求',
2166
2178
  Running: '运行中',
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export type MicrophoneAuthorizationStatus = 'granted' | 'denied' | 'prompt' | 'unknown';
7
+ export interface AudioCaptureOptions {
8
+ sampleRate: number;
9
+ channels: number;
10
+ /** Flag sustained silence so the caller can auto-stop (tap mode). */
11
+ silenceDetection?: boolean;
12
+ }
13
+ export interface NativeAudioCaptureBackend {
14
+ startRecording: (options: AudioCaptureOptions) => void;
15
+ stopRecording: () => Uint8Array;
16
+ isRecording: () => boolean;
17
+ /** True once sustained silence was detected. Absent on older addons. */
18
+ silenceDetected?: () => boolean;
19
+ /** Return & clear PCM captured since the last call (for streaming uploads). */
20
+ drainAudio?: () => Uint8Array;
21
+ /** Recent input level 0..1 (for waveform display). */
22
+ audioLevel?: () => number;
23
+ microphoneAuthorizationStatus: () => MicrophoneAuthorizationStatus;
24
+ }
25
+ interface NativeBinding {
26
+ startRecording: (options?: Partial<AudioCaptureOptions>) => void;
27
+ stopRecording: () => Uint8Array;
28
+ isRecording: () => boolean;
29
+ silenceDetected?: () => boolean;
30
+ drainAudio?: () => Uint8Array;
31
+ audioLevel?: () => number;
32
+ microphoneAuthorizationStatus?: () => MicrophoneAuthorizationStatus;
33
+ }
34
+ export declare function createNativeAudioCaptureBackend(binding?: NativeBinding): NativeAudioCaptureBackend;
35
+ export { getPlatformBackendName } from './platform.js';
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { createRequire } from 'node:module';
7
+ import { dirname } from 'node:path';
8
+ import { fileURLToPath } from 'node:url';
9
+ import { getPlatformBackendName } from './platform.js';
10
+ const nativeRequire = createRequire(import.meta.url);
11
+ // dist/index.js → package root, which holds prebuilds/ and build/.
12
+ const packageRoot = dirname(dirname(fileURLToPath(import.meta.url)));
13
+ function loadBinding() {
14
+ try {
15
+ // Throws on unsupported platforms before touching the native layer.
16
+ getPlatformBackendName();
17
+ // node-gyp-build picks the matching prebuild from prebuilds/<platform>-<arch>,
18
+ // falling back to a local build/Release compile — no compiler needed when a
19
+ // prebuilt binary ships for the host.
20
+ const loadPrebuild = nativeRequire('node-gyp-build');
21
+ return loadPrebuild(packageRoot);
22
+ }
23
+ catch (error) {
24
+ throw new Error('Native audio capture addon could not be loaded. Reinstall ' +
25
+ '@qwen-code/audio-capture, or run "npm run build" in packages/audio-capture. ' +
26
+ `(${error instanceof Error ? error.message : String(error)})`);
27
+ }
28
+ }
29
+ export function createNativeAudioCaptureBackend(binding = loadBinding()) {
30
+ const silenceDetected = binding.silenceDetected;
31
+ const drainAudio = binding.drainAudio;
32
+ const audioLevel = binding.audioLevel;
33
+ return {
34
+ startRecording: (options) => {
35
+ binding.startRecording(options);
36
+ },
37
+ stopRecording: () => binding.stopRecording(),
38
+ isRecording: () => binding.isRecording(),
39
+ ...(drainAudio ? { drainAudio: () => drainAudio.call(binding) } : {}),
40
+ ...(audioLevel ? { audioLevel: () => audioLevel.call(binding) } : {}),
41
+ ...(silenceDetected
42
+ ? { silenceDetected: () => silenceDetected.call(binding) }
43
+ : {}),
44
+ microphoneAuthorizationStatus: () => binding.microphoneAuthorizationStatus?.() ?? 'unknown',
45
+ };
46
+ }
47
+ export { getPlatformBackendName } from './platform.js';
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAsCvD,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,mEAAmE;AACnE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAErE,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,oEAAoE;QACpE,sBAAsB,EAAE,CAAC;QACzB,+EAA+E;QAC/E,4EAA4E;QAC5E,sCAAsC;QACtC,MAAM,YAAY,GAAG,aAAa,CAAC,gBAAgB,CAEjC,CAAC;QACnB,OAAO,YAAY,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,4DAA4D;YAC1D,8EAA8E;YAC9E,IAAI,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,UAAyB,WAAW,EAAE;IAEtC,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,OAAO;QACL,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE;YAC1B,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE;QAC5C,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;QACxC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,eAAe;YACjB,CAAC,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1D,CAAC,CAAC,EAAE,CAAC;QACP,6BAA6B,EAAE,GAAG,EAAE,CAClC,OAAO,CAAC,6BAA6B,EAAE,EAAE,IAAI,SAAS;KACzD,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export type NativeAudioBackendName = 'coreaudio' | 'alsa-pulse' | 'wasapi';
7
+ export declare function getPlatformBackendName(platform?: NodeJS.Platform): NativeAudioBackendName;