@qwen-code/qwen-code 0.19.3 → 0.19.4-nightly.20260702.46814e4f1

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 (308) hide show
  1. package/bundled/loop/SKILL.md +22 -3
  2. package/bundled/loop/SKILL.test.ts +20 -0
  3. package/bundled/loop/autonomous-loop.test.ts +59 -0
  4. package/bundled/loop/autonomous-loop.ts +102 -0
  5. package/bundled/loop/loop-task-file.test.ts +1064 -0
  6. package/bundled/loop/loop-task-file.ts +404 -0
  7. package/bundled/loop/loop-tick-resolver.test.ts +906 -0
  8. package/bundled/loop/loop-tick-resolver.ts +416 -0
  9. package/bundled/qc-helper/SKILL.md +12 -5
  10. package/bundled/qc-helper/docs/configuration/auth.md +1 -1
  11. package/bundled/qc-helper/docs/configuration/settings.md +62 -32
  12. package/bundled/qc-helper/docs/features/approval-mode.md +3 -0
  13. package/bundled/qc-helper/docs/features/auto-mode.md +40 -0
  14. package/bundled/qc-helper/docs/features/channels/overview.md +81 -18
  15. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
  16. package/bundled/qc-helper/docs/features/code-review.md +17 -61
  17. package/bundled/qc-helper/docs/features/commands.md +42 -40
  18. package/bundled/qc-helper/docs/features/headless.md +19 -18
  19. package/bundled/qc-helper/docs/features/hooks.md +6 -1
  20. package/bundled/qc-helper/docs/features/mcp.md +3 -1
  21. package/bundled/qc-helper/docs/features/memory.md +1 -1
  22. package/bundled/qc-helper/docs/features/scheduled-tasks.md +10 -0
  23. package/bundled/qc-helper/docs/features/status-line.md +3 -3
  24. package/bundled/qc-helper/docs/ide-integration/ide-integration.md +4 -4
  25. package/bundled/qc-helper/docs/qwen-serve.md +53 -0
  26. package/bundled/qc-helper/docs/support/troubleshooting.md +11 -0
  27. package/bundled/review/DESIGN.md +21 -26
  28. package/bundled/review/SKILL.md +45 -129
  29. package/chunks/MaxSizedBox-GHGRQ2OS.js +69 -0
  30. package/chunks/{StandaloneSessionPicker-Z52JTYST.js → StandaloneSessionPicker-G7YTTM27.js} +49 -42
  31. package/chunks/{acpAgent-7RZUOWOM.js → acpAgent-SDOILBSU.js} +1325 -365
  32. package/chunks/{agent-4FG7WTHJ.js → agent-NTSXGV4L.js} +31 -25
  33. package/chunks/agent-headless-WYURMSAB.js +62 -0
  34. package/chunks/{anthropicContentGenerator-PFITVL7Y.js → anthropicContentGenerator-WL3LJOUB.js} +110 -31
  35. package/chunks/{artifact-tool-D2X7G3C3.js → artifact-tool-W76WC2JX.js} +3 -3
  36. package/chunks/{askUserQuestion-UGETICJQ.js → askUserQuestion-J3P6TH3V.js} +2 -2
  37. package/chunks/bridge-AMOL4W4P.js +73 -0
  38. package/chunks/{ca-IUFWESZL.js → ca-HCMB2I54.js} +10 -9
  39. package/chunks/channel-worker-supervisor-C3IB63V7.js +659 -0
  40. package/chunks/{chunk-STUWFKGD.js → chunk-26JIREA5.js} +466 -543
  41. package/chunks/{chunk-SLNKLLEO.js → chunk-2MRV62AU.js} +37 -8
  42. package/chunks/{chunk-ODLIHNOY.js → chunk-2U4HUMOL.js} +1 -1
  43. package/chunks/{chunk-CKQA6AWF.js → chunk-4D73HUOP.js} +1 -1
  44. package/chunks/{chunk-M2U5NM24.js → chunk-54YZOP7P.js} +309 -72
  45. package/chunks/{chunk-J7FA27RO.js → chunk-5LKL3PAU.js} +3 -3
  46. package/chunks/chunk-5P5XGNYH.js +93 -0
  47. package/chunks/{chunk-UFLGERMB.js → chunk-6JE32BRB.js} +178 -124
  48. package/chunks/{chunk-FKAVULLM.js → chunk-75AVTQJ2.js} +74 -10
  49. package/chunks/{chunk-I2LYBGNI.js → chunk-7IOMIYOE.js} +1 -1
  50. package/chunks/{chunk-4LUZAKMK.js → chunk-7KXAGQJ2.js} +1 -1
  51. package/chunks/{chunk-BXSHL2SF.js → chunk-7LUOQJ3D.js} +1 -1
  52. package/chunks/{chunk-YAINVQ3Q.js → chunk-A5OPLHFM.js} +18693 -17055
  53. package/chunks/chunk-AHNXYU4O.js +24 -0
  54. package/chunks/{chunk-UX4SGCGN.js → chunk-AVQDCKNF.js} +96 -22
  55. package/chunks/{chunk-HYCC3XM3.js → chunk-B236XPGF.js} +1 -1
  56. package/chunks/chunk-B6SZLQAZ.js +3523 -0
  57. package/chunks/{chunk-5DWXLGOM.js → chunk-BJBWRCSK.js} +1 -1
  58. package/chunks/chunk-BPFJQGY7.js +193 -0
  59. package/chunks/{chunk-SKQZZVAV.js → chunk-BZHLWC6T.js} +2 -2
  60. package/chunks/{chunk-U3KSMM7G.js → chunk-D5KISTLW.js} +339 -383
  61. package/chunks/{chunk-GT2FGICD.js → chunk-DE7YXUR7.js} +1 -1
  62. package/chunks/{chunk-BUUQ5HPX.js → chunk-DG573EOO.js} +1 -1
  63. package/chunks/{chunk-VVLOGDB6.js → chunk-DX3TKXNT.js} +2 -2
  64. package/chunks/chunk-E5A7LHNN.js +51 -0
  65. package/chunks/{chunk-3PJXIDKI.js → chunk-E6US47KI.js} +3 -27
  66. package/chunks/{chunk-QBZ22PQX.js → chunk-EWALXUAD.js} +3 -1
  67. package/chunks/{chunk-PDE7CSDS.js → chunk-FXKI7OW6.js} +2 -2
  68. package/chunks/{chunk-F3ZYSEY6.js → chunk-FY4TT4L4.js} +3 -3
  69. package/chunks/{chunk-QLDPRILK.js → chunk-G7OQ3RFJ.js} +3 -3
  70. package/chunks/{chunk-R2BXK7SX.js → chunk-GHOTR7HL.js} +6 -1
  71. package/chunks/{chunk-KMGMKW5Q.js → chunk-GLPV75ES.js} +9 -3
  72. package/chunks/{chunk-LD2XBG6Z.js → chunk-GO6LNQXT.js} +1 -39
  73. package/chunks/{chunk-CNLEDYE3.js → chunk-H6TNLOLM.js} +5 -5
  74. package/chunks/{chunk-JVHEVCAU.js → chunk-HLW4EGKR.js} +31 -6
  75. package/chunks/{chunk-I4H7PRWQ.js → chunk-HTWHAN44.js} +1 -1
  76. package/chunks/{chunk-QE6KJYLT.js → chunk-IPYE5BIS.js} +123 -25
  77. package/chunks/{chunk-EJYJYJZ2.js → chunk-IRJWHZWU.js} +3 -70
  78. package/chunks/{chunk-EDMZZFDU.js → chunk-J3YPTTNL.js} +930 -798
  79. package/chunks/{chunk-GGBIN5K7.js → chunk-JGAJMIJZ.js} +1 -1
  80. package/chunks/{chunk-N4EJFBN5.js → chunk-JVLP5US5.js} +427 -263
  81. package/chunks/{chunk-R5OP2ATH.js → chunk-JZG7VB6C.js} +11 -11
  82. package/chunks/{chunk-QI7GOGJR.js → chunk-KKQWC6WS.js} +1 -1
  83. package/chunks/{chunk-ADCIHOQZ.js → chunk-KX5QZRW2.js} +142 -30
  84. package/chunks/{chunk-SBBN4BWR.js → chunk-L7OJ3ZO3.js} +1 -1
  85. package/chunks/{chunk-NDOC6M5S.js → chunk-L7QPM2YD.js} +2 -2
  86. package/chunks/{chunk-BVSVIN45.js → chunk-LKWAVAB5.js} +3 -3
  87. package/chunks/{chunk-T4T2FNV4.js → chunk-LOW52WYZ.js} +2 -2
  88. package/chunks/{chunk-4QK3O43S.js → chunk-LU7BIVWC.js} +4 -4
  89. package/chunks/{chunk-ZP6UKOPB.js → chunk-LWGLBVWA.js} +1 -1
  90. package/chunks/{chunk-L7OKCI7T.js → chunk-M7BLWURA.js} +15 -1
  91. package/chunks/{chunk-PR32FRT6.js → chunk-MIM62IXS.js} +3 -3
  92. package/chunks/{chunk-RD6YJJJ6.js → chunk-MOUXUCXQ.js} +1 -1
  93. package/chunks/{chunk-VBZ452JT.js → chunk-MSNGFH6L.js} +494 -114
  94. package/chunks/{chunk-BX5YO7UW.js → chunk-MTNTVOJR.js} +542 -370
  95. package/chunks/chunk-MX2YXRER.js +44 -0
  96. package/chunks/chunk-NIOPRZNN.js +27 -0
  97. package/chunks/{chunk-SMYQZVZ3.js → chunk-NOGSPTLJ.js} +1 -1
  98. package/chunks/{chunk-DDMOU62Q.js → chunk-NPQWQYU6.js} +1 -1
  99. package/chunks/{chunk-MNF6S5PR.js → chunk-P5THQV6A.js} +4 -4
  100. package/chunks/{chunk-6V4NZFUS.js → chunk-PCYOT4PK.js} +5 -5
  101. package/chunks/{chunk-CF6BB3LT.js → chunk-PPFWEV7G.js} +10 -1
  102. package/chunks/{chunk-FXKVLFFY.js → chunk-PSFDB5FZ.js} +3 -3
  103. package/chunks/{chunk-XJYUPHRC.js → chunk-QOMAHFYI.js} +3 -3
  104. package/chunks/{chunk-J37FGIOA.js → chunk-QXPI7FEC.js} +38 -4
  105. package/chunks/{chunk-RRFZXMYP.js → chunk-QZDBHNMV.js} +691 -164
  106. package/chunks/{chunk-S7AKE7HL.js → chunk-R6RI2HIC.js} +63 -9
  107. package/chunks/{chunk-HZT4UCFB.js → chunk-RB7S52NJ.js} +4 -4
  108. package/chunks/{chunk-J33ZR6OJ.js → chunk-RK22ACPP.js} +16 -16
  109. package/chunks/chunk-RM3PGSGL.js +66 -0
  110. package/chunks/chunk-RNBYOUGV.js +42 -0
  111. package/chunks/chunk-S6RLAIUR.js +23 -0
  112. package/chunks/{chunk-3TV3HUWZ.js → chunk-SCYK2YLI.js} +81 -30
  113. package/chunks/{chunk-HPZTOP4I.js → chunk-SEKRT4SD.js} +133 -23
  114. package/chunks/chunk-SEZC2725.js +36 -0
  115. package/chunks/chunk-SIUQ3YYX.js +78 -0
  116. package/chunks/{chunk-O2VBQ3Y2.js → chunk-SJBIFVD2.js} +2 -2
  117. package/chunks/chunk-SYCJMSIJ.js +82 -0
  118. package/chunks/{chunk-JE5FVRPC.js → chunk-T22H4V4R.js} +48 -23
  119. package/chunks/{chunk-3227DZO4.js → chunk-T42ACHFI.js} +1 -1
  120. package/chunks/{chunk-UO5GVXQE.js → chunk-TENOUWY2.js} +3 -3
  121. package/chunks/{chunk-JOLIREYR.js → chunk-TOAUDIS7.js} +1 -1
  122. package/chunks/{chunk-QNKBEJO2.js → chunk-UA6XBZT7.js} +2776 -1289
  123. package/chunks/{chunk-O75BHFQW.js → chunk-UQTYK5SS.js} +2 -2
  124. package/chunks/{chunk-Y6YMRS3U.js → chunk-UY2TCIZS.js} +17 -3
  125. package/chunks/{chunk-FNJ7BDPH.js → chunk-UY7ZAYTY.js} +10 -7
  126. package/chunks/{chunk-UYT3MWEB.js → chunk-UYHWM24C.js} +30 -2
  127. package/chunks/{chunk-SMXULRAN.js → chunk-VXGPYF7U.js} +1 -1
  128. package/chunks/{chunk-BTLJ2MF5.js → chunk-W7CG5HPC.js} +3 -3
  129. package/chunks/{chunk-JJXWTVSK.js → chunk-XHZKDN7M.js} +34 -1
  130. package/chunks/{chunk-K5XU6E4T.js → chunk-XKSCTXPK.js} +2 -2
  131. package/chunks/chunk-Y4LITCRB.js +367 -0
  132. package/chunks/chunk-YHTNWGRR.js +239 -0
  133. package/chunks/{chunk-BKXBARJZ.js → chunk-YPCPZSZB.js} +1 -1
  134. package/chunks/{chunk-QWFNTRH4.js → chunk-YSM24SCE.js} +1 -1
  135. package/chunks/chunk-YTFBURQD.js +313 -0
  136. package/chunks/{chunk-NL4C3H6C.js → chunk-YXK4GPYO.js} +1 -1
  137. package/chunks/{chunk-RYLJU2DY.js → chunk-ZN5T4BHI.js} +1 -1
  138. package/chunks/{computer-use-JGB36FDW.js → computer-use-MTSVPLPY.js} +34 -28
  139. package/chunks/contextCommand-VGJ3BPTK.js +67 -0
  140. package/chunks/{cron-create-SKEY55RG.js → cron-create-6YTCOX6P.js} +4 -4
  141. package/chunks/{cron-delete-I3NAT32Z.js → cron-delete-E3NIFSUK.js} +4 -4
  142. package/chunks/{cron-list-6XRRL6TH.js → cron-list-Q64MNQNE.js} +4 -4
  143. package/chunks/daemon-EEB2RYOL.js +8453 -0
  144. package/chunks/daemon-status-provider-H5SNMK42.js +71 -0
  145. package/chunks/{de-EOW5PVHF.js → de-PLLFDERI.js} +10 -9
  146. package/chunks/{dist-NHEYYB2B.js → dist-ADMIQGHI.js} +2 -2
  147. package/chunks/{dist-J37VXPLD.js → dist-BCQ7INM7.js} +40 -15
  148. package/chunks/{dist-663NZ6MI.js → dist-KNZFCY5F.js} +116 -11
  149. package/chunks/{dist-LB6OGPVM.js → dist-LHUWC3K6.js} +26 -5
  150. package/chunks/{dist-PQPZ5Q4N.js → dist-WBBZ76JZ.js} +20 -9
  151. package/chunks/{earlyInputCapture-44RISVVJ.js → earlyInputCapture-U4ZIQSQU.js} +32 -26
  152. package/chunks/{edit-NN6GM5DT.js → edit-SYIQ2KBI.js} +41 -38
  153. package/chunks/{en-HPWEJBTR.js → en-M4EBUBNU.js} +32 -10
  154. package/chunks/{enter-worktree-PB3O2C7D.js → enter-worktree-HPPOO244.js} +31 -25
  155. package/chunks/{enterPlanMode-YQFNNSUA.js → enterPlanMode-56YYO52U.js} +41 -25
  156. package/chunks/{errors-LS7XU5DZ.js → errors-EO4SXCFP.js} +33 -27
  157. package/chunks/{exit-worktree-E2FTNSBK.js → exit-worktree-UDM7E6XH.js} +31 -25
  158. package/chunks/{exitPlanMode-GLYK2BUB.js → exitPlanMode-M6P3AWLJ.js} +149 -33
  159. package/chunks/{fast-path-WQ6M7LI7.js → fast-path-42P4QYWI.js} +33 -14
  160. package/chunks/{fast-path-settings-OAGU3X5H.js → fast-path-settings-UQLRFDQP.js} +2 -2
  161. package/chunks/{fr-BN5NKSAC.js → fr-MBMNQSQ6.js} +10 -9
  162. package/chunks/{gemini-2YFLVA2M.js → gemini-NRLXS5J7.js} +84 -70
  163. package/chunks/{geminiContentGenerator-XV6SV6CD.js → geminiContentGenerator-DLJPYYPA.js} +41 -5
  164. package/chunks/{glob-2H6CDDMK.js → glob-JPY3F74Y.js} +31 -25
  165. package/chunks/{grep-VXIUXM3C.js → grep-HW23YES5.js} +31 -25
  166. package/chunks/initializer-HWOZTC4A.js +67 -0
  167. package/chunks/{ja-7DEUB2TS.js → ja-HFV5QCHR.js} +10 -9
  168. package/chunks/{keychain-token-storage-YLMDLKXT.js → keychain-token-storage-GPAKRDKQ.js} +2 -2
  169. package/chunks/list-OZGAGRDG.js +71 -0
  170. package/chunks/loadedSettingsAdapter-RUTZVVIA.js +66 -0
  171. package/chunks/{loop-wakeup-CITGGQHA.js → loop-wakeup-G2EHBRGR.js} +5 -5
  172. package/chunks/{ls-R5WP4BGZ.js → ls-IDHUVSAG.js} +4 -4
  173. package/chunks/{lsp-GSICJMMW.js → lsp-FSRYXGFT.js} +2 -2
  174. package/chunks/{monitor-HKLRS2HQ.js → monitor-QVWEIXU3.js} +33 -26
  175. package/chunks/nonInteractiveCli-RV2WYPML.js +109 -0
  176. package/chunks/{notebook-edit-Y6SKSGTT.js → notebook-edit-B26W3FFH.js} +37 -34
  177. package/chunks/{openaiContentGenerator-J7G2FYJT.js → openaiContentGenerator-6TH7AZGQ.js} +15 -13
  178. package/chunks/pidfile-KW2QQJZI.js +73 -0
  179. package/chunks/{pt-TNZRNLQB.js → pt-2THT3YHA.js} +10 -9
  180. package/chunks/{qwenContentGenerator-5XIEM5GV.js → qwenContentGenerator-5IQAC7RN.js} +33 -27
  181. package/chunks/{qwenOAuth2-AG3PFFLZ.js → qwenOAuth2-LWLA6MQG.js} +5 -4
  182. package/chunks/{read-file-J7D552ZJ.js → read-file-CWFAHOI2.js} +11 -10
  183. package/chunks/{read-mcp-resource-DQQW7H7T.js → read-mcp-resource-PIJF24RO.js} +2 -2
  184. package/chunks/ripGrep-FTZGDKY4.js +60 -0
  185. package/chunks/{ru-NIAUBKCN.js → ru-Z67YJHBG.js} +10 -9
  186. package/chunks/{run-qwen-serve-SGEEVMXD.js → run-qwen-serve-FN2SW5ZI.js} +545 -97
  187. package/chunks/{scheduler-7CQI3S4Q.js → scheduler-BMS23O3I.js} +31 -25
  188. package/chunks/{send-message-EE4TWKVU.js → send-message-33PYFMCT.js} +20 -4
  189. package/chunks/serve-PXFYKL65.js +71 -0
  190. package/chunks/{server-4QMUWXPW.js → server-BRKALJ4F.js} +4132 -1175
  191. package/chunks/{session-NRO7UFOY.js → session-AQMISBP4.js} +205 -64
  192. package/chunks/{settings-SGWRDQSC.js → settings-JCPVUZMB.js} +35 -29
  193. package/chunks/{shell-62ANGIHL.js → shell-POHCRVN2.js} +31 -25
  194. package/chunks/{skill-VWAQAWW6.js → skill-QPEVHS6H.js} +13 -12
  195. package/chunks/spawnChannel-V3QT62TE.js +69 -0
  196. package/chunks/{src-KUV5J5Q2.js → src-IZSP7L6Y.js} +127 -32
  197. package/chunks/{startInteractiveUI-6EYJN3JV.js → startInteractiveUI-63KATISO.js} +16762 -16075
  198. package/chunks/{syntheticOutput-T5YHQ6S2.js → syntheticOutput-YOSWIHDJ.js} +3 -3
  199. package/chunks/{task-create-BLY7RHXX.js → task-create-NHS2NGB3.js} +9 -7
  200. package/chunks/{task-list-3QUYNVYR.js → task-list-5UIB564R.js} +7 -6
  201. package/chunks/{task-stop-U4RATK2V.js → task-stop-HGXZ2VZ3.js} +2 -2
  202. package/chunks/{task-update-U54O7KJX.js → task-update-IYYWUILG.js} +40 -7
  203. package/chunks/{team-create-LPOGCPM7.js → team-create-E5O2F3CA.js} +31 -25
  204. package/chunks/{team-delete-LKBYPASD.js → team-delete-FEKJCU4P.js} +7 -6
  205. package/chunks/team-plan-approval-2TU4YROB.js +202 -0
  206. package/chunks/theme-manager-37KOGPJL.js +64 -0
  207. package/chunks/{todoWrite-OYXKTVYN.js → todoWrite-TKMVZ2HT.js} +4 -4
  208. package/chunks/{tool-search-YPUFJ3ZQ.js → tool-search-4ZTGNSFI.js} +38 -11
  209. package/chunks/{trustedFolders-5B24TMEA.js → trustedFolders-RJ5WXJ6L.js} +32 -26
  210. package/chunks/{validateNonInterActiveAuth-BTDTYOVT.js → validateNonInterActiveAuth-ZWMHZAOK.js} +66 -55
  211. package/chunks/{web-fetch-EEB5LZYU.js → web-fetch-J4PIW36Q.js} +5 -4
  212. package/chunks/{workflow-LAWIW5LI.js → workflow-6PG2PC5M.js} +68 -39
  213. package/chunks/workspace-providers-status-4QIZN2W4.js +68 -0
  214. package/chunks/workspace-service-CYMCOEIO.js +78 -0
  215. package/chunks/{write-file-PCV226DJ.js → write-file-R354LGQF.js} +41 -40
  216. package/chunks/{zh-5EUYXASN.js → zh-SLZNSSZB.js} +32 -10
  217. package/chunks/{zh-TW-TR3XYGE5.js → zh-TW-P53C2SL5.js} +32 -10
  218. package/cli.js +6 -6
  219. package/locales/ca.js +15 -13
  220. package/locales/de.js +15 -13
  221. package/locales/en.js +52 -15
  222. package/locales/fr.js +15 -14
  223. package/locales/ja.js +15 -14
  224. package/locales/pt.js +15 -13
  225. package/locales/ru.js +15 -13
  226. package/locales/zh-TW.js +50 -14
  227. package/locales/zh.js +50 -14
  228. package/node_modules/@qwen-code/audio-capture/package.json +1 -1
  229. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  230. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  231. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  232. package/package.json +15 -6
  233. package/patches/chrome-devtools-mcp+1.4.0.patch +31 -0
  234. package/postinstall.js +50 -0
  235. package/web-shell/assets/{arc-DA7r8Ueo.js → arc-Bd3048nX.js} +1 -1
  236. package/web-shell/assets/{architectureDiagram-3BPJPVTR-ZDUxPtZ2.js → architectureDiagram-3BPJPVTR-DyzbzABx.js} +1 -1
  237. package/web-shell/assets/{blockDiagram-GPEHLZMM-vrtOf1kJ.js → blockDiagram-GPEHLZMM-CTjxm9Sy.js} +1 -1
  238. package/web-shell/assets/{c4Diagram-AAUBKEIU-BHFjzIi4.js → c4Diagram-AAUBKEIU-DSOFWNU6.js} +1 -1
  239. package/web-shell/assets/channel-oVoup_Ci.js +1 -0
  240. package/web-shell/assets/{chunk-2J33WTMH-mdeQVz59.js → chunk-2J33WTMH-D_PFdjo2.js} +1 -1
  241. package/web-shell/assets/{chunk-4BX2VUAB-BkKMlwBX.js → chunk-4BX2VUAB-52eG6wOT.js} +1 -1
  242. package/web-shell/assets/{chunk-55IACEB6-B7bnXNfu.js → chunk-55IACEB6-CGTZfKkC.js} +1 -1
  243. package/web-shell/assets/{chunk-727SXJPM-DGz8Mm6i.js → chunk-727SXJPM-CZ-qfRUm.js} +1 -1
  244. package/web-shell/assets/{chunk-AQP2D5EJ-BQAydUNk.js → chunk-AQP2D5EJ-B2dSDcqM.js} +1 -1
  245. package/web-shell/assets/{chunk-FMBD7UC4-GHr2LN_p.js → chunk-FMBD7UC4-Cfy3tyA0.js} +1 -1
  246. package/web-shell/assets/{chunk-ND2GUHAM-7R91lnUx.js → chunk-ND2GUHAM-CApNUpUq.js} +1 -1
  247. package/web-shell/assets/{chunk-QZHKN3VN-aTJD3lSQ.js → chunk-QZHKN3VN-CVBG8kgg.js} +1 -1
  248. package/web-shell/assets/classDiagram-4FO5ZUOK-B8WsaT2G.js +1 -0
  249. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B8WsaT2G.js +1 -0
  250. package/web-shell/assets/{cose-bilkent-S5V4N54A-BTf8t1RL.js → cose-bilkent-S5V4N54A-URd77-_-.js} +1 -1
  251. package/web-shell/assets/{dagre-BM42HDAG-_sgp3WuA.js → dagre-BM42HDAG-C07H4G9-.js} +1 -1
  252. package/web-shell/assets/{diagram-2AECGRRQ-CROtRy1w.js → diagram-2AECGRRQ-CYbpXrSn.js} +1 -1
  253. package/web-shell/assets/{diagram-5GNKFQAL-BqGRzwSc.js → diagram-5GNKFQAL-SI8s6fjX.js} +1 -1
  254. package/web-shell/assets/{diagram-KO2AKTUF-CMrcEtA7.js → diagram-KO2AKTUF-mBkC4RTW.js} +1 -1
  255. package/web-shell/assets/{diagram-LMA3HP47-BRydGNW5.js → diagram-LMA3HP47-CyBPDzWJ.js} +1 -1
  256. package/web-shell/assets/{diagram-OG6HWLK6-D0ilgNjV.js → diagram-OG6HWLK6-DwK7kBCu.js} +1 -1
  257. package/web-shell/assets/{erDiagram-TEJ5UH35-2lnQeJUM.js → erDiagram-TEJ5UH35-Ds1StEUd.js} +1 -1
  258. package/web-shell/assets/{flowDiagram-I6XJVG4X-C_ZMdQiC.js → flowDiagram-I6XJVG4X-BDC4-jHO.js} +1 -1
  259. package/web-shell/assets/{ganttDiagram-6RSMTGT7-Dw9V_Ny0.js → ganttDiagram-6RSMTGT7-CV2aHQqf.js} +1 -1
  260. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-HDXI-F1B.js → gitGraphDiagram-PVQCEYII-B8RcuV_L.js} +1 -1
  261. package/web-shell/assets/index-B5WZ0qP1.js +717 -0
  262. package/web-shell/assets/index-CYE1IMd1.css +5 -0
  263. package/web-shell/assets/{infoDiagram-5YYISTIA-CuB8Ebua.js → infoDiagram-5YYISTIA-DUPoTf50.js} +1 -1
  264. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D_tyhVwh.js → ishikawaDiagram-YF4QCWOH-FDYOx9rf.js} +1 -1
  265. package/web-shell/assets/{journeyDiagram-JHISSGLW-CgCwJQNU.js → journeyDiagram-JHISSGLW-C5_ohMRp.js} +1 -1
  266. package/web-shell/assets/{kanban-definition-UN3LZRKU-PZUtcbPx.js → kanban-definition-UN3LZRKU-Bn4UnOMG.js} +1 -1
  267. package/web-shell/assets/{linear-CZqRdJIU.js → linear-Bl0pKQtY.js} +1 -1
  268. package/web-shell/assets/{mermaid.core-CPW_4UEF.js → mermaid.core-sevQFoji.js} +72 -72
  269. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D_Y75ID7.js → mindmap-definition-RKZ34NQL-DSH4JZF9.js} +1 -1
  270. package/web-shell/assets/{pieDiagram-4H26LBE5-Q4dTyLeF.js → pieDiagram-4H26LBE5-acWvdQTD.js} +1 -1
  271. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-ckw329Ft.js → quadrantDiagram-W4KKPZXB-DlggX4Sm.js} +1 -1
  272. package/web-shell/assets/{requirementDiagram-4Y6WPE33-DbVDm4It.js → requirementDiagram-4Y6WPE33--mMqwmV8.js} +1 -1
  273. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CHuZ_ecH.js → sankeyDiagram-5OEKKPKP-BtV9tZ77.js} +1 -1
  274. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DU2YSpq-.js → sequenceDiagram-3UESZ5HK-iDQzPFlj.js} +1 -1
  275. package/web-shell/assets/{stateDiagram-AJRCARHV-CA9PEBUo.js → stateDiagram-AJRCARHV-CsCyQLZ3.js} +1 -1
  276. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CPapECG9.js +1 -0
  277. package/web-shell/assets/{timeline-definition-PNZ67QCA-Bhlo4WVc.js → timeline-definition-PNZ67QCA-Dl0rnKvr.js} +1 -1
  278. package/web-shell/assets/{vennDiagram-CIIHVFJN-6xtPLsyl.js → vennDiagram-CIIHVFJN-qF7nTZzA.js} +1 -1
  279. package/web-shell/assets/{wardley-L42UT6IY-3eozmXPf.js → wardley-L42UT6IY-fWoK9i7F.js} +1 -1
  280. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BOn6hKss.js → wardleyDiagram-YWT4CUSO-pHGfkMnc.js} +1 -1
  281. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BsP4-I_y.js → xychartDiagram-2RQKCTM6-3Doc4Trz.js} +1 -1
  282. package/web-shell/index.html +18 -2
  283. package/chunks/MaxSizedBox-QNF3EIGU.js +0 -63
  284. package/chunks/agent-headless-RQ5BTX3G.js +0 -56
  285. package/chunks/bridge-JL2PMCIW.js +0 -66
  286. package/chunks/chunk-5GOVVXEV.js +0 -73
  287. package/chunks/chunk-BC3C4F3Q.js +0 -40
  288. package/chunks/chunk-BW4KCQFD.js +0 -1103
  289. package/chunks/chunk-RKIZXJMB.js +0 -13
  290. package/chunks/contextCommand-WYU6OQ2F.js +0 -61
  291. package/chunks/daemon-status-provider-HH2EC5FI.js +0 -65
  292. package/chunks/headlessSafetyWarnings-TBE35GJ4.js +0 -55
  293. package/chunks/initializer-2Y7SLOKV.js +0 -61
  294. package/chunks/list-ZAFHZ7OS.js +0 -65
  295. package/chunks/loadedSettingsAdapter-6KJXD6M3.js +0 -60
  296. package/chunks/nonInteractiveCli-5W4GIZQM.js +0 -96
  297. package/chunks/ripGrep-IEIFIWP4.js +0 -54
  298. package/chunks/serve-V6GVZR6U.js +0 -65
  299. package/chunks/spawnChannel-3VHW5EPY.js +0 -63
  300. package/chunks/theme-manager-LYLGAERF.js +0 -58
  301. package/chunks/workspace-providers-status-PIAFVYHA.js +0 -62
  302. package/chunks/workspace-service-YAIOD4HG.js +0 -71
  303. package/web-shell/assets/channel-iRo68q4Q.js +0 -1
  304. package/web-shell/assets/classDiagram-4FO5ZUOK-iHF24a8X.js +0 -1
  305. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-iHF24a8X.js +0 -1
  306. package/web-shell/assets/index-CHmzAWys.css +0 -5
  307. package/web-shell/assets/index-w6GTOHh1.js +0 -713
  308. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-t1LRI0oY.js +0 -1
