@qwen-code/qwen-code 0.19.2 → 0.19.3-nightly.20260701.a974594d7
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.
- package/bundled/extension-creator/SKILL.md +357 -0
- package/bundled/loop/SKILL.md +34 -10
- package/bundled/loop/SKILL.test.ts +52 -0
- package/bundled/loop/autonomous-loop.test.ts +59 -0
- package/bundled/loop/autonomous-loop.ts +102 -0
- package/bundled/loop/loop-task-file.test.ts +1064 -0
- package/bundled/loop/loop-task-file.ts +404 -0
- package/bundled/loop/loop-tick-resolver.test.ts +864 -0
- package/bundled/loop/loop-tick-resolver.ts +416 -0
- package/bundled/qc-helper/SKILL.md +26 -19
- package/bundled/qc-helper/docs/configuration/auth.md +11 -11
- package/bundled/qc-helper/docs/configuration/model-providers.md +13 -13
- package/bundled/qc-helper/docs/configuration/settings.md +77 -75
- package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
- package/bundled/qc-helper/docs/features/commands.md +108 -77
- package/bundled/qc-helper/docs/features/hooks.md +6 -1
- package/bundled/qc-helper/docs/features/memory.md +53 -1
- package/bundled/qc-helper/docs/features/status-line.md +3 -3
- package/bundled/qc-helper/docs/ide-integration/ide-integration.md +4 -4
- package/bundled/qc-helper/docs/qwen-serve.md +24 -2
- package/bundled/qc-helper/docs/support/tos-privacy.md +16 -3
- package/bundled/qc-helper/docs/support/troubleshooting.md +6 -0
- package/chunks/{MaxSizedBox-7RERNLFK.js → MaxSizedBox-UZHJ73JB.js} +29 -27
- package/chunks/{StandaloneSessionPicker-S22XBSN6.js → StandaloneSessionPicker-GGUIZWCE.js} +42 -37
- package/chunks/{acpAgent-4MCETHF2.js → acpAgent-QYZFICEZ.js} +1292 -332
- package/chunks/{agent-K3ENVYSB.js → agent-2EN7YNSW.js} +24 -23
- package/chunks/{agent-headless-HO3V3A3A.js → agent-headless-SLTEZ5LV.js} +24 -23
- package/chunks/{anthropicContentGenerator-E3TQ5XJJ.js → anthropicContentGenerator-CA3JTAMO.js} +33 -12
- package/chunks/{artifact-tool-QA4KRO3B.js → artifact-tool-RM7WINJO.js} +3 -3
- package/chunks/{askUserQuestion-HMWXW6VN.js → askUserQuestion-J3P6QAJ7.js} +2 -2
- package/chunks/{bridge-4LV2HBH2.js → bridge-HZVAUTMX.js} +29 -28
- package/chunks/{ca-7WC7ELX6.js → ca-RYOETBUW.js} +10 -9
- package/chunks/{chunk-JXQ23SNT.js → chunk-2JKEQWDZ.js} +623 -78
- package/chunks/chunk-32MCHZQC.js +73 -0
- package/chunks/{chunk-PXFFKNCO.js → chunk-35FH347N.js} +5308 -2500
- package/chunks/{chunk-5JZLXFPD.js → chunk-3O2BJMFW.js} +11 -11
- package/chunks/{chunk-2JD55C6G.js → chunk-3TK7FSCP.js} +2 -2
- package/chunks/{chunk-USGMPVOY.js → chunk-4722VFFU.js} +19 -10
- package/chunks/chunk-6FIWYVN4.js +4932 -0
- package/chunks/{chunk-I2RFAW6Q.js → chunk-7SP275SH.js} +7 -5
- package/chunks/{chunk-5R4SBCX6.js → chunk-AIBPG5MB.js} +3 -3
- package/chunks/{chunk-C4K3FEQ2.js → chunk-AVQDCKNF.js} +124 -21
- package/chunks/{chunk-OTBK43JR.js → chunk-B236XPGF.js} +1 -1
- package/chunks/{chunk-WA5OJGFL.js → chunk-B5MPZI4K.js} +458 -125
- package/chunks/{chunk-5DWXLGOM.js → chunk-BJBWRCSK.js} +1 -1
- package/chunks/{chunk-4W4T77MO.js → chunk-BLAE2TCO.js} +109 -6
- package/chunks/chunk-BMFMJINR.js +45 -0
- package/chunks/{chunk-T2VDEFUU.js → chunk-BZHLWC6T.js} +2 -2
- package/chunks/{chunk-XU5P23GN.js → chunk-CA4ML3VH.js} +3 -3
- package/chunks/{chunk-WGAEWQTF.js → chunk-DBR7PF4B.js} +1 -2
- package/chunks/{chunk-S566HKUS.js → chunk-DHXWNSJA.js} +15 -1
- package/chunks/{chunk-LLFFKXZZ.js → chunk-DJ25MIU2.js} +167 -43
- package/chunks/{chunk-KBXLIVWQ.js → chunk-DX3TKXNT.js} +2 -2
- package/chunks/{chunk-OIC6S73E.js → chunk-E5I6YSNO.js} +1 -1
- package/chunks/{chunk-TXVGVZYR.js → chunk-ESVSWG6Z.js} +3 -3
- package/chunks/{chunk-EX4W6ZYG.js → chunk-EUURTJY7.js} +1 -1
- package/chunks/{chunk-QBZ22PQX.js → chunk-EWALXUAD.js} +3 -1
- package/chunks/{chunk-F6XNTYNE.js → chunk-FQDMX5IL.js} +30 -307
- package/chunks/{chunk-3QFE4OTE.js → chunk-FR3II765.js} +4 -4
- package/chunks/{chunk-VYFMN7C6.js → chunk-FV4SQ54H.js} +382 -55
- package/chunks/{chunk-ZD3NW5KL.js → chunk-FZY7NH37.js} +63 -9
- package/chunks/{chunk-CI5O6SQL.js → chunk-G525INVW.js} +4 -4
- package/chunks/{chunk-CGOMICBE.js → chunk-GDIG7TMG.js} +34 -1
- package/chunks/{chunk-R2BXK7SX.js → chunk-GHOTR7HL.js} +6 -1
- package/chunks/{chunk-TZM5JIAX.js → chunk-GZKQ36JS.js} +10 -7
- package/chunks/{chunk-BS64PXY3.js → chunk-HIYUAXBG.js} +1 -1
- package/chunks/{chunk-TMBPDHXD.js → chunk-HTWHAN44.js} +1 -1
- package/chunks/{chunk-EL5IHQON.js → chunk-HUGAEYZR.js} +6 -27
- package/chunks/{chunk-2BIF2NVV.js → chunk-HWG4XLD7.js} +2 -2
- package/chunks/{chunk-I5T6PIBQ.js → chunk-I4MXURND.js} +1076 -954
- package/chunks/{chunk-JTYRZODB.js → chunk-IBEM64M4.js} +39 -11
- package/chunks/{chunk-XKBP7M7A.js → chunk-IKO44NAT.js} +149 -31
- package/chunks/{chunk-2BAQ3ACS.js → chunk-JERW36RG.js} +404 -4
- package/chunks/{chunk-TOEGRAVX.js → chunk-JV7A66DR.js} +28 -16
- package/chunks/{chunk-3RJ3ZPPR.js → chunk-KKQWC6WS.js} +7 -7
- package/chunks/{chunk-EXMX5YHG.js → chunk-KXVVXAAC.js} +1 -1
- package/chunks/{chunk-Z7XXFPGP.js → chunk-LDWTYE33.js} +1 -1
- package/chunks/{chunk-X6EDWN44.js → chunk-LWGLBVWA.js} +1 -1
- package/chunks/{chunk-NYOHZYHM.js → chunk-LXEW6BHF.js} +45 -3
- package/chunks/{chunk-BGUDAULQ.js → chunk-LXGWLOCM.js} +5 -5
- package/chunks/{chunk-ZUAXI2OA.js → chunk-M2U5NM24.js} +188 -11366
- package/chunks/{chunk-BNXANYLH.js → chunk-MOUXUCXQ.js} +81 -1
- package/chunks/{chunk-FPACXT7T.js → chunk-MTJVHQDP.js} +534 -164
- package/chunks/{chunk-UAARJR2G.js → chunk-N4V4VBP6.js} +2 -2
- package/chunks/chunk-NIOPRZNN.js +27 -0
- package/chunks/{chunk-2TJ3YN6Q.js → chunk-NOYV2NXI.js} +517 -490
- package/chunks/{chunk-PRYMDRBV.js → chunk-NPQWQYU6.js} +1 -1
- package/chunks/{chunk-J6AW7O5D.js → chunk-NVTRORSK.js} +2 -2
- package/chunks/{chunk-PF523XJX.js → chunk-OE5J6UA7.js} +1 -1
- package/chunks/{chunk-RS4HRC75.js → chunk-OEY3YAL2.js} +99 -8
- package/chunks/{chunk-R36VMVEP.js → chunk-PLQTLKMR.js} +5 -5
- package/chunks/{chunk-UN3C6GOR.js → chunk-PPFWEV7G.js} +10 -108
- package/chunks/chunk-Q3JOGB4U.js +481 -0
- package/chunks/{chunk-HG6YKEBI.js → chunk-Q7TDHJ2G.js} +192 -30
- package/chunks/{chunk-EW6C27XX.js → chunk-QHHNFG22.js} +9 -3
- package/chunks/chunk-QYUE6W3T.js +123 -0
- package/chunks/{chunk-GZCJS5WH.js → chunk-SJBIFVD2.js} +2 -2
- package/chunks/{chunk-3UALQ56H.js → chunk-T42ACHFI.js} +1 -1
- package/chunks/chunk-T44AF4I6.js +690 -0
- package/chunks/{chunk-DBZUXSSV.js → chunk-TMILTLP3.js} +6 -6
- package/chunks/{chunk-EEEZIVFJ.js → chunk-TOAUDIS7.js} +1 -1
- package/chunks/chunk-UAKXW3DN.js +30 -0
- package/chunks/{chunk-VQRYPFCV.js → chunk-V5YJAUHW.js} +10 -460
- package/chunks/{chunk-D5E5TMYH.js → chunk-VHRREANT.js} +16 -2
- package/chunks/{chunk-5RVSM6NW.js → chunk-VN4CKYUW.js} +1 -1
- package/chunks/chunk-VXGPYF7U.js +37 -0
- package/chunks/{chunk-UAARVVBI.js → chunk-WGY3GIPP.js} +1 -1
- package/chunks/{chunk-GYZQA2FO.js → chunk-WJAY4WXR.js} +1 -1
- package/chunks/chunk-XKSCTXPK.js +167 -0
- package/chunks/chunk-YCEHOJZJ.js +840 -0
- package/chunks/{chunk-BG4BIP7F.js → chunk-YCRTJYSQ.js} +4 -2
- package/chunks/{chunk-CGEGHF2C.js → chunk-YPCPZSZB.js} +1 -1
- package/chunks/chunk-YTFBURQD.js +313 -0
- package/chunks/{chunk-HGNSRCRB.js → chunk-YXK4GPYO.js} +1 -1
- package/chunks/{chunk-OQHQHJRK.js → chunk-Z34RYLRO.js} +151 -4775
- package/chunks/chunk-ZGSV5ORL.js +11273 -0
- package/chunks/{computer-use-6BBRNT6S.js → computer-use-FCNWHVPW.js} +103 -49
- package/chunks/{contextCommand-UJAJ6N57.js → contextCommand-FVFMZZEU.js} +26 -25
- package/chunks/{cron-create-4KQE6YLH.js → cron-create-IY5NMIHQ.js} +4 -4
- package/chunks/{cron-delete-THME66UP.js → cron-delete-OLNEQWKO.js} +6 -6
- package/chunks/{cron-list-7A54SJ5N.js → cron-list-YAUAUV24.js} +5 -5
- package/chunks/{daemon-status-provider-CSL3BUOY.js → daemon-status-provider-42JEXENZ.js} +32 -32
- package/chunks/{de-ACHALDED.js → de-HB5NJXGB.js} +10 -9
- package/chunks/{dist-BD27IA3L.js → dist-4FCNM6KJ.js} +2 -2
- package/chunks/{dist-OD2FY543.js → dist-K4XZILIO.js} +1 -1
- package/chunks/{dist-BOOH5JWN.js → dist-SU6L7ZNJ.js} +114 -9
- package/chunks/{dist-QHJRBCMP.js → dist-UKPWQJCL.js} +44 -2
- package/chunks/{dist-QFFZWACU.js → dist-VD7HXTML.js} +20 -9
- package/chunks/{earlyInputCapture-X6KMCSHD.js → earlyInputCapture-FFFEC6P4.js} +25 -24
- package/chunks/{edit-7J6WXARF.js → edit-32ILSGZY.js} +72 -30
- package/chunks/{en-NCUBOJOY.js → en-U3LWGSFX.js} +19 -9
- package/chunks/{enter-worktree-KULCKJPJ.js → enter-worktree-XWZKIN6A.js} +24 -23
- package/chunks/{enterPlanMode-H2CIOLMH.js → enterPlanMode-LPFFY7BJ.js} +24 -23
- package/chunks/{errors-6G2JYR54.js → errors-UXBPYPI2.js} +26 -25
- package/chunks/{exit-worktree-ECBWBVC5.js → exit-worktree-IBS4UIU7.js} +24 -23
- package/chunks/{exitPlanMode-DQV56GTW.js → exitPlanMode-JA72YHII.js} +24 -23
- package/chunks/{fast-path-35JJFS3C.js → fast-path-7UU67Y2W.js} +30 -13
- package/chunks/{fast-path-settings-TSVI53EB.js → fast-path-settings-UQLRFDQP.js} +3 -2
- package/chunks/{fr-GVKZ27MF.js → fr-XY3NQFCM.js} +10 -9
- package/chunks/{gemini-NDTG7WAX.js → gemini-GMVKJNMX.js} +211 -105
- package/chunks/{geminiContentGenerator-XTG6SFLA.js → geminiContentGenerator-7NIFF2L4.js} +4 -4
- package/chunks/{glob-SJ2JBZK4.js → glob-4NJCW5HI.js} +24 -23
- package/chunks/{grep-BRMWFEWR.js → grep-PAIMLQEL.js} +24 -23
- package/chunks/{initializer-P5AXF7PV.js → initializer-R6KU4VYM.js} +31 -28
- package/chunks/{ja-FKZ2WZ4D.js → ja-J7YAG7SA.js} +10 -9
- package/chunks/{keychain-token-storage-CSYMNRPP.js → keychain-token-storage-GPAKRDKQ.js} +2 -2
- package/chunks/{list-6COK34BP.js → list-H7LXAO64.js} +32 -29
- package/chunks/{loadedSettingsAdapter-XIUTN245.js → loadedSettingsAdapter-H27JMTLU.js} +30 -27
- package/chunks/{loop-wakeup-33GPXJLA.js → loop-wakeup-Y3OIRQFM.js} +7 -7
- package/chunks/{ls-BYQY7RVV.js → ls-TVJEYS7O.js} +4 -4
- package/chunks/{lsp-X54RO4IV.js → lsp-JZSDVR3F.js} +2 -2
- package/chunks/{monitor-DH7KFSJV.js → monitor-JSIHDPXP.js} +24 -23
- package/chunks/nonInteractiveCli-Y4CHOETG.js +100 -0
- package/chunks/{notebook-edit-D4R4ZLMA.js → notebook-edit-SHRNL2UM.js} +52 -23
- package/chunks/{openaiContentGenerator-F74IPQ6E.js → openaiContentGenerator-ORZZ7VFO.js} +13 -12
- package/chunks/{pt-SY5NCFGR.js → pt-6RTAA6SS.js} +10 -9
- package/chunks/{qwenContentGenerator-ATTK5P4D.js → qwenContentGenerator-H643PL2G.js} +26 -25
- package/chunks/{qwenOAuth2-K4AASPCV.js → qwenOAuth2-OI2B7PES.js} +5 -4
- package/chunks/{read-file-767G23OY.js → read-file-5PRNPTTY.js} +8 -8
- package/chunks/{read-mcp-resource-I5HCZJ6X.js → read-mcp-resource-QTXGKTEV.js} +2 -2
- package/chunks/{ripGrep-4OMMGSWX.js → ripGrep-JIKZMABJ.js} +24 -23
- package/chunks/{ru-FWNXJG4F.js → ru-AUBGJ2C4.js} +10 -9
- package/chunks/{run-qwen-serve-REKSTYRA.js → run-qwen-serve-PQV7QOHZ.js} +284 -52
- package/chunks/{scheduler-UNTFDQLG.js → scheduler-OS3R5MGU.js} +24 -23
- package/chunks/{send-message-2DAFXEYP.js → send-message-DKGHWSTF.js} +2 -2
- package/chunks/{serve-KZ56QB5S.js → serve-LVYZDKCZ.js} +31 -29
- package/chunks/{server-BV5TZUMU.js → server-P4YIH35I.js} +11458 -8447
- package/chunks/{session-OIBXFSGD.js → session-DE4TZBKH.js} +195 -58
- package/chunks/{settings-WJTCBIRA.js → settings-DFTYMJYF.js} +30 -27
- package/chunks/{shell-WC52IBHW.js → shell-3GNQLNV7.js} +24 -23
- package/chunks/{skill-U7F7JR4M.js → skill-NCNG4KKZ.js} +38 -11
- package/chunks/{spawnChannel-EI2E5BCW.js → spawnChannel-DHRIMDVL.js} +26 -25
- package/chunks/{src-4F6FBZFI.js → src-PNZYGM3R.js} +104 -28
- package/chunks/{startInteractiveUI-SFRVB3CE.js → startInteractiveUI-P6GZBFQW.js} +2817 -2500
- package/chunks/{syntheticOutput-PPS3HDVA.js → syntheticOutput-X7L5HWLN.js} +3 -3
- package/chunks/{task-create-OUYCA553.js → task-create-AWEUI4GI.js} +6 -6
- package/chunks/{task-list-WAX7I2IA.js → task-list-KZ3VJLDU.js} +5 -5
- package/chunks/{task-stop-CAIL6FNH.js → task-stop-GUNOZKJ5.js} +2 -2
- package/chunks/{task-update-AHEO5OUT.js → task-update-Y56GP6DU.js} +6 -6
- package/chunks/{team-create-3WC7CIIW.js → team-create-6JMW3KQK.js} +24 -23
- package/chunks/{team-delete-HGHFG23B.js → team-delete-6AFRGDJY.js} +5 -5
- package/chunks/{theme-manager-DICFCT3P.js → theme-manager-FEHQO22G.js} +25 -24
- package/chunks/{todoWrite-IFBMN3FH.js → todoWrite-JRS6NOEU.js} +4 -4
- package/chunks/{tool-search-L5K7HLER.js → tool-search-IXAEKS7J.js} +101 -16
- package/chunks/trustedFolders-SJRXNHZE.js +76 -0
- package/chunks/types-QX5C3CHJ.js +12 -0
- package/chunks/{validateNonInterActiveAuth-GCH4Z6KI.js → validateNonInterActiveAuth-HCH7OBDH.js} +56 -51
- package/chunks/{web-fetch-B5IIQ5TT.js → web-fetch-RELNL37A.js} +29 -15
- package/chunks/{workflow-OB3AND7I.js → workflow-M2COBI7R.js} +38 -32
- package/chunks/{workspace-providers-status-ZIR5EPOO.js → workspace-providers-status-GOCWYDMK.js} +32 -29
- package/chunks/workspace-service-34C7SUBU.js +75 -0
- package/chunks/{write-file-SEXBNDZM.js → write-file-E52WRXZL.js} +67 -31
- package/chunks/{zh-RBEGQVQT.js → zh-F5T4WWZO.js} +19 -9
- package/chunks/{zh-TW-QGAVRXT3.js → zh-TW-LKLBTZHE.js} +19 -9
- package/cli-entry.js +20 -9
- package/cli.js +6 -6
- package/locales/ca.js +15 -13
- package/locales/de.js +15 -13
- package/locales/en.js +31 -13
- package/locales/fr.js +16 -14
- package/locales/ja.js +15 -14
- package/locales/pt.js +15 -13
- package/locales/ru.js +15 -13
- package/locales/zh-TW.js +28 -12
- package/locales/zh.js +28 -12
- package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +35 -0
- package/node_modules/@qwen-code/audio-capture/dist/index.js +48 -0
- package/node_modules/@qwen-code/audio-capture/dist/index.js.map +1 -0
- package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +7 -0
- package/node_modules/@qwen-code/audio-capture/dist/platform.js +18 -0
- package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +1 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +21 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +58 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +5 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +84 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +19 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +6 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +207 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +7 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +43 -0
- package/node_modules/@qwen-code/audio-capture/package.json +30 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
- package/package.json +18 -6
- package/patches/chrome-devtools-mcp+1.4.0.patch +31 -0
- package/postinstall.js +50 -0
- package/web-shell/assets/{arc-D_ae_Y9k.js → arc-C2DILvUl.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BMLRjppa.js → architectureDiagram-3BPJPVTR-b8gZ2cNw.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-qVDQC8KL.js → blockDiagram-GPEHLZMM-BuRpghMj.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-CxWS6MBd.js → c4Diagram-AAUBKEIU-2ItdhFmE.js} +1 -1
- package/web-shell/assets/channel-eRvn2UA3.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-BtNuY5Yp.js → chunk-2J33WTMH-B1QXa0q3.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BU-x368d.js → chunk-4BX2VUAB-DXfhKlNq.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DRgTLvBu.js → chunk-55IACEB6-ClSNjxLo.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-D2aElv7q.js → chunk-727SXJPM-Dsh2wisB.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BwHCMRQ0.js → chunk-AQP2D5EJ-C1TkY5AR.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-BMyPH-ku.js → chunk-FMBD7UC4-CGtN9XR6.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-BNKTstUf.js → chunk-ND2GUHAM-BHiPi1SS.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-gD3vsFId.js → chunk-QZHKN3VN-CzG3I5o1.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-YZNwy1rx.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-YZNwy1rx.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BG9FAsXE.js → cose-bilkent-S5V4N54A-EgrIoH_K.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-Cy1sR7om.js → dagre-BM42HDAG-BUnpdX8S.js} +1 -1
- package/web-shell/assets/default-aEtf0G7-.svg +1 -0
- package/web-shell/assets/{diagram-2AECGRRQ-Bxi1I_Vu.js → diagram-2AECGRRQ-BlLUCVYu.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BGCJjO6y.js → diagram-5GNKFQAL-FG-enmjQ.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CMTeLXp7.js → diagram-KO2AKTUF-BlzmTONk.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BN1wyAGh.js → diagram-LMA3HP47-CoBQ8mIx.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-UYSG_zcp.js → diagram-OG6HWLK6-DvxV6sX8.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-DqXL08lw.js → erDiagram-TEJ5UH35-Jq1tpAoj.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BPJ9SFji.js → flowDiagram-I6XJVG4X-CbtYOry5.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BEd9Pnms.js → ganttDiagram-6RSMTGT7-ZEn2VEKR.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DrNRH3oi.js → gitGraphDiagram-PVQCEYII-BZh-LkhJ.js} +1 -1
- package/web-shell/assets/index-5FhE0ORO.css +5 -0
- package/web-shell/assets/index-CDTGmqVm.js +720 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CFYBrkVI.js → infoDiagram-5YYISTIA-B9HuZygK.js} +1 -1
- package/web-shell/assets/insert-DmRbh9Rv.svg +1 -0
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-Dxsddth7.js → ishikawaDiagram-YF4QCWOH-D76cNpYG.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-DxaDK80t.js → journeyDiagram-JHISSGLW-6bGo7P1t.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-Q0jQCOct.js → kanban-definition-UN3LZRKU-DuYyRBvB.js} +1 -1
- package/web-shell/assets/{linear-DGGM2kcP.js → linear-CpdSW1BC.js} +1 -1
- package/web-shell/assets/{mermaid.core-ByoxnWut.js → mermaid.core-s5xbZMMj.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-C0ZseHsi.js → mindmap-definition-RKZ34NQL-go01fZ2y.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-MQXNhl5A.js → pieDiagram-4H26LBE5-BfuZiEHO.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DIR4ee2A.js → quadrantDiagram-W4KKPZXB-DsoINqV6.js} +1 -1
- package/web-shell/assets/queue-DWpnpFgW.svg +1 -0
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-BTR0UdYQ.js → requirementDiagram-4Y6WPE33-B7FU4LiU.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-sfnhMELN.js → sankeyDiagram-5OEKKPKP-BEDjFnGB.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DXczHOHH.js → sequenceDiagram-3UESZ5HK-gzmmL5tK.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-DdE_KQFH.js → stateDiagram-AJRCARHV-BtHD4IN_.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DFy6gLDd.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-DIc61uE8.js → timeline-definition-PNZ67QCA-T_8gmMCf.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BF7ODmxB.js → vennDiagram-CIIHVFJN-DdjuqnjO.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-3pc1MEaw.js → wardley-L42UT6IY-Cgtrvb37.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-9jnPcZuP.js → wardleyDiagram-YWT4CUSO-BW3f3-yW.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-DcthaZK6.js → xychartDiagram-2RQKCTM6-BUS9IKkc.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-B6HQGTYR.js +0 -410
- package/chunks/chunk-RKIZXJMB.js +0 -13
- package/chunks/headlessSafetyWarnings-LJ6FJX77.js +0 -57
- package/chunks/nonInteractiveCli-7575LBXP.js +0 -91
- package/chunks/workspace-service-OM5D4OI2.js +0 -60
- package/web-shell/assets/channel-DYPNiTww.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-p_g25Tni.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-p_g25Tni.js +0 -1
- package/web-shell/assets/index-CpOXWDPh.js +0 -714
- package/web-shell/assets/index-oVK7qhre.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BHUSEndU.js +0 -1
|
@@ -3,48 +3,55 @@
|
|
|
3
3
|
import {
|
|
4
4
|
handleAtCommand,
|
|
5
5
|
resolveAtCommandQuery
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YCEHOJZJ.js";
|
|
7
7
|
import {
|
|
8
8
|
isAtCommand,
|
|
9
9
|
isBtwCommand,
|
|
10
10
|
isSlashCommand,
|
|
11
11
|
normalizePartList,
|
|
12
12
|
recordGoalStatusItem
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-NOYV2NXI.js";
|
|
14
14
|
import {
|
|
15
15
|
SHELL_COMMAND_NAME,
|
|
16
16
|
useSessionStats
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-BLAE2TCO.js";
|
|
18
18
|
import {
|
|
19
19
|
require_react
|
|
20
20
|
} from "./chunk-KYMBIKIW.js";
|
|
21
21
|
import {
|
|
22
22
|
themeManager
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-HTWHAN44.js";
|
|
24
24
|
import {
|
|
25
25
|
formatMemoryUsage
|
|
26
26
|
} from "./chunk-KHDZHZMH.js";
|
|
27
|
+
import {
|
|
28
|
+
isInlineModelOverrideAllowed
|
|
29
|
+
} from "./chunk-OEY3YAL2.js";
|
|
27
30
|
import {
|
|
28
31
|
t
|
|
29
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-3O2BJMFW.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,
|
|
42
|
+
findRepeatedDuplicateProviderToolCall,
|
|
37
43
|
generateToolUseSummary,
|
|
38
44
|
getActiveGoal,
|
|
39
45
|
hasImageParts,
|
|
40
46
|
isBinary,
|
|
47
|
+
markDuplicateProviderToolCallResponseSent,
|
|
41
48
|
parseAndFormatApiError,
|
|
42
49
|
promptIdContext,
|
|
43
50
|
runVisionBridge,
|
|
44
51
|
setActiveGoal,
|
|
45
52
|
shouldRunVisionBridge,
|
|
46
53
|
splitImageParts
|
|
47
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-35FH347N.js";
|
|
48
55
|
import {
|
|
49
56
|
ApiCancelEvent,
|
|
50
57
|
ConversationFinishedEvent,
|
|
@@ -54,17 +61,17 @@ import {
|
|
|
54
61
|
logConversationFinishedEvent,
|
|
55
62
|
logUserPrompt,
|
|
56
63
|
logUserRetry
|
|
57
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-B5MPZI4K.js";
|
|
58
65
|
import {
|
|
59
66
|
isAnyAutoMemPath
|
|
60
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-MOUXUCXQ.js";
|
|
61
68
|
import {
|
|
62
69
|
ToolNames
|
|
63
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-JV7A66DR.js";
|
|
64
71
|
import {
|
|
65
72
|
getUnsupportedImageFormatWarning,
|
|
66
73
|
isSupportedImageMimeType
|
|
67
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-YTFBURQD.js";
|
|
68
75
|
import {
|
|
69
76
|
FinishReason
|
|
70
77
|
} from "./chunk-55ZMG67I.js";
|
|
@@ -73,7 +80,7 @@ import {
|
|
|
73
80
|
createDebugLogger,
|
|
74
81
|
getErrorMessage,
|
|
75
82
|
isNodeError
|
|
76
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-AVQDCKNF.js";
|
|
77
84
|
import {
|
|
78
85
|
init_esbuild_shims
|
|
79
86
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -742,34 +749,34 @@ import { promises as fs2 } from "node:fs";
|
|
|
742
749
|
import path3 from "node:path";
|
|
743
750
|
import process from "node:process";
|
|
744
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");
|
|
745
764
|
var MID_TURN_AT_COMMAND_RESOLVE_TIMEOUT_MS = 1e4;
|
|
746
765
|
var MID_TURN_AT_COMMAND_RESOLVE_TIMEOUT_MESSAGE = "Mid-turn @ command resolution timed out";
|
|
747
|
-
var VISION_BRIDGE_TRANSCRIPT_NOTICE_LIMIT = 2048;
|
|
748
|
-
var TERMINAL_CONTROL_CHARS = /[\u0000-\u0008\u000B-\u001F\u007F-\u009F]/g;
|
|
749
|
-
function truncateVisionBridgeTranscript(transcript) {
|
|
750
|
-
const safe = transcript.replace(TERMINAL_CONTROL_CHARS, "");
|
|
751
|
-
if (safe.length <= VISION_BRIDGE_TRANSCRIPT_NOTICE_LIMIT) {
|
|
752
|
-
return safe;
|
|
753
|
-
}
|
|
754
|
-
return `${safe.slice(0, VISION_BRIDGE_TRANSCRIPT_NOTICE_LIMIT).trimEnd()}
|
|
755
|
-
[Transcript truncated]`;
|
|
756
|
-
}
|
|
757
|
-
__name(truncateVisionBridgeTranscript, "truncateVisionBridgeTranscript");
|
|
758
766
|
function formatVisionBridgeNotice(result) {
|
|
759
767
|
const modelName = result.modelId ?? "vision model";
|
|
760
768
|
const target = result.modelEndpoint ? `${modelName} (${result.modelEndpoint})` : modelName;
|
|
761
769
|
const egressNote = result.egressOccurred ? ` Your image and prompt/context were sent to ${target}.` : "";
|
|
762
770
|
if (result.status === "failed") {
|
|
763
771
|
const reason = result.egressOccurred ? "the vision model request failed" : "the vision bridge could not run";
|
|
764
|
-
return
|
|
772
|
+
return `Vision bridge (${modelName}) failed: ${reason}.${egressNote} The image was not interpreted.`;
|
|
765
773
|
}
|
|
766
774
|
if (result.status === "skipped") {
|
|
767
|
-
return
|
|
775
|
+
return `Vision bridge cancelled.${egressNote}`;
|
|
768
776
|
}
|
|
769
777
|
const omitted = result.omittedCount > 0 ? ` (${result.omittedCount} image(s) omitted)` : "";
|
|
770
|
-
const header =
|
|
771
|
-
return
|
|
772
|
-
${truncateVisionBridgeTranscript(result.transcript)}` : header;
|
|
778
|
+
const header = `Converted ${result.convertedCount} image(s)${omitted} to text via ${target}. Your image and prompt/context were sent to that model.`;
|
|
779
|
+
return header;
|
|
773
780
|
}
|
|
774
781
|
__name(formatVisionBridgeNotice, "formatVisionBridgeNotice");
|
|
775
782
|
function extractLastAssistantText(history) {
|
|
@@ -955,7 +962,11 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
955
962
|
const processedMemoryToolsRef = (0, import_react5.useRef)(/* @__PURE__ */ new Set());
|
|
956
963
|
const submitPromptOnCompleteRef = (0, import_react5.useRef)(null);
|
|
957
964
|
const modelOverrideRef = (0, import_react5.useRef)(void 0);
|
|
965
|
+
const inlineModelOverrideActiveRef = (0, import_react5.useRef)(false);
|
|
958
966
|
const handledProviderToolCallIdsRef = (0, import_react5.useRef)(/* @__PURE__ */ new Set());
|
|
967
|
+
const duplicateProviderToolCallResponseIdsRef = (0, import_react5.useRef)(
|
|
968
|
+
/* @__PURE__ */ new Set()
|
|
969
|
+
);
|
|
959
970
|
const pendingDuplicateToolResponsesRef = (0, import_react5.useRef)([]);
|
|
960
971
|
const immediateDuplicateToolResponsesRef = (0, import_react5.useRef)(null);
|
|
961
972
|
const streamingResponseLengthRef = (0, import_react5.useRef)(0);
|
|
@@ -1129,6 +1140,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
1129
1140
|
turnCancelledRef.current = true;
|
|
1130
1141
|
isSubmittingQueryRef.current = false;
|
|
1131
1142
|
abortControllerRef.current?.abort();
|
|
1143
|
+
const loopWakeupsCancelled = config.getCronScheduler()?.cancelAllWakeups() ?? 0;
|
|
1132
1144
|
for (const ac of auxiliaryAbortRefsRef.current) {
|
|
1133
1145
|
ac.abort();
|
|
1134
1146
|
}
|
|
@@ -1136,9 +1148,10 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
1136
1148
|
config.getArenaAgentClient()?.reportCancelled();
|
|
1137
1149
|
const prompt_id = config.getSessionId() + "########" + getPromptCount();
|
|
1138
1150
|
const cancellationEvent = new ApiCancelEvent(
|
|
1139
|
-
config.getModel(),
|
|
1151
|
+
modelOverrideRef.current ?? config.getModel(),
|
|
1140
1152
|
prompt_id,
|
|
1141
|
-
config.getContentGeneratorConfig()?.authType
|
|
1153
|
+
config.getContentGeneratorConfig()?.authType,
|
|
1154
|
+
loopWakeupsCancelled > 0 ? loopWakeupsCancelled : void 0
|
|
1142
1155
|
);
|
|
1143
1156
|
logApiCancel(config, cancellationEvent);
|
|
1144
1157
|
if (pendingHistoryItemRef.current) {
|
|
@@ -1151,6 +1164,15 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
1151
1164
|
},
|
|
1152
1165
|
Date.now()
|
|
1153
1166
|
);
|
|
1167
|
+
if (loopWakeupsCancelled > 0) {
|
|
1168
|
+
addItem(
|
|
1169
|
+
{
|
|
1170
|
+
type: "info" /* INFO */,
|
|
1171
|
+
text: `Stopped the self-paced loop: cancelled ${loopWakeupsCancelled} pending wakeup${loopWakeupsCancelled === 1 ? "" : "s"}.`
|
|
1172
|
+
},
|
|
1173
|
+
Date.now()
|
|
1174
|
+
);
|
|
1175
|
+
}
|
|
1154
1176
|
setPendingHistoryItem(null);
|
|
1155
1177
|
clearRetryCountdown();
|
|
1156
1178
|
try {
|
|
@@ -1188,7 +1210,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
1188
1210
|
if (bridgeResult.status !== "skipped" || bridgeResult.egressOccurred) {
|
|
1189
1211
|
addItem(
|
|
1190
1212
|
{
|
|
1191
|
-
type: bridgeResult.status === "failed" ? "error" /* ERROR */ : "
|
|
1213
|
+
type: bridgeResult.status === "failed" ? "error" /* ERROR */ : "vision_notice" /* VISION_NOTICE */,
|
|
1192
1214
|
text: formatVisionBridgeNotice(bridgeResult)
|
|
1193
1215
|
},
|
|
1194
1216
|
timestamp
|
|
@@ -1249,6 +1271,23 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
1249
1271
|
case "submit_prompt": {
|
|
1250
1272
|
localQueryToSendToGemini = slashCommandResult.content;
|
|
1251
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
|
+
}
|
|
1252
1291
|
return {
|
|
1253
1292
|
queryToSend: localQueryToSendToGemini,
|
|
1254
1293
|
shouldProceed: true
|
|
@@ -1427,6 +1466,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
1427
1466
|
if (newThoughtBuffer.trim().length === 0) {
|
|
1428
1467
|
return newThoughtBuffer;
|
|
1429
1468
|
}
|
|
1469
|
+
streamingResponseLengthRef.current += thoughtText.length;
|
|
1430
1470
|
const startingNewThought = currentThoughtBuffer.trim().length === 0;
|
|
1431
1471
|
const description = startingNewThought ? stripLeadingBlankLines(newThoughtBuffer) : thoughtText;
|
|
1432
1472
|
if (startingNewThought) {
|
|
@@ -1619,7 +1659,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
1619
1659
|
addItem(
|
|
1620
1660
|
{
|
|
1621
1661
|
type: "info",
|
|
1622
|
-
text: `\u26A0
|
|
1662
|
+
text: `\u26A0 ${message}`
|
|
1623
1663
|
},
|
|
1624
1664
|
userMessageTimestamp
|
|
1625
1665
|
);
|
|
@@ -1630,13 +1670,16 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
1630
1670
|
},
|
|
1631
1671
|
[addItem, clearRetryCountdown]
|
|
1632
1672
|
);
|
|
1673
|
+
const autonomousLoopTickResolverRef = (0, import_react5.useRef)(null);
|
|
1633
1674
|
const handleChatCompressionEvent = (0, import_react5.useCallback)(
|
|
1634
1675
|
(eventValue, userMessageTimestamp) => {
|
|
1676
|
+
autonomousLoopTickResolverRef.current?.resetCache();
|
|
1635
1677
|
if (pendingHistoryItemRef.current) {
|
|
1636
1678
|
commitItem(pendingHistoryItemRef.current, userMessageTimestamp);
|
|
1637
1679
|
setPendingHistoryItem(null);
|
|
1638
1680
|
}
|
|
1639
|
-
const
|
|
1681
|
+
const activeModel = modelOverrideRef.current ?? config.getModel();
|
|
1682
|
+
const reasonClause = eventValue?.triggerReason === "image_overflow" ? `accumulated enough tool screenshots to trigger compaction for ${activeModel}` : `approached the input token limit for ${activeModel}`;
|
|
1640
1683
|
return addItem(
|
|
1641
1684
|
{
|
|
1642
1685
|
type: "info",
|
|
@@ -1661,9 +1704,9 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
1661
1704
|
(value) => addItem(
|
|
1662
1705
|
{
|
|
1663
1706
|
type: "error",
|
|
1664
|
-
text: `\
|
|
1707
|
+
text: `\u2717 Session token limit exceeded: ${value.currentTokens.toLocaleString()} tokens > ${value.limit.toLocaleString()} limit.
|
|
1665
1708
|
|
|
1666
|
-
\
|
|
1709
|
+
\u2605 Solutions:
|
|
1667
1710
|
\u2022 Start a new session: Use /clear command
|
|
1668
1711
|
\u2022 Increase limit: Add "sessionTokenLimit": (e.g., 128000) to your settings.json
|
|
1669
1712
|
\u2022 Compress history: Use /compress command to compress history`
|
|
@@ -1991,6 +2034,23 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
1991
2034
|
const duplicateResponseParts = [];
|
|
1992
2035
|
let duplicatePromptId;
|
|
1993
2036
|
const historyCallIdsWithResponse = geminiClient ? geminiClient.getHistoryFunctionResponseIds() : /* @__PURE__ */ new Set();
|
|
2037
|
+
const handledProviderIds = /* @__PURE__ */ new Set([
|
|
2038
|
+
...handledProviderToolCallIdsRef.current,
|
|
2039
|
+
...historyCallIdsWithResponse
|
|
2040
|
+
]);
|
|
2041
|
+
const repeatedDuplicateRequest = findRepeatedDuplicateProviderToolCall(
|
|
2042
|
+
toolCallRequests,
|
|
2043
|
+
(request) => request.providerCallId,
|
|
2044
|
+
handledProviderIds,
|
|
2045
|
+
duplicateProviderToolCallResponseIdsRef.current
|
|
2046
|
+
);
|
|
2047
|
+
if (repeatedDuplicateRequest?.providerCallId) {
|
|
2048
|
+
debugLogger3.debug(
|
|
2049
|
+
`[processGeminiStreamEvents] Dropping batch after repeated duplicate provider tool-call id: ${repeatedDuplicateRequest.providerCallId} (tool: ${repeatedDuplicateRequest.name})`
|
|
2050
|
+
);
|
|
2051
|
+
loopDetectedRef.current = true;
|
|
2052
|
+
return 0 /* Completed */;
|
|
2053
|
+
}
|
|
1994
2054
|
for (const request of toolCallRequests) {
|
|
1995
2055
|
const providerCallId = request.providerCallId;
|
|
1996
2056
|
if (!providerCallId) {
|
|
@@ -1998,6 +2058,10 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
1998
2058
|
continue;
|
|
1999
2059
|
}
|
|
2000
2060
|
if (handledProviderToolCallIdsRef.current.has(providerCallId) || historyCallIdsWithResponse.has(providerCallId)) {
|
|
2061
|
+
markDuplicateProviderToolCallResponseSent(
|
|
2062
|
+
providerCallId,
|
|
2063
|
+
duplicateProviderToolCallResponseIdsRef.current
|
|
2064
|
+
);
|
|
2001
2065
|
const response = createDuplicateProviderToolCallResponse(request);
|
|
2002
2066
|
debugLogger3.debug(
|
|
2003
2067
|
`[processGeminiStreamEvents] Suppressing duplicate provider tool-call id: ${providerCallId} (tool: ${request.name})`
|
|
@@ -2063,24 +2127,38 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2063
2127
|
async (query, submitType = "userQuery" /* UserQuery */, prompt_id, metadata) => {
|
|
2064
2128
|
const allowConcurrentBtwDuringResponse = submitType === "userQuery" /* UserQuery */ && streamingState === "responding" /* Responding */ && typeof query === "string" && isBtwCommand(query);
|
|
2065
2129
|
if (isSubmittingQueryRef.current && submitType !== "toolResult" /* ToolResult */ && !allowConcurrentBtwDuringResponse) {
|
|
2130
|
+
metadata?.onDeliveryFailed?.();
|
|
2066
2131
|
return;
|
|
2067
2132
|
}
|
|
2068
|
-
if ((streamingState === "responding" /* Responding */ || streamingState === "waiting_for_confirmation" /* WaitingForConfirmation */) && submitType !== "toolResult" /* ToolResult */ && !allowConcurrentBtwDuringResponse)
|
|
2133
|
+
if ((streamingState === "responding" /* Responding */ || streamingState === "waiting_for_confirmation" /* WaitingForConfirmation */) && submitType !== "toolResult" /* ToolResult */ && !allowConcurrentBtwDuringResponse) {
|
|
2134
|
+
metadata?.onDeliveryFailed?.();
|
|
2069
2135
|
return;
|
|
2136
|
+
}
|
|
2070
2137
|
isSubmittingQueryRef.current = true;
|
|
2071
2138
|
loopDetectedRef.current = false;
|
|
2072
2139
|
if (submitType !== "toolResult" /* ToolResult */ && !allowConcurrentBtwDuringResponse) {
|
|
2073
2140
|
lastTurnUserItemRef.current = null;
|
|
2074
2141
|
turnSawContentEventRef.current = false;
|
|
2075
2142
|
handledProviderToolCallIdsRef.current.clear();
|
|
2143
|
+
duplicateProviderToolCallResponseIdsRef.current.clear();
|
|
2076
2144
|
pendingDuplicateToolResponsesRef.current = [];
|
|
2077
2145
|
immediateDuplicateToolResponsesRef.current = null;
|
|
2078
2146
|
}
|
|
2079
2147
|
const userMessageTimestamp = Date.now();
|
|
2080
2148
|
if (submitType !== "toolResult" /* ToolResult */ && !allowConcurrentBtwDuringResponse) {
|
|
2081
2149
|
setModelSwitchedFromQuotaError(false);
|
|
2082
|
-
|
|
2083
|
-
|
|
2150
|
+
const droppingInlineOverrideOnRetry = submitType === "retry" /* Retry */ && inlineModelOverrideActiveRef.current;
|
|
2151
|
+
if (submitType !== "retry" /* Retry */ || inlineModelOverrideActiveRef.current) {
|
|
2152
|
+
if (droppingInlineOverrideOnRetry) {
|
|
2153
|
+
addItem(
|
|
2154
|
+
{
|
|
2155
|
+
type: "info",
|
|
2156
|
+
text: `Inline model override cleared on retry \u2014 retrying on the session model (${config.getModel()}).`
|
|
2157
|
+
},
|
|
2158
|
+
userMessageTimestamp
|
|
2159
|
+
);
|
|
2160
|
+
}
|
|
2161
|
+
clearModelOverride(modelOverrideRef, inlineModelOverrideActiveRef);
|
|
2084
2162
|
}
|
|
2085
2163
|
if (pendingRetryCountdownItemRef.current || pendingRetryErrorItemRef.current) {
|
|
2086
2164
|
const pendingError = pendingRetryErrorItemRef.current;
|
|
@@ -2110,6 +2188,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2110
2188
|
);
|
|
2111
2189
|
if (!shouldProceed || queryToSend === null) {
|
|
2112
2190
|
isSubmittingQueryRef.current = false;
|
|
2191
|
+
metadata?.onDeliveryFailed?.();
|
|
2113
2192
|
return;
|
|
2114
2193
|
}
|
|
2115
2194
|
if (submitType === "userQuery" /* UserQuery */ || submitType === "cron" /* Cron */ || submitType === "teammate" /* Teammate */) {
|
|
@@ -2136,7 +2215,8 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2136
2215
|
queryToSend.length,
|
|
2137
2216
|
prompt_id,
|
|
2138
2217
|
config.getContentGeneratorConfig()?.authType,
|
|
2139
|
-
queryToSend
|
|
2218
|
+
queryToSend,
|
|
2219
|
+
modelOverrideRef.current ?? config.getModel()
|
|
2140
2220
|
)
|
|
2141
2221
|
);
|
|
2142
2222
|
}
|
|
@@ -2179,6 +2259,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2179
2259
|
if (processingStatus === 1 /* UserCancelled */) {
|
|
2180
2260
|
submitPromptOnCompleteRef.current = null;
|
|
2181
2261
|
isSubmittingQueryRef.current = false;
|
|
2262
|
+
metadata?.onDeliveryFailed?.();
|
|
2182
2263
|
return;
|
|
2183
2264
|
}
|
|
2184
2265
|
if (pendingHistoryItemRef.current) {
|
|
@@ -2201,6 +2282,11 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2201
2282
|
loopDetectedRef.current = false;
|
|
2202
2283
|
handleLoopDetectedEvent();
|
|
2203
2284
|
}
|
|
2285
|
+
if (lastPromptErroredRef.current) {
|
|
2286
|
+
metadata?.onDeliveryFailed?.();
|
|
2287
|
+
} else {
|
|
2288
|
+
metadata?.onDelivered?.();
|
|
2289
|
+
}
|
|
2204
2290
|
const onComplete = submitPromptOnCompleteRef.current;
|
|
2205
2291
|
if (onComplete) {
|
|
2206
2292
|
submitPromptOnCompleteRef.current = null;
|
|
@@ -2226,6 +2312,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2226
2312
|
}
|
|
2227
2313
|
}
|
|
2228
2314
|
} catch (error) {
|
|
2315
|
+
metadata?.onDeliveryFailed?.();
|
|
2229
2316
|
if (error instanceof UnauthorizedError) {
|
|
2230
2317
|
onAuthError("Session expired or is unauthorized.");
|
|
2231
2318
|
} else if (!isNodeError(error) || error.name !== "AbortError") {
|
|
@@ -2449,7 +2536,20 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2449
2536
|
const promptId = prompt_ids[0] ?? pendingDuplicatePromptId;
|
|
2450
2537
|
for (const toolCall of geminiTools) {
|
|
2451
2538
|
if ("modelOverride" in toolCall.response) {
|
|
2452
|
-
|
|
2539
|
+
if (inlineModelOverrideActiveRef.current) {
|
|
2540
|
+
debugLogger3.debug(
|
|
2541
|
+
`skill-tool model override (${String(
|
|
2542
|
+
toolCall.response.modelOverride
|
|
2543
|
+
)}) blocked: inline override active`
|
|
2544
|
+
);
|
|
2545
|
+
} else {
|
|
2546
|
+
applyModelOverride(
|
|
2547
|
+
modelOverrideRef,
|
|
2548
|
+
inlineModelOverrideActiveRef,
|
|
2549
|
+
toolCall.response.modelOverride,
|
|
2550
|
+
false
|
|
2551
|
+
);
|
|
2552
|
+
}
|
|
2453
2553
|
}
|
|
2454
2554
|
}
|
|
2455
2555
|
if (dualOutput) {
|
|
@@ -2736,6 +2836,10 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2736
2836
|
}, [toolCalls, config, onDebugMessage, history, geminiClient, storage]);
|
|
2737
2837
|
const notificationQueueRef = (0, import_react5.useRef)([]);
|
|
2738
2838
|
const [notificationTrigger, setNotificationTrigger] = (0, import_react5.useState)(0);
|
|
2839
|
+
const getAutonomousLoopTickResolver = (0, import_react5.useCallback)(() => {
|
|
2840
|
+
autonomousLoopTickResolverRef.current ??= new AutonomousLoopTickResolver();
|
|
2841
|
+
return autonomousLoopTickResolverRef.current;
|
|
2842
|
+
}, []);
|
|
2739
2843
|
const notificationQueueSessionIdRef = (0, import_react5.useRef)(sessionStates.sessionId);
|
|
2740
2844
|
(0, import_react5.useEffect)(() => {
|
|
2741
2845
|
if (notificationQueueSessionIdRef.current === sessionStates.sessionId) {
|
|
@@ -2743,6 +2847,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2743
2847
|
}
|
|
2744
2848
|
notificationQueueSessionIdRef.current = sessionStates.sessionId;
|
|
2745
2849
|
notificationQueueRef.current = [];
|
|
2850
|
+
autonomousLoopTickResolverRef.current?.resetCache();
|
|
2746
2851
|
}, [sessionStates.sessionId]);
|
|
2747
2852
|
const cronSessionIdRef = (0, import_react5.useRef)(sessionStates.sessionId);
|
|
2748
2853
|
cronSessionIdRef.current = sessionStates.sessionId;
|
|
@@ -2762,11 +2867,28 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2762
2867
|
if (stopped) return;
|
|
2763
2868
|
scheduler.start(
|
|
2764
2869
|
(job) => {
|
|
2765
|
-
const label = job.prompt.slice(0, 40);
|
|
2766
2870
|
const source = job.cronExpr === "@wakeup" ? "Loop" : "Cron";
|
|
2871
|
+
const autonomousMode = detectAutonomousSentinel(job.prompt);
|
|
2872
|
+
let label = job.prompt.slice(0, 40);
|
|
2873
|
+
let modelText = job.prompt;
|
|
2874
|
+
if (autonomousMode) {
|
|
2875
|
+
if (job.missed) return;
|
|
2876
|
+
const resolver = getAutonomousLoopTickResolver();
|
|
2877
|
+
const tick = resolver.resolveAutonomous(autonomousMode);
|
|
2878
|
+
label = "Autonomous loop tick";
|
|
2879
|
+
modelText = tick.modelText;
|
|
2880
|
+
notificationQueueRef.current.push({
|
|
2881
|
+
displayText: `${job.missed ? "Missed" : source}: ${label}`,
|
|
2882
|
+
modelText,
|
|
2883
|
+
sendMessageType: "cron" /* Cron */,
|
|
2884
|
+
onDelivered: /* @__PURE__ */ __name(() => resolver.markDelivered(), "onDelivered")
|
|
2885
|
+
});
|
|
2886
|
+
setNotificationTrigger((n) => n + 1);
|
|
2887
|
+
return;
|
|
2888
|
+
}
|
|
2767
2889
|
notificationQueueRef.current.push({
|
|
2768
2890
|
displayText: `${job.missed ? "Missed" : source}: ${label}`,
|
|
2769
|
-
modelText
|
|
2891
|
+
modelText,
|
|
2770
2892
|
sendMessageType: "cron" /* Cron */
|
|
2771
2893
|
});
|
|
2772
2894
|
setNotificationTrigger((n) => n + 1);
|
|
@@ -2781,7 +2903,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2781
2903
|
process.stderr.write(summary + "\n");
|
|
2782
2904
|
}
|
|
2783
2905
|
};
|
|
2784
|
-
}, [config, isConfigInitialized]);
|
|
2906
|
+
}, [config, getAutonomousLoopTickResolver, isConfigInitialized]);
|
|
2785
2907
|
(0, import_react5.useEffect)(() => {
|
|
2786
2908
|
const registry = config.getBackgroundTaskRegistry();
|
|
2787
2909
|
registry.setNotificationCallback((displayText, modelText) => {
|
|
@@ -2839,7 +2961,9 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2839
2961
|
Date.now()
|
|
2840
2962
|
);
|
|
2841
2963
|
submitQuery(item.modelText, item.sendMessageType, void 0, {
|
|
2842
|
-
notificationDisplayText: item.displayText
|
|
2964
|
+
notificationDisplayText: item.displayText,
|
|
2965
|
+
onDelivered: item.onDelivered,
|
|
2966
|
+
onDeliveryFailed: item.onDeliveryFailed
|
|
2843
2967
|
});
|
|
2844
2968
|
return;
|
|
2845
2969
|
}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import {
|
|
4
4
|
TextTokenizer,
|
|
5
5
|
isSupportedImageMimeType
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YTFBURQD.js";
|
|
7
7
|
import {
|
|
8
8
|
createDebugLogger
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-AVQDCKNF.js";
|
|
10
10
|
import {
|
|
11
11
|
init_esbuild_shims
|
|
12
12
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
import {
|
|
4
4
|
getInboxesDir,
|
|
5
5
|
require_proper_lockfile
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-HWG4XLD7.js";
|
|
7
7
|
import {
|
|
8
8
|
Mutex
|
|
9
9
|
} from "./chunk-OMX7CUOE.js";
|
|
10
10
|
import {
|
|
11
11
|
atomicWriteJSON
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-T42ACHFI.js";
|
|
13
13
|
import {
|
|
14
14
|
createDebugLogger,
|
|
15
15
|
isNodeError
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-AVQDCKNF.js";
|
|
17
17
|
import {
|
|
18
18
|
init_esbuild_shims
|
|
19
19
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -7,9 +7,11 @@ import {
|
|
|
7
7
|
// packages/acp-bridge/src/bridgeTypes.ts
|
|
8
8
|
init_esbuild_shims();
|
|
9
9
|
var MID_TURN_QUEUE_DRAIN_METHOD = "craft/drainMidTurnQueue";
|
|
10
|
+
var CLIENT_MCP_OVER_WS_CONFIG_FLAG = "__clientMcpOverWs";
|
|
10
11
|
|
|
11
12
|
export {
|
|
12
|
-
MID_TURN_QUEUE_DRAIN_METHOD
|
|
13
|
+
MID_TURN_QUEUE_DRAIN_METHOD,
|
|
14
|
+
CLIENT_MCP_OVER_WS_CONFIG_FLAG
|
|
13
15
|
};
|
|
14
16
|
/**
|
|
15
17
|
* @license
|