@@ -3,37 +3,42 @@
3
3
  import {
4
4
  handleAtCommand,
5
5
  resolveAtCommandQuery
6
- } from "./chunk-UFLGERMB.js";
6
+ } from "./chunk-6JE32BRB.js";
7
7
  import {
8
8
  isAtCommand,
9
9
  isBtwCommand,
10
10
  isSlashCommand,
11
11
  normalizePartList,
12
12
  recordGoalStatusItem
13
- } from "./chunk-RRFZXMYP.js";
13
+ } from "./chunk-QZDBHNMV.js";
14
14
  import {
15
15
  SHELL_COMMAND_NAME,
16
16
  useSessionStats
17
- } from "./chunk-J7FA27RO.js";
17
+ } from "./chunk-5LKL3PAU.js";
18
18
  import {
19
19
  require_react
20
20
  } from "./chunk-KYMBIKIW.js";
21
21
  import {
22
22
  themeManager
23
- } from "./chunk-I4H7PRWQ.js";
23
+ } from "./chunk-HTWHAN44.js";
24
24
  import {
25
25
  formatMemoryUsage
26
26
  } from "./chunk-KHDZHZMH.js";
27
+ import {
28
+ isInlineModelOverrideAllowed
29
+ } from "./chunk-UYHWM24C.js";
27
30
  import {
28
31
  t
29
- } from "./chunk-R5OP2ATH.js";
32
+ } from "./chunk-JZG7VB6C.js";
30
33
  import {
34
+ AutonomousLoopTickResolver,
31
35
  CoreToolScheduler,
32
36
  ShellExecutionService,
33
37
  activeGoalEquals,
34
38
  clearActiveGoal,
35
39
  compactToolResultDisplayForHistory,
36
40
  createDuplicateProviderToolCallResponse,
41
+ detectAutonomousSentinel,
37
42
  findRepeatedDuplicateProviderToolCall,
38
43
  generateToolUseSummary,
39
44
  getActiveGoal,
@@ -46,7 +51,7 @@ import {
46
51
  setActiveGoal,
47
52
  shouldRunVisionBridge,
48
53
  splitImageParts
49
- } from "./chunk-YAINVQ3Q.js";
54
+ } from "./chunk-A5OPLHFM.js";
50
55
  import {
51
56
  ApiCancelEvent,
52
57
  ConversationFinishedEvent,
@@ -56,17 +61,17 @@ import {
56
61
  logConversationFinishedEvent,
57
62
  logUserPrompt,
58
63
  logUserRetry
59
- } from "./chunk-QNKBEJO2.js";
64
+ } from "./chunk-UA6XBZT7.js";
60
65
  import {
61
66
  isAnyAutoMemPath
62
- } from "./chunk-RD6YJJJ6.js";
67
+ } from "./chunk-MOUXUCXQ.js";
63
68
  import {
64
69
  ToolNames
65
- } from "./chunk-BX5YO7UW.js";
70
+ } from "./chunk-MTNTVOJR.js";
66
71
  import {
67
72
  getUnsupportedImageFormatWarning,
68
73
  isSupportedImageMimeType
69
- } from "./chunk-U3KSMM7G.js";
74
+ } from "./chunk-YTFBURQD.js";
70
75
  import {
71
76
  FinishReason
72
77
  } from "./chunk-55ZMG67I.js";
@@ -75,7 +80,7 @@ import {
75
80
  createDebugLogger,
76
81
  getErrorMessage,
77
82
  isNodeError
78
- } from "./chunk-UX4SGCGN.js";
83
+ } from "./chunk-AVQDCKNF.js";
79
84
  import {
80
85
  init_esbuild_shims
81
86
  } from "./chunk-A4BMJM77.js";
@@ -744,6 +749,18 @@ import { promises as fs2 } from "node:fs";
744
749
  import path3 from "node:path";
745
750
  import process from "node:process";
746
751
  var debugLogger3 = createDebugLogger("GEMINI_STREAM");
752
+ function applyModelOverride(modelOverrideRef, inlineActiveRef, value, isInline) {
753
+ modelOverrideRef.current = value;
754
+ inlineActiveRef.current = isInline;
755
+ debugLogger3.debug(
756
+ `model override ${value === void 0 ? "cleared" : `set to ${value}`} (inline=${isInline})`
757
+ );
758
+ }
759
+ __name(applyModelOverride, "applyModelOverride");
760
+ function clearModelOverride(modelOverrideRef, inlineActiveRef) {
761
+ applyModelOverride(modelOverrideRef, inlineActiveRef, void 0, false);
762
+ }
763
+ __name(clearModelOverride, "clearModelOverride");
747
764
  var MID_TURN_AT_COMMAND_RESOLVE_TIMEOUT_MS = 1e4;
748
765
  var MID_TURN_AT_COMMAND_RESOLVE_TIMEOUT_MESSAGE = "Mid-turn @ command resolution timed out";
749
766
  function formatVisionBridgeNotice(result) {
@@ -945,6 +962,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
945
962
  const processedMemoryToolsRef = (0, import_react5.useRef)(/* @__PURE__ */ new Set());
946
963
  const submitPromptOnCompleteRef = (0, import_react5.useRef)(null);
947
964
  const modelOverrideRef = (0, import_react5.useRef)(void 0);
965
+ const inlineModelOverrideActiveRef = (0, import_react5.useRef)(false);
948
966
  const handledProviderToolCallIdsRef = (0, import_react5.useRef)(/* @__PURE__ */ new Set());
949
967
  const duplicateProviderToolCallResponseIdsRef = (0, import_react5.useRef)(
950
968
  /* @__PURE__ */ new Set()
@@ -1130,7 +1148,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
1130
1148
  config.getArenaAgentClient()?.reportCancelled();
1131
1149
  const prompt_id = config.getSessionId() + "########" + getPromptCount();
1132
1150
  const cancellationEvent = new ApiCancelEvent(
1133
- config.getModel(),
1151
+ modelOverrideRef.current ?? config.getModel(),
1134
1152
  prompt_id,
1135
1153
  config.getContentGeneratorConfig()?.authType,
1136
1154
  loopWakeupsCancelled > 0 ? loopWakeupsCancelled : void 0
@@ -1253,6 +1271,23 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
1253
1271
  case "submit_prompt": {
1254
1272
  localQueryToSendToGemini = slashCommandResult.content;
1255
1273
  submitPromptOnCompleteRef.current = slashCommandResult.onComplete ?? null;
1274
+ if (slashCommandResult.modelOverride) {
1275
+ if (isInlineModelOverrideAllowed(
1276
+ config,
1277
+ slashCommandResult.modelOverride
1278
+ )) {
1279
+ applyModelOverride(
1280
+ modelOverrideRef,
1281
+ inlineModelOverrideActiveRef,
1282
+ slashCommandResult.modelOverride,
1283
+ true
1284
+ );
1285
+ } else {
1286
+ debugLogger3.warn(
1287
+ `ignoring model override '${slashCommandResult.modelOverride}': not a model on the active provider`
1288
+ );
1289
+ }
1290
+ }
1256
1291
  return {
1257
1292
  queryToSend: localQueryToSendToGemini,
1258
1293
  shouldProceed: true
@@ -1286,6 +1321,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
1286
1321
  id: insertedId,
1287
1322
  text: trimmedQuery
1288
1323
  };
1324
+ await new Promise((r) => setImmediate(r));
1289
1325
  }
1290
1326
  if (isAtCommand(trimmedQuery)) {
1291
1327
  const atCommandResult = await handleAtCommand({
@@ -1624,7 +1660,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
1624
1660
  addItem(
1625
1661
  {
1626
1662
  type: "info",
1627
- text: `\u26A0\uFE0F ${message}`
1663
+ text: `\u26A0 ${message}`
1628
1664
  },
1629
1665
  userMessageTimestamp
1630
1666
  );
@@ -1635,13 +1671,16 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
1635
1671
  },
1636
1672
  [addItem, clearRetryCountdown]
1637
1673
  );
1674
+ const autonomousLoopTickResolverRef = (0, import_react5.useRef)(null);
1638
1675
  const handleChatCompressionEvent = (0, import_react5.useCallback)(
1639
1676
  (eventValue, userMessageTimestamp) => {
1677
+ autonomousLoopTickResolverRef.current?.resetCache();
1640
1678
  if (pendingHistoryItemRef.current) {
1641
1679
  commitItem(pendingHistoryItemRef.current, userMessageTimestamp);
1642
1680
  setPendingHistoryItem(null);
1643
1681
  }
1644
- const reasonClause = eventValue?.triggerReason === "image_overflow" ? `accumulated enough tool screenshots to trigger compaction for ${config.getModel()}` : `approached the input token limit for ${config.getModel()}`;
1682
+ const activeModel = modelOverrideRef.current ?? config.getModel();
1683
+ const reasonClause = eventValue?.triggerReason === "image_overflow" ? `accumulated enough tool screenshots to trigger compaction for ${activeModel}` : `approached the input token limit for ${activeModel}`;
1645
1684
  return addItem(
1646
1685
  {
1647
1686
  type: "info",
@@ -1666,9 +1705,9 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
1666
1705
  (value) => addItem(
1667
1706
  {
1668
1707
  type: "error",
1669
- text: `\u{1F6AB} Session token limit exceeded: ${value.currentTokens.toLocaleString()} tokens > ${value.limit.toLocaleString()} limit.
1708
+ text: `\u2717 Session token limit exceeded: ${value.currentTokens.toLocaleString()} tokens > ${value.limit.toLocaleString()} limit.
1670
1709
 
1671
- \u{1F4A1} Solutions:
1710
+ \u2605 Solutions:
1672
1711
  \u2022 Start a new session: Use /clear command
1673
1712
  \u2022 Increase limit: Add "sessionTokenLimit": (e.g., 128000) to your settings.json
1674
1713
  \u2022 Compress history: Use /compress command to compress history`
@@ -2089,10 +2128,13 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2089
2128
  async (query, submitType = "userQuery" /* UserQuery */, prompt_id, metadata) => {
2090
2129
  const allowConcurrentBtwDuringResponse = submitType === "userQuery" /* UserQuery */ && streamingState === "responding" /* Responding */ && typeof query === "string" && isBtwCommand(query);
2091
2130
  if (isSubmittingQueryRef.current && submitType !== "toolResult" /* ToolResult */ && !allowConcurrentBtwDuringResponse) {
2131
+ metadata?.onDeliveryFailed?.();
2092
2132
  return;
2093
2133
  }
2094
- if ((streamingState === "responding" /* Responding */ || streamingState === "waiting_for_confirmation" /* WaitingForConfirmation */) && submitType !== "toolResult" /* ToolResult */ && !allowConcurrentBtwDuringResponse)
2134
+ if ((streamingState === "responding" /* Responding */ || streamingState === "waiting_for_confirmation" /* WaitingForConfirmation */) && submitType !== "toolResult" /* ToolResult */ && !allowConcurrentBtwDuringResponse) {
2135
+ metadata?.onDeliveryFailed?.();
2095
2136
  return;
2137
+ }
2096
2138
  isSubmittingQueryRef.current = true;
2097
2139
  loopDetectedRef.current = false;
2098
2140
  if (submitType !== "toolResult" /* ToolResult */ && !allowConcurrentBtwDuringResponse) {
@@ -2106,8 +2148,18 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2106
2148
  const userMessageTimestamp = Date.now();
2107
2149
  if (submitType !== "toolResult" /* ToolResult */ && !allowConcurrentBtwDuringResponse) {
2108
2150
  setModelSwitchedFromQuotaError(false);
2109
- if (submitType !== "retry" /* Retry */) {
2110
- modelOverrideRef.current = void 0;
2151
+ const droppingInlineOverrideOnRetry = submitType === "retry" /* Retry */ && inlineModelOverrideActiveRef.current;
2152
+ if (submitType !== "retry" /* Retry */ || inlineModelOverrideActiveRef.current) {
2153
+ if (droppingInlineOverrideOnRetry) {
2154
+ addItem(
2155
+ {
2156
+ type: "info",
2157
+ text: `Inline model override cleared on retry \u2014 retrying on the session model (${config.getModel()}).`
2158
+ },
2159
+ userMessageTimestamp
2160
+ );
2161
+ }
2162
+ clearModelOverride(modelOverrideRef, inlineModelOverrideActiveRef);
2111
2163
  }
2112
2164
  if (pendingRetryCountdownItemRef.current || pendingRetryErrorItemRef.current) {
2113
2165
  const pendingError = pendingRetryErrorItemRef.current;
@@ -2137,6 +2189,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2137
2189
  );
2138
2190
  if (!shouldProceed || queryToSend === null) {
2139
2191
  isSubmittingQueryRef.current = false;
2192
+ metadata?.onDeliveryFailed?.();
2140
2193
  return;
2141
2194
  }
2142
2195
  if (submitType === "userQuery" /* UserQuery */ || submitType === "cron" /* Cron */ || submitType === "teammate" /* Teammate */) {
@@ -2163,7 +2216,8 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2163
2216
  queryToSend.length,
2164
2217
  prompt_id,
2165
2218
  config.getContentGeneratorConfig()?.authType,
2166
- queryToSend
2219
+ queryToSend,
2220
+ modelOverrideRef.current ?? config.getModel()
2167
2221
  )
2168
2222
  );
2169
2223
  }
@@ -2206,6 +2260,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2206
2260
  if (processingStatus === 1 /* UserCancelled */) {
2207
2261
  submitPromptOnCompleteRef.current = null;
2208
2262
  isSubmittingQueryRef.current = false;
2263
+ metadata?.onDeliveryFailed?.();
2209
2264
  return;
2210
2265
  }
2211
2266
  if (pendingHistoryItemRef.current) {
@@ -2228,6 +2283,11 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2228
2283
  loopDetectedRef.current = false;
2229
2284
  handleLoopDetectedEvent();
2230
2285
  }
2286
+ if (lastPromptErroredRef.current) {
2287
+ metadata?.onDeliveryFailed?.();
2288
+ } else {
2289
+ metadata?.onDelivered?.();
2290
+ }
2231
2291
  const onComplete = submitPromptOnCompleteRef.current;
2232
2292
  if (onComplete) {
2233
2293
  submitPromptOnCompleteRef.current = null;
@@ -2253,6 +2313,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2253
2313
  }
2254
2314
  }
2255
2315
  } catch (error) {
2316
+ metadata?.onDeliveryFailed?.();
2256
2317
  if (error instanceof UnauthorizedError) {
2257
2318
  onAuthError("Session expired or is unauthorized.");
2258
2319
  } else if (!isNodeError(error) || error.name !== "AbortError") {
@@ -2476,7 +2537,20 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2476
2537
  const promptId = prompt_ids[0] ?? pendingDuplicatePromptId;
2477
2538
  for (const toolCall of geminiTools) {
2478
2539
  if ("modelOverride" in toolCall.response) {
2479
- modelOverrideRef.current = toolCall.response.modelOverride;
2540
+ if (inlineModelOverrideActiveRef.current) {
2541
+ debugLogger3.debug(
2542
+ `skill-tool model override (${String(
2543
+ toolCall.response.modelOverride
2544
+ )}) blocked: inline override active`
2545
+ );
2546
+ } else {
2547
+ applyModelOverride(
2548
+ modelOverrideRef,
2549
+ inlineModelOverrideActiveRef,
2550
+ toolCall.response.modelOverride,
2551
+ false
2552
+ );
2553
+ }
2480
2554
  }
2481
2555
  }
2482
2556
  if (dualOutput) {
@@ -2763,6 +2837,10 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2763
2837
  }, [toolCalls, config, onDebugMessage, history, geminiClient, storage]);
2764
2838
  const notificationQueueRef = (0, import_react5.useRef)([]);
2765
2839
  const [notificationTrigger, setNotificationTrigger] = (0, import_react5.useState)(0);
2840
+ const getAutonomousLoopTickResolver = (0, import_react5.useCallback)(() => {
2841
+ autonomousLoopTickResolverRef.current ??= new AutonomousLoopTickResolver();
2842
+ return autonomousLoopTickResolverRef.current;
2843
+ }, []);
2766
2844
  const notificationQueueSessionIdRef = (0, import_react5.useRef)(sessionStates.sessionId);
2767
2845
  (0, import_react5.useEffect)(() => {
2768
2846
  if (notificationQueueSessionIdRef.current === sessionStates.sessionId) {
@@ -2770,6 +2848,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2770
2848
  }
2771
2849
  notificationQueueSessionIdRef.current = sessionStates.sessionId;
2772
2850
  notificationQueueRef.current = [];
2851
+ autonomousLoopTickResolverRef.current?.resetCache();
2773
2852
  }, [sessionStates.sessionId]);
2774
2853
  const cronSessionIdRef = (0, import_react5.useRef)(sessionStates.sessionId);
2775
2854
  cronSessionIdRef.current = sessionStates.sessionId;
@@ -2789,11 +2868,28 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2789
2868
  if (stopped) return;
2790
2869
  scheduler.start(
2791
2870
  (job) => {
2792
- const label = job.prompt.slice(0, 40);
2793
2871
  const source = job.cronExpr === "@wakeup" ? "Loop" : "Cron";
2872
+ const autonomousMode = detectAutonomousSentinel(job.prompt);
2873
+ let label = job.prompt.slice(0, 40);
2874
+ let modelText = job.prompt;
2875
+ if (autonomousMode) {
2876
+ if (job.missed) return;
2877
+ const resolver = getAutonomousLoopTickResolver();
2878
+ const tick = resolver.resolveAutonomous(autonomousMode);
2879
+ label = "Autonomous loop tick";
2880
+ modelText = tick.modelText;
2881
+ notificationQueueRef.current.push({
2882
+ displayText: `${job.missed ? "Missed" : source}: ${label}`,
2883
+ modelText,
2884
+ sendMessageType: "cron" /* Cron */,
2885
+ onDelivered: /* @__PURE__ */ __name(() => resolver.markDelivered(), "onDelivered")
2886
+ });
2887
+ setNotificationTrigger((n) => n + 1);
2888
+ return;
2889
+ }
2794
2890
  notificationQueueRef.current.push({
2795
2891
  displayText: `${job.missed ? "Missed" : source}: ${label}`,
2796
- modelText: job.prompt,
2892
+ modelText,
2797
2893
  sendMessageType: "cron" /* Cron */
2798
2894
  });
2799
2895
  setNotificationTrigger((n) => n + 1);
@@ -2808,7 +2904,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2808
2904
  process.stderr.write(summary + "\n");
2809
2905
  }
2810
2906
  };
2811
- }, [config, isConfigInitialized]);
2907
+ }, [config, getAutonomousLoopTickResolver, isConfigInitialized]);
2812
2908
  (0, import_react5.useEffect)(() => {
2813
2909
  const registry = config.getBackgroundTaskRegistry();
2814
2910
  registry.setNotificationCallback((displayText, modelText) => {
@@ -2866,7 +2962,9 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2866
2962
  Date.now()
2867
2963
  );
2868
2964
  submitQuery(item.modelText, item.sendMessageType, void 0, {
2869
- notificationDisplayText: item.displayText
2965
+ notificationDisplayText: item.displayText,
2966
+ onDelivered: item.onDelivered,
2967
+ onDeliveryFailed: item.onDeliveryFailed
2870
2968
  });
2871
2969
  return;
2872
2970
  }
@@ -1,5 +1,8 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ require_safer
5
+ } from "./chunk-SYCJMSIJ.js";
3
6
  import {
4
7
  init_esbuild_shims
5
8
  } from "./chunk-A4BMJM77.js";
@@ -9,75 +12,6 @@ import {
9
12
  __require
10
13
  } from "./chunk-J2S4EL5Y.js";
11
14
 
12
- // node_modules/safer-buffer/safer.js
13
- var require_safer = __commonJS({
14
- "node_modules/safer-buffer/safer.js"(exports, module) {
15
- "use strict";
16
- init_esbuild_shims();
17
- var buffer = __require("buffer");
18
- var Buffer = buffer.Buffer;
19
- var safer = {};
20
- var key;
21
- for (key in buffer) {
22
- if (!buffer.hasOwnProperty(key)) continue;
23
- if (key === "SlowBuffer" || key === "Buffer") continue;
24
- safer[key] = buffer[key];
25
- }
26
- var Safer = safer.Buffer = {};
27
- for (key in Buffer) {
28
- if (!Buffer.hasOwnProperty(key)) continue;
29
- if (key === "allocUnsafe" || key === "allocUnsafeSlow") continue;
30
- Safer[key] = Buffer[key];
31
- }
32
- safer.Buffer.prototype = Buffer.prototype;
33
- if (!Safer.from || Safer.from === Uint8Array.from) {
34
- Safer.from = function(value, encodingOrOffset, length) {
35
- if (typeof value === "number") {
36
- throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value);
37
- }
38
- if (value && typeof value.length === "undefined") {
39
- throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);
40
- }
41
- return Buffer(value, encodingOrOffset, length);
42
- };
43
- }
44
- if (!Safer.alloc) {
45
- Safer.alloc = function(size, fill, encoding) {
46
- if (typeof size !== "number") {
47
- throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size);
48
- }
49
- if (size < 0 || size >= 2 * (1 << 30)) {
50
- throw new RangeError('The value "' + size + '" is invalid for option "size"');
51
- }
52
- var buf = Buffer(size);
53
- if (!fill || fill.length === 0) {
54
- buf.fill(0);
55
- } else if (typeof encoding === "string") {
56
- buf.fill(fill, encoding);
57
- } else {
58
- buf.fill(fill);
59
- }
60
- return buf;
61
- };
62
- }
63
- if (!safer.kStringMaxLength) {
64
- try {
65
- safer.kStringMaxLength = process.binding("buffer").kStringMaxLength;
66
- } catch (e) {
67
- }
68
- }
69
- if (!safer.constants) {
70
- safer.constants = {
71
- MAX_LENGTH: safer.kMaxLength
72
- };
73
- if (safer.kStringMaxLength) {
74
- safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;
75
- }
76
- }
77
- module.exports = safer;
78
- }
79
- });
80
-
81
15
  // node_modules/iconv-lite/lib/bom-handling.js
82
16
  var require_bom_handling = __commonJS({
83
17
  "node_modules/iconv-lite/lib/bom-handling.js"(exports) {
@@ -3698,6 +3632,5 @@ var require_lib = __commonJS({
3698
3632
  });
3699
3633
 
3700
3634
  export {
3701
- require_safer,
3702
3635
  require_lib
3703
3636
  };