@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.
- package/bundled/loop/SKILL.md +22 -3
- package/bundled/loop/SKILL.test.ts +20 -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 +906 -0
- package/bundled/loop/loop-tick-resolver.ts +416 -0
- package/bundled/qc-helper/SKILL.md +12 -5
- package/bundled/qc-helper/docs/configuration/auth.md +1 -1
- package/bundled/qc-helper/docs/configuration/settings.md +62 -32
- package/bundled/qc-helper/docs/features/approval-mode.md +3 -0
- package/bundled/qc-helper/docs/features/auto-mode.md +40 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +81 -18
- package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
- package/bundled/qc-helper/docs/features/code-review.md +17 -61
- package/bundled/qc-helper/docs/features/commands.md +42 -40
- package/bundled/qc-helper/docs/features/headless.md +19 -18
- package/bundled/qc-helper/docs/features/hooks.md +6 -1
- package/bundled/qc-helper/docs/features/mcp.md +3 -1
- package/bundled/qc-helper/docs/features/memory.md +1 -1
- package/bundled/qc-helper/docs/features/scheduled-tasks.md +10 -0
- 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 +53 -0
- package/bundled/qc-helper/docs/support/troubleshooting.md +11 -0
- package/bundled/review/DESIGN.md +21 -26
- package/bundled/review/SKILL.md +45 -129
- package/chunks/MaxSizedBox-GHGRQ2OS.js +69 -0
- package/chunks/{StandaloneSessionPicker-Z52JTYST.js → StandaloneSessionPicker-G7YTTM27.js} +49 -42
- package/chunks/{acpAgent-7RZUOWOM.js → acpAgent-SDOILBSU.js} +1325 -365
- package/chunks/{agent-4FG7WTHJ.js → agent-NTSXGV4L.js} +31 -25
- package/chunks/agent-headless-WYURMSAB.js +62 -0
- package/chunks/{anthropicContentGenerator-PFITVL7Y.js → anthropicContentGenerator-WL3LJOUB.js} +110 -31
- package/chunks/{artifact-tool-D2X7G3C3.js → artifact-tool-W76WC2JX.js} +3 -3
- package/chunks/{askUserQuestion-UGETICJQ.js → askUserQuestion-J3P6TH3V.js} +2 -2
- package/chunks/bridge-AMOL4W4P.js +73 -0
- package/chunks/{ca-IUFWESZL.js → ca-HCMB2I54.js} +10 -9
- package/chunks/channel-worker-supervisor-C3IB63V7.js +659 -0
- package/chunks/{chunk-STUWFKGD.js → chunk-26JIREA5.js} +466 -543
- package/chunks/{chunk-SLNKLLEO.js → chunk-2MRV62AU.js} +37 -8
- package/chunks/{chunk-ODLIHNOY.js → chunk-2U4HUMOL.js} +1 -1
- package/chunks/{chunk-CKQA6AWF.js → chunk-4D73HUOP.js} +1 -1
- package/chunks/{chunk-M2U5NM24.js → chunk-54YZOP7P.js} +309 -72
- package/chunks/{chunk-J7FA27RO.js → chunk-5LKL3PAU.js} +3 -3
- package/chunks/chunk-5P5XGNYH.js +93 -0
- package/chunks/{chunk-UFLGERMB.js → chunk-6JE32BRB.js} +178 -124
- package/chunks/{chunk-FKAVULLM.js → chunk-75AVTQJ2.js} +74 -10
- package/chunks/{chunk-I2LYBGNI.js → chunk-7IOMIYOE.js} +1 -1
- package/chunks/{chunk-4LUZAKMK.js → chunk-7KXAGQJ2.js} +1 -1
- package/chunks/{chunk-BXSHL2SF.js → chunk-7LUOQJ3D.js} +1 -1
- package/chunks/{chunk-YAINVQ3Q.js → chunk-A5OPLHFM.js} +18693 -17055
- package/chunks/chunk-AHNXYU4O.js +24 -0
- package/chunks/{chunk-UX4SGCGN.js → chunk-AVQDCKNF.js} +96 -22
- package/chunks/{chunk-HYCC3XM3.js → chunk-B236XPGF.js} +1 -1
- package/chunks/chunk-B6SZLQAZ.js +3523 -0
- package/chunks/{chunk-5DWXLGOM.js → chunk-BJBWRCSK.js} +1 -1
- package/chunks/chunk-BPFJQGY7.js +193 -0
- package/chunks/{chunk-SKQZZVAV.js → chunk-BZHLWC6T.js} +2 -2
- package/chunks/{chunk-U3KSMM7G.js → chunk-D5KISTLW.js} +339 -383
- package/chunks/{chunk-GT2FGICD.js → chunk-DE7YXUR7.js} +1 -1
- package/chunks/{chunk-BUUQ5HPX.js → chunk-DG573EOO.js} +1 -1
- package/chunks/{chunk-VVLOGDB6.js → chunk-DX3TKXNT.js} +2 -2
- package/chunks/chunk-E5A7LHNN.js +51 -0
- package/chunks/{chunk-3PJXIDKI.js → chunk-E6US47KI.js} +3 -27
- package/chunks/{chunk-QBZ22PQX.js → chunk-EWALXUAD.js} +3 -1
- package/chunks/{chunk-PDE7CSDS.js → chunk-FXKI7OW6.js} +2 -2
- package/chunks/{chunk-F3ZYSEY6.js → chunk-FY4TT4L4.js} +3 -3
- package/chunks/{chunk-QLDPRILK.js → chunk-G7OQ3RFJ.js} +3 -3
- package/chunks/{chunk-R2BXK7SX.js → chunk-GHOTR7HL.js} +6 -1
- package/chunks/{chunk-KMGMKW5Q.js → chunk-GLPV75ES.js} +9 -3
- package/chunks/{chunk-LD2XBG6Z.js → chunk-GO6LNQXT.js} +1 -39
- package/chunks/{chunk-CNLEDYE3.js → chunk-H6TNLOLM.js} +5 -5
- package/chunks/{chunk-JVHEVCAU.js → chunk-HLW4EGKR.js} +31 -6
- package/chunks/{chunk-I4H7PRWQ.js → chunk-HTWHAN44.js} +1 -1
- package/chunks/{chunk-QE6KJYLT.js → chunk-IPYE5BIS.js} +123 -25
- package/chunks/{chunk-EJYJYJZ2.js → chunk-IRJWHZWU.js} +3 -70
- package/chunks/{chunk-EDMZZFDU.js → chunk-J3YPTTNL.js} +930 -798
- package/chunks/{chunk-GGBIN5K7.js → chunk-JGAJMIJZ.js} +1 -1
- package/chunks/{chunk-N4EJFBN5.js → chunk-JVLP5US5.js} +427 -263
- package/chunks/{chunk-R5OP2ATH.js → chunk-JZG7VB6C.js} +11 -11
- package/chunks/{chunk-QI7GOGJR.js → chunk-KKQWC6WS.js} +1 -1
- package/chunks/{chunk-ADCIHOQZ.js → chunk-KX5QZRW2.js} +142 -30
- package/chunks/{chunk-SBBN4BWR.js → chunk-L7OJ3ZO3.js} +1 -1
- package/chunks/{chunk-NDOC6M5S.js → chunk-L7QPM2YD.js} +2 -2
- package/chunks/{chunk-BVSVIN45.js → chunk-LKWAVAB5.js} +3 -3
- package/chunks/{chunk-T4T2FNV4.js → chunk-LOW52WYZ.js} +2 -2
- package/chunks/{chunk-4QK3O43S.js → chunk-LU7BIVWC.js} +4 -4
- package/chunks/{chunk-ZP6UKOPB.js → chunk-LWGLBVWA.js} +1 -1
- package/chunks/{chunk-L7OKCI7T.js → chunk-M7BLWURA.js} +15 -1
- package/chunks/{chunk-PR32FRT6.js → chunk-MIM62IXS.js} +3 -3
- package/chunks/{chunk-RD6YJJJ6.js → chunk-MOUXUCXQ.js} +1 -1
- package/chunks/{chunk-VBZ452JT.js → chunk-MSNGFH6L.js} +494 -114
- package/chunks/{chunk-BX5YO7UW.js → chunk-MTNTVOJR.js} +542 -370
- package/chunks/chunk-MX2YXRER.js +44 -0
- package/chunks/chunk-NIOPRZNN.js +27 -0
- package/chunks/{chunk-SMYQZVZ3.js → chunk-NOGSPTLJ.js} +1 -1
- package/chunks/{chunk-DDMOU62Q.js → chunk-NPQWQYU6.js} +1 -1
- package/chunks/{chunk-MNF6S5PR.js → chunk-P5THQV6A.js} +4 -4
- package/chunks/{chunk-6V4NZFUS.js → chunk-PCYOT4PK.js} +5 -5
- package/chunks/{chunk-CF6BB3LT.js → chunk-PPFWEV7G.js} +10 -1
- package/chunks/{chunk-FXKVLFFY.js → chunk-PSFDB5FZ.js} +3 -3
- package/chunks/{chunk-XJYUPHRC.js → chunk-QOMAHFYI.js} +3 -3
- package/chunks/{chunk-J37FGIOA.js → chunk-QXPI7FEC.js} +38 -4
- package/chunks/{chunk-RRFZXMYP.js → chunk-QZDBHNMV.js} +691 -164
- package/chunks/{chunk-S7AKE7HL.js → chunk-R6RI2HIC.js} +63 -9
- package/chunks/{chunk-HZT4UCFB.js → chunk-RB7S52NJ.js} +4 -4
- package/chunks/{chunk-J33ZR6OJ.js → chunk-RK22ACPP.js} +16 -16
- package/chunks/chunk-RM3PGSGL.js +66 -0
- package/chunks/chunk-RNBYOUGV.js +42 -0
- package/chunks/chunk-S6RLAIUR.js +23 -0
- package/chunks/{chunk-3TV3HUWZ.js → chunk-SCYK2YLI.js} +81 -30
- package/chunks/{chunk-HPZTOP4I.js → chunk-SEKRT4SD.js} +133 -23
- package/chunks/chunk-SEZC2725.js +36 -0
- package/chunks/chunk-SIUQ3YYX.js +78 -0
- package/chunks/{chunk-O2VBQ3Y2.js → chunk-SJBIFVD2.js} +2 -2
- package/chunks/chunk-SYCJMSIJ.js +82 -0
- package/chunks/{chunk-JE5FVRPC.js → chunk-T22H4V4R.js} +48 -23
- package/chunks/{chunk-3227DZO4.js → chunk-T42ACHFI.js} +1 -1
- package/chunks/{chunk-UO5GVXQE.js → chunk-TENOUWY2.js} +3 -3
- package/chunks/{chunk-JOLIREYR.js → chunk-TOAUDIS7.js} +1 -1
- package/chunks/{chunk-QNKBEJO2.js → chunk-UA6XBZT7.js} +2776 -1289
- package/chunks/{chunk-O75BHFQW.js → chunk-UQTYK5SS.js} +2 -2
- package/chunks/{chunk-Y6YMRS3U.js → chunk-UY2TCIZS.js} +17 -3
- package/chunks/{chunk-FNJ7BDPH.js → chunk-UY7ZAYTY.js} +10 -7
- package/chunks/{chunk-UYT3MWEB.js → chunk-UYHWM24C.js} +30 -2
- package/chunks/{chunk-SMXULRAN.js → chunk-VXGPYF7U.js} +1 -1
- package/chunks/{chunk-BTLJ2MF5.js → chunk-W7CG5HPC.js} +3 -3
- package/chunks/{chunk-JJXWTVSK.js → chunk-XHZKDN7M.js} +34 -1
- package/chunks/{chunk-K5XU6E4T.js → chunk-XKSCTXPK.js} +2 -2
- package/chunks/chunk-Y4LITCRB.js +367 -0
- package/chunks/chunk-YHTNWGRR.js +239 -0
- package/chunks/{chunk-BKXBARJZ.js → chunk-YPCPZSZB.js} +1 -1
- package/chunks/{chunk-QWFNTRH4.js → chunk-YSM24SCE.js} +1 -1
- package/chunks/chunk-YTFBURQD.js +313 -0
- package/chunks/{chunk-NL4C3H6C.js → chunk-YXK4GPYO.js} +1 -1
- package/chunks/{chunk-RYLJU2DY.js → chunk-ZN5T4BHI.js} +1 -1
- package/chunks/{computer-use-JGB36FDW.js → computer-use-MTSVPLPY.js} +34 -28
- package/chunks/contextCommand-VGJ3BPTK.js +67 -0
- package/chunks/{cron-create-SKEY55RG.js → cron-create-6YTCOX6P.js} +4 -4
- package/chunks/{cron-delete-I3NAT32Z.js → cron-delete-E3NIFSUK.js} +4 -4
- package/chunks/{cron-list-6XRRL6TH.js → cron-list-Q64MNQNE.js} +4 -4
- package/chunks/daemon-EEB2RYOL.js +8453 -0
- package/chunks/daemon-status-provider-H5SNMK42.js +71 -0
- package/chunks/{de-EOW5PVHF.js → de-PLLFDERI.js} +10 -9
- package/chunks/{dist-NHEYYB2B.js → dist-ADMIQGHI.js} +2 -2
- package/chunks/{dist-J37VXPLD.js → dist-BCQ7INM7.js} +40 -15
- package/chunks/{dist-663NZ6MI.js → dist-KNZFCY5F.js} +116 -11
- package/chunks/{dist-LB6OGPVM.js → dist-LHUWC3K6.js} +26 -5
- package/chunks/{dist-PQPZ5Q4N.js → dist-WBBZ76JZ.js} +20 -9
- package/chunks/{earlyInputCapture-44RISVVJ.js → earlyInputCapture-U4ZIQSQU.js} +32 -26
- package/chunks/{edit-NN6GM5DT.js → edit-SYIQ2KBI.js} +41 -38
- package/chunks/{en-HPWEJBTR.js → en-M4EBUBNU.js} +32 -10
- package/chunks/{enter-worktree-PB3O2C7D.js → enter-worktree-HPPOO244.js} +31 -25
- package/chunks/{enterPlanMode-YQFNNSUA.js → enterPlanMode-56YYO52U.js} +41 -25
- package/chunks/{errors-LS7XU5DZ.js → errors-EO4SXCFP.js} +33 -27
- package/chunks/{exit-worktree-E2FTNSBK.js → exit-worktree-UDM7E6XH.js} +31 -25
- package/chunks/{exitPlanMode-GLYK2BUB.js → exitPlanMode-M6P3AWLJ.js} +149 -33
- package/chunks/{fast-path-WQ6M7LI7.js → fast-path-42P4QYWI.js} +33 -14
- package/chunks/{fast-path-settings-OAGU3X5H.js → fast-path-settings-UQLRFDQP.js} +2 -2
- package/chunks/{fr-BN5NKSAC.js → fr-MBMNQSQ6.js} +10 -9
- package/chunks/{gemini-2YFLVA2M.js → gemini-NRLXS5J7.js} +84 -70
- package/chunks/{geminiContentGenerator-XV6SV6CD.js → geminiContentGenerator-DLJPYYPA.js} +41 -5
- package/chunks/{glob-2H6CDDMK.js → glob-JPY3F74Y.js} +31 -25
- package/chunks/{grep-VXIUXM3C.js → grep-HW23YES5.js} +31 -25
- package/chunks/initializer-HWOZTC4A.js +67 -0
- package/chunks/{ja-7DEUB2TS.js → ja-HFV5QCHR.js} +10 -9
- package/chunks/{keychain-token-storage-YLMDLKXT.js → keychain-token-storage-GPAKRDKQ.js} +2 -2
- package/chunks/list-OZGAGRDG.js +71 -0
- package/chunks/loadedSettingsAdapter-RUTZVVIA.js +66 -0
- package/chunks/{loop-wakeup-CITGGQHA.js → loop-wakeup-G2EHBRGR.js} +5 -5
- package/chunks/{ls-R5WP4BGZ.js → ls-IDHUVSAG.js} +4 -4
- package/chunks/{lsp-GSICJMMW.js → lsp-FSRYXGFT.js} +2 -2
- package/chunks/{monitor-HKLRS2HQ.js → monitor-QVWEIXU3.js} +33 -26
- package/chunks/nonInteractiveCli-RV2WYPML.js +109 -0
- package/chunks/{notebook-edit-Y6SKSGTT.js → notebook-edit-B26W3FFH.js} +37 -34
- package/chunks/{openaiContentGenerator-J7G2FYJT.js → openaiContentGenerator-6TH7AZGQ.js} +15 -13
- package/chunks/pidfile-KW2QQJZI.js +73 -0
- package/chunks/{pt-TNZRNLQB.js → pt-2THT3YHA.js} +10 -9
- package/chunks/{qwenContentGenerator-5XIEM5GV.js → qwenContentGenerator-5IQAC7RN.js} +33 -27
- package/chunks/{qwenOAuth2-AG3PFFLZ.js → qwenOAuth2-LWLA6MQG.js} +5 -4
- package/chunks/{read-file-J7D552ZJ.js → read-file-CWFAHOI2.js} +11 -10
- package/chunks/{read-mcp-resource-DQQW7H7T.js → read-mcp-resource-PIJF24RO.js} +2 -2
- package/chunks/ripGrep-FTZGDKY4.js +60 -0
- package/chunks/{ru-NIAUBKCN.js → ru-Z67YJHBG.js} +10 -9
- package/chunks/{run-qwen-serve-SGEEVMXD.js → run-qwen-serve-FN2SW5ZI.js} +545 -97
- package/chunks/{scheduler-7CQI3S4Q.js → scheduler-BMS23O3I.js} +31 -25
- package/chunks/{send-message-EE4TWKVU.js → send-message-33PYFMCT.js} +20 -4
- package/chunks/serve-PXFYKL65.js +71 -0
- package/chunks/{server-4QMUWXPW.js → server-BRKALJ4F.js} +4132 -1175
- package/chunks/{session-NRO7UFOY.js → session-AQMISBP4.js} +205 -64
- package/chunks/{settings-SGWRDQSC.js → settings-JCPVUZMB.js} +35 -29
- package/chunks/{shell-62ANGIHL.js → shell-POHCRVN2.js} +31 -25
- package/chunks/{skill-VWAQAWW6.js → skill-QPEVHS6H.js} +13 -12
- package/chunks/spawnChannel-V3QT62TE.js +69 -0
- package/chunks/{src-KUV5J5Q2.js → src-IZSP7L6Y.js} +127 -32
- package/chunks/{startInteractiveUI-6EYJN3JV.js → startInteractiveUI-63KATISO.js} +16762 -16075
- package/chunks/{syntheticOutput-T5YHQ6S2.js → syntheticOutput-YOSWIHDJ.js} +3 -3
- package/chunks/{task-create-BLY7RHXX.js → task-create-NHS2NGB3.js} +9 -7
- package/chunks/{task-list-3QUYNVYR.js → task-list-5UIB564R.js} +7 -6
- package/chunks/{task-stop-U4RATK2V.js → task-stop-HGXZ2VZ3.js} +2 -2
- package/chunks/{task-update-U54O7KJX.js → task-update-IYYWUILG.js} +40 -7
- package/chunks/{team-create-LPOGCPM7.js → team-create-E5O2F3CA.js} +31 -25
- package/chunks/{team-delete-LKBYPASD.js → team-delete-FEKJCU4P.js} +7 -6
- package/chunks/team-plan-approval-2TU4YROB.js +202 -0
- package/chunks/theme-manager-37KOGPJL.js +64 -0
- package/chunks/{todoWrite-OYXKTVYN.js → todoWrite-TKMVZ2HT.js} +4 -4
- package/chunks/{tool-search-YPUFJ3ZQ.js → tool-search-4ZTGNSFI.js} +38 -11
- package/chunks/{trustedFolders-5B24TMEA.js → trustedFolders-RJ5WXJ6L.js} +32 -26
- package/chunks/{validateNonInterActiveAuth-BTDTYOVT.js → validateNonInterActiveAuth-ZWMHZAOK.js} +66 -55
- package/chunks/{web-fetch-EEB5LZYU.js → web-fetch-J4PIW36Q.js} +5 -4
- package/chunks/{workflow-LAWIW5LI.js → workflow-6PG2PC5M.js} +68 -39
- package/chunks/workspace-providers-status-4QIZN2W4.js +68 -0
- package/chunks/workspace-service-CYMCOEIO.js +78 -0
- package/chunks/{write-file-PCV226DJ.js → write-file-R354LGQF.js} +41 -40
- package/chunks/{zh-5EUYXASN.js → zh-SLZNSSZB.js} +32 -10
- package/chunks/{zh-TW-TR3XYGE5.js → zh-TW-P53C2SL5.js} +32 -10
- package/cli.js +6 -6
- package/locales/ca.js +15 -13
- package/locales/de.js +15 -13
- package/locales/en.js +52 -15
- package/locales/fr.js +15 -14
- package/locales/ja.js +15 -14
- package/locales/pt.js +15 -13
- package/locales/ru.js +15 -13
- package/locales/zh-TW.js +50 -14
- package/locales/zh.js +50 -14
- package/node_modules/@qwen-code/audio-capture/package.json +1 -1
- 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/win32-x64/@qwen-code+audio-capture.node +0 -0
- package/package.json +15 -6
- package/patches/chrome-devtools-mcp+1.4.0.patch +31 -0
- package/postinstall.js +50 -0
- package/web-shell/assets/{arc-DA7r8Ueo.js → arc-Bd3048nX.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-ZDUxPtZ2.js → architectureDiagram-3BPJPVTR-DyzbzABx.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-vrtOf1kJ.js → blockDiagram-GPEHLZMM-CTjxm9Sy.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BHFjzIi4.js → c4Diagram-AAUBKEIU-DSOFWNU6.js} +1 -1
- package/web-shell/assets/channel-oVoup_Ci.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-mdeQVz59.js → chunk-2J33WTMH-D_PFdjo2.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BkKMlwBX.js → chunk-4BX2VUAB-52eG6wOT.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-B7bnXNfu.js → chunk-55IACEB6-CGTZfKkC.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DGz8Mm6i.js → chunk-727SXJPM-CZ-qfRUm.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BQAydUNk.js → chunk-AQP2D5EJ-B2dSDcqM.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-GHr2LN_p.js → chunk-FMBD7UC4-Cfy3tyA0.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-7R91lnUx.js → chunk-ND2GUHAM-CApNUpUq.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-aTJD3lSQ.js → chunk-QZHKN3VN-CVBG8kgg.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-B8WsaT2G.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B8WsaT2G.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BTf8t1RL.js → cose-bilkent-S5V4N54A-URd77-_-.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-_sgp3WuA.js → dagre-BM42HDAG-C07H4G9-.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-CROtRy1w.js → diagram-2AECGRRQ-CYbpXrSn.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BqGRzwSc.js → diagram-5GNKFQAL-SI8s6fjX.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CMrcEtA7.js → diagram-KO2AKTUF-mBkC4RTW.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BRydGNW5.js → diagram-LMA3HP47-CyBPDzWJ.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-D0ilgNjV.js → diagram-OG6HWLK6-DwK7kBCu.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-2lnQeJUM.js → erDiagram-TEJ5UH35-Ds1StEUd.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-C_ZMdQiC.js → flowDiagram-I6XJVG4X-BDC4-jHO.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-Dw9V_Ny0.js → ganttDiagram-6RSMTGT7-CV2aHQqf.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-HDXI-F1B.js → gitGraphDiagram-PVQCEYII-B8RcuV_L.js} +1 -1
- package/web-shell/assets/index-B5WZ0qP1.js +717 -0
- package/web-shell/assets/index-CYE1IMd1.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CuB8Ebua.js → infoDiagram-5YYISTIA-DUPoTf50.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D_tyhVwh.js → ishikawaDiagram-YF4QCWOH-FDYOx9rf.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-CgCwJQNU.js → journeyDiagram-JHISSGLW-C5_ohMRp.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-PZUtcbPx.js → kanban-definition-UN3LZRKU-Bn4UnOMG.js} +1 -1
- package/web-shell/assets/{linear-CZqRdJIU.js → linear-Bl0pKQtY.js} +1 -1
- package/web-shell/assets/{mermaid.core-CPW_4UEF.js → mermaid.core-sevQFoji.js} +72 -72
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-D_Y75ID7.js → mindmap-definition-RKZ34NQL-DSH4JZF9.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-Q4dTyLeF.js → pieDiagram-4H26LBE5-acWvdQTD.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-ckw329Ft.js → quadrantDiagram-W4KKPZXB-DlggX4Sm.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-DbVDm4It.js → requirementDiagram-4Y6WPE33--mMqwmV8.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CHuZ_ecH.js → sankeyDiagram-5OEKKPKP-BtV9tZ77.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DU2YSpq-.js → sequenceDiagram-3UESZ5HK-iDQzPFlj.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CA9PEBUo.js → stateDiagram-AJRCARHV-CsCyQLZ3.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CPapECG9.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-Bhlo4WVc.js → timeline-definition-PNZ67QCA-Dl0rnKvr.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-6xtPLsyl.js → vennDiagram-CIIHVFJN-qF7nTZzA.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-3eozmXPf.js → wardley-L42UT6IY-fWoK9i7F.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BOn6hKss.js → wardleyDiagram-YWT4CUSO-pHGfkMnc.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BsP4-I_y.js → xychartDiagram-2RQKCTM6-3Doc4Trz.js} +1 -1
- package/web-shell/index.html +18 -2
- package/chunks/MaxSizedBox-QNF3EIGU.js +0 -63
- package/chunks/agent-headless-RQ5BTX3G.js +0 -56
- package/chunks/bridge-JL2PMCIW.js +0 -66
- package/chunks/chunk-5GOVVXEV.js +0 -73
- package/chunks/chunk-BC3C4F3Q.js +0 -40
- package/chunks/chunk-BW4KCQFD.js +0 -1103
- package/chunks/chunk-RKIZXJMB.js +0 -13
- package/chunks/contextCommand-WYU6OQ2F.js +0 -61
- package/chunks/daemon-status-provider-HH2EC5FI.js +0 -65
- package/chunks/headlessSafetyWarnings-TBE35GJ4.js +0 -55
- package/chunks/initializer-2Y7SLOKV.js +0 -61
- package/chunks/list-ZAFHZ7OS.js +0 -65
- package/chunks/loadedSettingsAdapter-6KJXD6M3.js +0 -60
- package/chunks/nonInteractiveCli-5W4GIZQM.js +0 -96
- package/chunks/ripGrep-IEIFIWP4.js +0 -54
- package/chunks/serve-V6GVZR6U.js +0 -65
- package/chunks/spawnChannel-3VHW5EPY.js +0 -63
- package/chunks/theme-manager-LYLGAERF.js +0 -58
- package/chunks/workspace-providers-status-PIAFVYHA.js +0 -62
- package/chunks/workspace-service-YAIOD4HG.js +0 -71
- package/web-shell/assets/channel-iRo68q4Q.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-iHF24a8X.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-iHF24a8X.js +0 -1
- package/web-shell/assets/index-CHmzAWys.css +0 -5
- package/web-shell/assets/index-w6GTOHh1.js +0 -713
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-t1LRI0oY.js +0 -1
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
-
import {
|
|
4
|
-
handleAtCommand
|
|
5
|
-
} from "./chunk-UFLGERMB.js";
|
|
6
3
|
import {
|
|
7
4
|
JsonOutputAdapter
|
|
8
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-JGAJMIJZ.js";
|
|
9
6
|
import {
|
|
10
7
|
StreamJsonOutputAdapter
|
|
11
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-FXKI7OW6.js";
|
|
12
9
|
import {
|
|
10
|
+
handleAtCommand
|
|
11
|
+
} from "./chunk-6JE32BRB.js";
|
|
12
|
+
import {
|
|
13
|
+
buildInitialSystemReminders,
|
|
13
14
|
buildSystemMessage,
|
|
14
15
|
computeUsageFromMetrics,
|
|
15
16
|
createAgentToolProgressHandler,
|
|
16
17
|
createToolProgressHandler,
|
|
17
18
|
extractPartsFromUserMessage,
|
|
18
19
|
handleSlashCommand,
|
|
20
|
+
insertAfterFunctionResponses,
|
|
19
21
|
isSlashCommand,
|
|
20
22
|
normalizePartList
|
|
21
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-QZDBHNMV.js";
|
|
22
24
|
import {
|
|
23
25
|
RunBudgetEnforcer
|
|
24
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-J3YPTTNL.js";
|
|
25
27
|
import {
|
|
26
28
|
AlreadyReportedError,
|
|
27
29
|
handleBudgetExceededError,
|
|
@@ -29,28 +31,37 @@ import {
|
|
|
29
31
|
handleError,
|
|
30
32
|
handleMaxTurnsExceededError,
|
|
31
33
|
handleToolError
|
|
32
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-MIM62IXS.js";
|
|
35
|
+
import {
|
|
36
|
+
isInlineModelOverrideAllowed
|
|
37
|
+
} from "./chunk-UYHWM24C.js";
|
|
33
38
|
import {
|
|
39
|
+
ORPHAN_TOOL_USE_REPAIR_REASON,
|
|
40
|
+
buildSyntheticToolResponseParts,
|
|
34
41
|
createDuplicateProviderToolCallResponse,
|
|
42
|
+
detectAutonomousSentinel,
|
|
43
|
+
detectLoopSentinel,
|
|
44
|
+
detectTurnInterruption,
|
|
35
45
|
executeToolCall,
|
|
36
46
|
findRepeatedDuplicateProviderToolCall,
|
|
47
|
+
isSystemReminderContent,
|
|
37
48
|
markDuplicateProviderToolCallResponseSent,
|
|
38
49
|
parseAndFormatApiError,
|
|
39
50
|
promptIdContext,
|
|
40
51
|
restoreWorktreeContext
|
|
41
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-A5OPLHFM.js";
|
|
42
53
|
import {
|
|
43
54
|
isTelemetrySdkInitialized,
|
|
44
55
|
shutdownTelemetry,
|
|
45
56
|
uiTelemetryService
|
|
46
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-UA6XBZT7.js";
|
|
47
58
|
import {
|
|
48
59
|
ToolNames
|
|
49
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-MTNTVOJR.js";
|
|
50
61
|
import {
|
|
51
62
|
FatalInputError,
|
|
52
63
|
createDebugLogger
|
|
53
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-AVQDCKNF.js";
|
|
54
65
|
import {
|
|
55
66
|
init_esbuild_shims
|
|
56
67
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -62,6 +73,10 @@ import {
|
|
|
62
73
|
init_esbuild_shims();
|
|
63
74
|
var debugLogger = createDebugLogger("NON_INTERACTIVE_CLI");
|
|
64
75
|
var STRUCTURED_SHUTDOWN_HOLDBACK_MS = 500;
|
|
76
|
+
function isHeadlessLoopSentinel(prompt) {
|
|
77
|
+
return detectLoopSentinel(prompt) !== null || detectAutonomousSentinel(prompt) !== null;
|
|
78
|
+
}
|
|
79
|
+
__name(isHeadlessLoopSentinel, "isHeadlessLoopSentinel");
|
|
65
80
|
var SUPPRESSED_OUTPUT_SUCCESS = "Skipped: this turn's structured_output contract took precedence as the terminal output.";
|
|
66
81
|
var SUPPRESSED_OUTPUT_RETRY = `${SUPPRESSED_OUTPUT_SUCCESS} Re-issue this call in a separate turn if needed.`;
|
|
67
82
|
function suppressedOutputBody(structuredCaptured) {
|
|
@@ -74,18 +89,35 @@ var LOOP_TYPE_LABELS = {
|
|
|
74
89
|
["repetitive_thoughts" /* REPETITIVE_THOUGHTS */]: "the model repeated the same reasoning thought",
|
|
75
90
|
["read_file_loop" /* READ_FILE_LOOP */]: "the model spent too many consecutive calls reading files without making progress",
|
|
76
91
|
["action_stagnation" /* ACTION_STAGNATION */]: "the model kept calling the same tool without making progress",
|
|
92
|
+
["shell_command_stagnation" /* SHELL_COMMAND_STAGNATION */]: "the model repeated similar shell inspection commands without making progress",
|
|
77
93
|
["global_tool_call_duplicate" /* GLOBAL_TOOL_CALL_DUPLICATE */]: "the model repeated the same tool call across the turn, even when not back-to-back",
|
|
78
94
|
["alternating_tool_call_pattern" /* ALTERNATING_TOOL_CALL_PATTERN */]: "the model alternated between the same two tool calls in a repeating pattern",
|
|
79
|
-
["turn_tool_call_cap" /* TURN_TOOL_CALL_CAP */]: "the model exceeded the maximum number of tool calls allowed in a single turn"
|
|
95
|
+
["turn_tool_call_cap" /* TURN_TOOL_CALL_CAP */]: "the model exceeded the maximum number of tool calls allowed in a single turn",
|
|
96
|
+
["invalid_tool_params_stagnation" /* INVALID_TOOL_PARAMS_STAGNATION */]: "the model repeatedly sent invalid tool parameters without correcting them"
|
|
80
97
|
};
|
|
81
98
|
function formatLoopDetectedMessage(loopType) {
|
|
82
99
|
const reason = loopType ? LOOP_TYPE_LABELS[loopType] : void 0;
|
|
83
100
|
const detail = reason ? ` (${loopType}: ${reason})` : "";
|
|
84
|
-
const isAlwaysOn = loopType === "turn_tool_call_cap" /* TURN_TOOL_CALL_CAP */ || loopType === "consecutive_identical_tool_calls" /* CONSECUTIVE_IDENTICAL_TOOL_CALLS */ || loopType === "global_tool_call_duplicate" /* GLOBAL_TOOL_CALL_DUPLICATE */;
|
|
101
|
+
const isAlwaysOn = loopType === "turn_tool_call_cap" /* TURN_TOOL_CALL_CAP */ || loopType === "consecutive_identical_tool_calls" /* CONSECUTIVE_IDENTICAL_TOOL_CALLS */ || loopType === "shell_command_stagnation" /* SHELL_COMMAND_STAGNATION */ || loopType === "global_tool_call_duplicate" /* GLOBAL_TOOL_CALL_DUPLICATE */ || loopType === "invalid_tool_params_stagnation" /* INVALID_TOOL_PARAMS_STAGNATION */;
|
|
85
102
|
const hint = isAlwaysOn ? " This is an always-on guard and cannot be disabled via `model.skipLoopDetection`." : " Set the `model.skipLoopDetection` setting to true to disable.";
|
|
86
103
|
return `Loop detection halted the run${detail}.${hint}`;
|
|
87
104
|
}
|
|
88
105
|
__name(formatLoopDetectedMessage, "formatLoopDetectedMessage");
|
|
106
|
+
function skipHeadlessLoopSentinel(scheduler, job) {
|
|
107
|
+
if (!isHeadlessLoopSentinel(job.prompt)) {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
if (job.recurring && !job.durable) {
|
|
111
|
+
debugLogger.debug(
|
|
112
|
+
"skipHeadlessLoopSentinel: cleaning up recurring session loop.md cron in headless mode",
|
|
113
|
+
{ jobId: job.id }
|
|
114
|
+
);
|
|
115
|
+
void scheduler.delete(job.id).catch(() => {
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
__name(skipHeadlessLoopSentinel, "skipHeadlessLoopSentinel");
|
|
89
121
|
function emitLoopDetectedMessage(config, loopType) {
|
|
90
122
|
const message = formatLoopDetectedMessage(loopType);
|
|
91
123
|
if (config.getOutputFormat() !== "text" /* TEXT */) {
|
|
@@ -134,6 +166,10 @@ async function runNonInteractive(config, settings, input, prompt_id, options = {
|
|
|
134
166
|
} else {
|
|
135
167
|
adapter = new JsonOutputAdapter(config);
|
|
136
168
|
}
|
|
169
|
+
const emitResult = /* @__PURE__ */ __name((result) => {
|
|
170
|
+
adapter.emitResult(result);
|
|
171
|
+
options.onResultEmitted?.();
|
|
172
|
+
}, "emitResult");
|
|
137
173
|
const sessionId = config.getSessionId();
|
|
138
174
|
const permissionMode = config.getApprovalMode();
|
|
139
175
|
let turnCount = 0;
|
|
@@ -249,6 +285,7 @@ ${reason}
|
|
|
249
285
|
manager.getEventEmitter().on("teammate_approval_request" /* TEAMMATE_APPROVAL_REQUEST */, approvalListener);
|
|
250
286
|
}
|
|
251
287
|
}, "onTeamManagerChangeHandler");
|
|
288
|
+
let continueSendType = null;
|
|
252
289
|
try {
|
|
253
290
|
process.stdout.on("error", stdoutErrorHandler);
|
|
254
291
|
process.on("SIGINT", shutdownHandler);
|
|
@@ -267,6 +304,50 @@ ${reason}
|
|
|
267
304
|
let initialPartList = extractPartsFromUserMessage(
|
|
268
305
|
options.userMessage
|
|
269
306
|
);
|
|
307
|
+
let inlineModelOverride;
|
|
308
|
+
if (options.continueInterrupted) {
|
|
309
|
+
const detection = detectTurnInterruption(
|
|
310
|
+
geminiClient.getChat().getHistory()
|
|
311
|
+
);
|
|
312
|
+
debugLogger.info("[runNonInteractive] continueInterrupted detection", {
|
|
313
|
+
kind: detection.kind,
|
|
314
|
+
partsCount: detection.kind === "interrupted_prompt" ? detection.parts.length : 0,
|
|
315
|
+
danglingCallCount: detection.kind === "interrupted_turn" ? detection.danglingCalls.length : 0
|
|
316
|
+
});
|
|
317
|
+
if (detection.kind === "none") {
|
|
318
|
+
await emitNonInteractiveFinalMessage({
|
|
319
|
+
message: "No interrupted turn to continue.",
|
|
320
|
+
isError: false,
|
|
321
|
+
adapter,
|
|
322
|
+
config,
|
|
323
|
+
startTimeMs: startTime
|
|
324
|
+
});
|
|
325
|
+
return 0;
|
|
326
|
+
}
|
|
327
|
+
if (detection.kind === "interrupted_prompt") {
|
|
328
|
+
initialPartList = detection.parts;
|
|
329
|
+
continueSendType = "retry" /* Retry */;
|
|
330
|
+
} else {
|
|
331
|
+
initialPartList = buildSyntheticToolResponseParts(
|
|
332
|
+
detection.danglingCalls,
|
|
333
|
+
ORPHAN_TOOL_USE_REPAIR_REASON
|
|
334
|
+
);
|
|
335
|
+
continueSendType = "toolResult" /* ToolResult */;
|
|
336
|
+
}
|
|
337
|
+
const reminderParts = buildInitialSystemReminders(config);
|
|
338
|
+
if (reminderParts.length > 0 && initialPartList) {
|
|
339
|
+
const continuationParts = normalizePartList(initialPartList);
|
|
340
|
+
const hasSystemReminderPart = continuationParts.some(
|
|
341
|
+
(part) => isSystemReminderContent({ role: "user", parts: [part] })
|
|
342
|
+
);
|
|
343
|
+
if (!hasSystemReminderPart) {
|
|
344
|
+
initialPartList = insertAfterFunctionResponses(
|
|
345
|
+
continuationParts,
|
|
346
|
+
reminderParts
|
|
347
|
+
);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
270
351
|
if (!initialPartList) {
|
|
271
352
|
let slashHandled = false;
|
|
272
353
|
if (isSlashCommand(input)) {
|
|
@@ -279,6 +360,19 @@ ${reason}
|
|
|
279
360
|
switch (slashCommandResult.type) {
|
|
280
361
|
case "submit_prompt":
|
|
281
362
|
initialPartList = slashCommandResult.content;
|
|
363
|
+
if (slashCommandResult.modelOverride !== void 0 && isInlineModelOverrideAllowed(
|
|
364
|
+
config,
|
|
365
|
+
slashCommandResult.modelOverride
|
|
366
|
+
)) {
|
|
367
|
+
inlineModelOverride = slashCommandResult.modelOverride;
|
|
368
|
+
debugLogger.debug(
|
|
369
|
+
`[runNonInteractive] inline model override captured: ${inlineModelOverride}`
|
|
370
|
+
);
|
|
371
|
+
} else if (slashCommandResult.modelOverride !== void 0) {
|
|
372
|
+
debugLogger.warn(
|
|
373
|
+
`[runNonInteractive] ignoring model override '${slashCommandResult.modelOverride}': not a model on the active provider`
|
|
374
|
+
);
|
|
375
|
+
}
|
|
282
376
|
slashHandled = true;
|
|
283
377
|
break;
|
|
284
378
|
case "message": {
|
|
@@ -345,13 +439,13 @@ ${text}
|
|
|
345
439
|
};
|
|
346
440
|
return Array.isArray(existing) ? [reminderPart, ...existing] : [reminderPart, existing];
|
|
347
441
|
}, "withReminder");
|
|
348
|
-
const startupNotice = config.consumePendingStartupWorktreeNotice();
|
|
442
|
+
const startupNotice = options.continueInterrupted ? null : config.consumePendingStartupWorktreeNotice();
|
|
349
443
|
if (startupNotice) {
|
|
350
444
|
initialPartList = withReminder(initialPartList, startupNotice);
|
|
351
445
|
adapter.emitSystemMessage("worktree_started", {
|
|
352
446
|
notice: startupNotice
|
|
353
447
|
});
|
|
354
|
-
} else if (config.getResumedSessionData()) {
|
|
448
|
+
} else if (!options.continueInterrupted && config.getResumedSessionData()) {
|
|
355
449
|
try {
|
|
356
450
|
const sessionPath = config.getSessionService().getWorktreeSessionPath(sessionId);
|
|
357
451
|
const restored = await restoreWorktreeContext(sessionPath);
|
|
@@ -436,7 +530,13 @@ ${text}
|
|
|
436
530
|
}
|
|
437
531
|
let isFirstTurn = true;
|
|
438
532
|
let hasUnsentToolResponse = false;
|
|
439
|
-
let modelOverride;
|
|
533
|
+
let modelOverride = inlineModelOverride;
|
|
534
|
+
const inlineModelOverrideActive = inlineModelOverride !== void 0;
|
|
535
|
+
if (inlineModelOverrideActive) {
|
|
536
|
+
debugLogger.debug(
|
|
537
|
+
`[runNonInteractive] inline model override active for turn: ${inlineModelOverride}`
|
|
538
|
+
);
|
|
539
|
+
}
|
|
440
540
|
let structuredSubmission = void 0;
|
|
441
541
|
let plainTextPreview = "";
|
|
442
542
|
const PLAIN_TEXT_PREVIEW_LIMIT = 200;
|
|
@@ -453,7 +553,7 @@ ${text}
|
|
|
453
553
|
const metrics = uiTelemetryService.getMetrics();
|
|
454
554
|
const usage = computeUsageFromMetrics(metrics);
|
|
455
555
|
const stats = outputFormat === "json" /* JSON */ ? uiTelemetryService.getMetrics() : void 0;
|
|
456
|
-
|
|
556
|
+
emitResult({
|
|
457
557
|
isError: false,
|
|
458
558
|
durationMs: Date.now() - startTime,
|
|
459
559
|
apiDurationMs: totalApiDurationMs,
|
|
@@ -677,7 +777,7 @@ ${text}
|
|
|
677
777
|
}
|
|
678
778
|
let sendType;
|
|
679
779
|
if (isFirstTurn) {
|
|
680
|
-
sendType = options.sendMessageType ?? "userQuery" /* UserQuery */;
|
|
780
|
+
sendType = continueSendType ?? options.sendMessageType ?? "userQuery" /* UserQuery */;
|
|
681
781
|
} else if (isTeammateTurn) {
|
|
682
782
|
sendType = "teammate" /* Teammate */;
|
|
683
783
|
} else {
|
|
@@ -741,7 +841,9 @@ ${text}
|
|
|
741
841
|
responseParts: toolResponseParts,
|
|
742
842
|
repeatedDuplicateProviderToolCall
|
|
743
843
|
} = await processToolCallBatch(toolCallRequests, (override) => {
|
|
744
|
-
|
|
844
|
+
if (!inlineModelOverrideActive) {
|
|
845
|
+
modelOverride = override;
|
|
846
|
+
}
|
|
745
847
|
});
|
|
746
848
|
if (structuredSubmission !== void 0) {
|
|
747
849
|
return emitStructuredSuccess();
|
|
@@ -922,6 +1024,9 @@ ${text}
|
|
|
922
1024
|
}, "drainLocalQueue");
|
|
923
1025
|
const scheduler = !config.isCronEnabled() ? null : config.getCronScheduler();
|
|
924
1026
|
if (scheduler) {
|
|
1027
|
+
scheduler.setSkipDurableFire(
|
|
1028
|
+
(job) => isHeadlessLoopSentinel(job.prompt)
|
|
1029
|
+
);
|
|
925
1030
|
await scheduler.enableDurable(config.getSessionId()).catch((err) => {
|
|
926
1031
|
debugLogger.warn(
|
|
927
1032
|
`Durable cron init failed \u2014 persistent tasks will not fire in this run: ${err}`
|
|
@@ -964,6 +1069,10 @@ ${text}
|
|
|
964
1069
|
reject(err);
|
|
965
1070
|
}, "onDrainError");
|
|
966
1071
|
scheduler.start((job) => {
|
|
1072
|
+
if (skipHeadlessLoopSentinel(scheduler, job)) {
|
|
1073
|
+
checkCronDone();
|
|
1074
|
+
return;
|
|
1075
|
+
}
|
|
967
1076
|
const label = job.prompt.slice(0, 40);
|
|
968
1077
|
localQueue.push({
|
|
969
1078
|
displayText: `${job.cronExpr === "@wakeup" ? "Loop" : "Cron"}: ${label}`,
|
|
@@ -1005,7 +1114,7 @@ ${text}
|
|
|
1005
1114
|
const previewSnippet = plainTextPreview.trim();
|
|
1006
1115
|
const previewSuffix = previewSnippet ? ` Output preview (${plainTextPreview.length}${plainTextPreview.length >= PLAIN_TEXT_PREVIEW_LIMIT ? "+" : ""} chars): ${JSON.stringify(previewSnippet)}.` : "";
|
|
1007
1116
|
const errorMessage = `Model produced plain text instead of calling the structured_output tool as required by --json-schema after ${turnCount} turn(s).` + previewSuffix;
|
|
1008
|
-
|
|
1117
|
+
emitResult({
|
|
1009
1118
|
isError: true,
|
|
1010
1119
|
durationMs: Date.now() - startTime,
|
|
1011
1120
|
apiDurationMs: totalApiDurationMs,
|
|
@@ -1016,7 +1125,7 @@ ${text}
|
|
|
1016
1125
|
});
|
|
1017
1126
|
return 1;
|
|
1018
1127
|
}
|
|
1019
|
-
|
|
1128
|
+
emitResult({
|
|
1020
1129
|
isError: false,
|
|
1021
1130
|
durationMs: Date.now() - startTime,
|
|
1022
1131
|
apiDurationMs: totalApiDurationMs,
|
|
@@ -1043,7 +1152,7 @@ ${text}
|
|
|
1043
1152
|
const skipAdapterEmit = outputFormat === "text" /* TEXT */ && isAlreadyReportedError;
|
|
1044
1153
|
if (!skipAdapterEmit) {
|
|
1045
1154
|
try {
|
|
1046
|
-
|
|
1155
|
+
emitResult({
|
|
1047
1156
|
isError: true,
|
|
1048
1157
|
durationMs: Date.now() - startTime,
|
|
1049
1158
|
apiDurationMs: totalApiDurationMs,
|
|
@@ -1095,6 +1204,7 @@ ${text}
|
|
|
1095
1204
|
__name(runNonInteractive, "runNonInteractive");
|
|
1096
1205
|
|
|
1097
1206
|
export {
|
|
1207
|
+
skipHeadlessLoopSentinel,
|
|
1098
1208
|
runNonInteractive
|
|
1099
1209
|
};
|
|
1100
1210
|
/**
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
init_esbuild_shims
|
|
5
|
+
} from "./chunk-A4BMJM77.js";
|
|
6
|
+
import {
|
|
7
|
+
__name
|
|
8
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
9
|
+
|
|
10
|
+
// packages/acp-bridge/src/workspacePaths.ts
|
|
11
|
+
init_esbuild_shims();
|
|
12
|
+
import { realpathSync } from "node:fs";
|
|
13
|
+
import * as path from "node:path";
|
|
14
|
+
function canonicalizeWorkspace(p) {
|
|
15
|
+
const resolved = path.resolve(p);
|
|
16
|
+
try {
|
|
17
|
+
return realpathSync.native(resolved);
|
|
18
|
+
} catch (err) {
|
|
19
|
+
if (err && typeof err === "object" && err.code === "ENOENT") {
|
|
20
|
+
return resolved;
|
|
21
|
+
}
|
|
22
|
+
throw err;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
__name(canonicalizeWorkspace, "canonicalizeWorkspace");
|
|
26
|
+
var MAX_WORKSPACE_PATH_LENGTH = 4096;
|
|
27
|
+
|
|
28
|
+
export {
|
|
29
|
+
canonicalizeWorkspace,
|
|
30
|
+
MAX_WORKSPACE_PATH_LENGTH
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* @license
|
|
34
|
+
* Copyright 2025 Qwen Team
|
|
35
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
36
|
+
*/
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
init_esbuild_shims
|
|
5
|
+
} from "./chunk-A4BMJM77.js";
|
|
6
|
+
import {
|
|
7
|
+
__name
|
|
8
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
9
|
+
|
|
10
|
+
// packages/core/src/core/reasoning-effort.ts
|
|
11
|
+
init_esbuild_shims();
|
|
12
|
+
var REASONING_EFFORT_TIERS = [
|
|
13
|
+
"low",
|
|
14
|
+
"medium",
|
|
15
|
+
"high",
|
|
16
|
+
"xhigh",
|
|
17
|
+
"max"
|
|
18
|
+
];
|
|
19
|
+
var REASONING_EFFORT_RANKS = {
|
|
20
|
+
low: 20,
|
|
21
|
+
medium: 30,
|
|
22
|
+
high: 40,
|
|
23
|
+
xhigh: 60,
|
|
24
|
+
max: 70
|
|
25
|
+
};
|
|
26
|
+
function normalizeReasoningEffort(raw) {
|
|
27
|
+
if (!raw || typeof raw !== "string") {
|
|
28
|
+
return void 0;
|
|
29
|
+
}
|
|
30
|
+
const key = raw.trim().toLowerCase().replace(/[\s_-]+/g, "");
|
|
31
|
+
switch (key) {
|
|
32
|
+
case "low":
|
|
33
|
+
return "low";
|
|
34
|
+
case "medium":
|
|
35
|
+
case "med":
|
|
36
|
+
return "medium";
|
|
37
|
+
case "high":
|
|
38
|
+
return "high";
|
|
39
|
+
case "xhigh":
|
|
40
|
+
case "extrahigh":
|
|
41
|
+
return "xhigh";
|
|
42
|
+
case "max":
|
|
43
|
+
case "maximum":
|
|
44
|
+
return "max";
|
|
45
|
+
default:
|
|
46
|
+
return void 0;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
__name(normalizeReasoningEffort, "normalizeReasoningEffort");
|
|
50
|
+
function clampReasoningEffort(requested, supported) {
|
|
51
|
+
const set = supported && supported.length > 0 ? supported : REASONING_EFFORT_TIERS;
|
|
52
|
+
if (set.includes(requested)) {
|
|
53
|
+
return requested;
|
|
54
|
+
}
|
|
55
|
+
const requestedRank = REASONING_EFFORT_RANKS[requested];
|
|
56
|
+
const ranked = [...set].sort(
|
|
57
|
+
(a, b) => REASONING_EFFORT_RANKS[a] - REASONING_EFFORT_RANKS[b]
|
|
58
|
+
);
|
|
59
|
+
for (const tier of ranked) {
|
|
60
|
+
if (REASONING_EFFORT_RANKS[tier] >= requestedRank) {
|
|
61
|
+
return tier;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return ranked[ranked.length - 1];
|
|
65
|
+
}
|
|
66
|
+
__name(clampReasoningEffort, "clampReasoningEffort");
|
|
67
|
+
|
|
68
|
+
export {
|
|
69
|
+
REASONING_EFFORT_TIERS,
|
|
70
|
+
REASONING_EFFORT_RANKS,
|
|
71
|
+
normalizeReasoningEffort,
|
|
72
|
+
clampReasoningEffort
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* @license
|
|
76
|
+
* Copyright 2025 Qwen
|
|
77
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
78
|
+
*/
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
} from "./chunk-OMX7CUOE.js";
|
|
6
6
|
import {
|
|
7
7
|
atomicWriteJSON
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-T42ACHFI.js";
|
|
9
9
|
import {
|
|
10
10
|
Storage,
|
|
11
11
|
getProjectHash
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-AVQDCKNF.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esbuild_shims
|
|
15
15
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
init_esbuild_shims
|
|
5
|
+
} from "./chunk-A4BMJM77.js";
|
|
6
|
+
import {
|
|
7
|
+
__commonJS,
|
|
8
|
+
__require
|
|
9
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
10
|
+
|
|
11
|
+
// node_modules/safer-buffer/safer.js
|
|
12
|
+
var require_safer = __commonJS({
|
|
13
|
+
"node_modules/safer-buffer/safer.js"(exports, module) {
|
|
14
|
+
"use strict";
|
|
15
|
+
init_esbuild_shims();
|
|
16
|
+
var buffer = __require("buffer");
|
|
17
|
+
var Buffer = buffer.Buffer;
|
|
18
|
+
var safer = {};
|
|
19
|
+
var key;
|
|
20
|
+
for (key in buffer) {
|
|
21
|
+
if (!buffer.hasOwnProperty(key)) continue;
|
|
22
|
+
if (key === "SlowBuffer" || key === "Buffer") continue;
|
|
23
|
+
safer[key] = buffer[key];
|
|
24
|
+
}
|
|
25
|
+
var Safer = safer.Buffer = {};
|
|
26
|
+
for (key in Buffer) {
|
|
27
|
+
if (!Buffer.hasOwnProperty(key)) continue;
|
|
28
|
+
if (key === "allocUnsafe" || key === "allocUnsafeSlow") continue;
|
|
29
|
+
Safer[key] = Buffer[key];
|
|
30
|
+
}
|
|
31
|
+
safer.Buffer.prototype = Buffer.prototype;
|
|
32
|
+
if (!Safer.from || Safer.from === Uint8Array.from) {
|
|
33
|
+
Safer.from = function(value, encodingOrOffset, length) {
|
|
34
|
+
if (typeof value === "number") {
|
|
35
|
+
throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value);
|
|
36
|
+
}
|
|
37
|
+
if (value && typeof value.length === "undefined") {
|
|
38
|
+
throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);
|
|
39
|
+
}
|
|
40
|
+
return Buffer(value, encodingOrOffset, length);
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (!Safer.alloc) {
|
|
44
|
+
Safer.alloc = function(size, fill, encoding) {
|
|
45
|
+
if (typeof size !== "number") {
|
|
46
|
+
throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size);
|
|
47
|
+
}
|
|
48
|
+
if (size < 0 || size >= 2 * (1 << 30)) {
|
|
49
|
+
throw new RangeError('The value "' + size + '" is invalid for option "size"');
|
|
50
|
+
}
|
|
51
|
+
var buf = Buffer(size);
|
|
52
|
+
if (!fill || fill.length === 0) {
|
|
53
|
+
buf.fill(0);
|
|
54
|
+
} else if (typeof encoding === "string") {
|
|
55
|
+
buf.fill(fill, encoding);
|
|
56
|
+
} else {
|
|
57
|
+
buf.fill(fill);
|
|
58
|
+
}
|
|
59
|
+
return buf;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
if (!safer.kStringMaxLength) {
|
|
63
|
+
try {
|
|
64
|
+
safer.kStringMaxLength = process.binding("buffer").kStringMaxLength;
|
|
65
|
+
} catch (e) {
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (!safer.constants) {
|
|
69
|
+
safer.constants = {
|
|
70
|
+
MAX_LENGTH: safer.kMaxLength
|
|
71
|
+
};
|
|
72
|
+
if (safer.kStringMaxLength) {
|
|
73
|
+
safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
module.exports = safer;
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
export {
|
|
81
|
+
require_safer
|
|
82
|
+
};
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
MAX_WORKSPACE_PATH_LENGTH
|
|
5
|
+
} from "./chunk-SEZC2725.js";
|
|
3
6
|
import {
|
|
4
7
|
init_esbuild_shims
|
|
5
8
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -7,24 +10,6 @@ import {
|
|
|
7
10
|
__name
|
|
8
11
|
} from "./chunk-J2S4EL5Y.js";
|
|
9
12
|
|
|
10
|
-
// packages/acp-bridge/src/workspacePaths.ts
|
|
11
|
-
init_esbuild_shims();
|
|
12
|
-
import { realpathSync } from "node:fs";
|
|
13
|
-
import * as path from "node:path";
|
|
14
|
-
function canonicalizeWorkspace(p) {
|
|
15
|
-
const resolved = path.resolve(p);
|
|
16
|
-
try {
|
|
17
|
-
return realpathSync.native(resolved);
|
|
18
|
-
} catch (err) {
|
|
19
|
-
if (err && typeof err === "object" && err.code === "ENOENT") {
|
|
20
|
-
return resolved;
|
|
21
|
-
}
|
|
22
|
-
throw err;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
__name(canonicalizeWorkspace, "canonicalizeWorkspace");
|
|
26
|
-
var MAX_WORKSPACE_PATH_LENGTH = 4096;
|
|
27
|
-
|
|
28
13
|
// packages/acp-bridge/src/bridgeErrors.ts
|
|
29
14
|
init_esbuild_shims();
|
|
30
15
|
var NOT_CURRENTLY_GENERATING_CANCEL_MESSAGE = "Not currently generating";
|
|
@@ -53,6 +38,45 @@ var SessionNotFoundError = class extends Error {
|
|
|
53
38
|
this.sessionId = sessionId;
|
|
54
39
|
}
|
|
55
40
|
};
|
|
41
|
+
var SessionArchivedError = class extends Error {
|
|
42
|
+
static {
|
|
43
|
+
__name(this, "SessionArchivedError");
|
|
44
|
+
}
|
|
45
|
+
sessionId;
|
|
46
|
+
constructor(sessionId) {
|
|
47
|
+
super(`Session "${sessionId}" is archived. Unarchive it before loading.`);
|
|
48
|
+
this.name = "SessionArchivedError";
|
|
49
|
+
this.sessionId = sessionId;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var SessionConflictError = class extends Error {
|
|
53
|
+
static {
|
|
54
|
+
__name(this, "SessionConflictError");
|
|
55
|
+
}
|
|
56
|
+
sessionId;
|
|
57
|
+
constructor(sessionId) {
|
|
58
|
+
super(
|
|
59
|
+
`Session "${sessionId}" exists in both active and archived directories. Delete the session with POST /sessions/delete before loading.`
|
|
60
|
+
);
|
|
61
|
+
this.name = "SessionConflictError";
|
|
62
|
+
this.sessionId = sessionId;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
var SessionArchivingError = class extends Error {
|
|
66
|
+
static {
|
|
67
|
+
__name(this, "SessionArchivingError");
|
|
68
|
+
}
|
|
69
|
+
sessionId;
|
|
70
|
+
lockKind;
|
|
71
|
+
constructor(sessionId, lockKind = "exclusive") {
|
|
72
|
+
super(
|
|
73
|
+
`Session "${sessionId}" is being archived or unarchived; retry later.`
|
|
74
|
+
);
|
|
75
|
+
this.name = "SessionArchivingError";
|
|
76
|
+
this.sessionId = sessionId;
|
|
77
|
+
this.lockKind = lockKind;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
56
80
|
var RestoreInProgressError = class extends Error {
|
|
57
81
|
static {
|
|
58
82
|
__name(this, "RestoreInProgressError");
|
|
@@ -235,12 +259,12 @@ var WorkspaceInitConflictError = class extends Error {
|
|
|
235
259
|
}
|
|
236
260
|
path;
|
|
237
261
|
existingSize;
|
|
238
|
-
constructor(
|
|
262
|
+
constructor(path, existingSize) {
|
|
239
263
|
super(
|
|
240
|
-
`Workspace file ${
|
|
264
|
+
`Workspace file ${path} already exists (${existingSize} bytes); pass {force: true} to overwrite.`
|
|
241
265
|
);
|
|
242
266
|
this.name = "WorkspaceInitConflictError";
|
|
243
|
-
this.path =
|
|
267
|
+
this.path = path;
|
|
244
268
|
this.existingSize = existingSize;
|
|
245
269
|
}
|
|
246
270
|
};
|
|
@@ -361,11 +385,12 @@ var CdWhilePromptActiveError = class extends Error {
|
|
|
361
385
|
};
|
|
362
386
|
|
|
363
387
|
export {
|
|
364
|
-
canonicalizeWorkspace,
|
|
365
|
-
MAX_WORKSPACE_PATH_LENGTH,
|
|
366
388
|
NOT_CURRENTLY_GENERATING_CANCEL_MESSAGE,
|
|
367
389
|
isNotCurrentlyGeneratingCancelError,
|
|
368
390
|
SessionNotFoundError,
|
|
391
|
+
SessionArchivedError,
|
|
392
|
+
SessionConflictError,
|
|
393
|
+
SessionArchivingError,
|
|
369
394
|
RestoreInProgressError,
|
|
370
395
|
InvalidSessionScopeError,
|
|
371
396
|
SessionLimitExceededError,
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
formatFetchErrorForUser
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-GLPV75ES.js";
|
|
6
6
|
import {
|
|
7
7
|
openBrowserSecurely
|
|
8
8
|
} from "./chunk-22IFUCVR.js";
|
|
9
9
|
import {
|
|
10
10
|
atomicWriteFile
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-T42ACHFI.js";
|
|
12
12
|
import {
|
|
13
13
|
combineAbortSignals
|
|
14
14
|
} from "./chunk-64WXLC72.js";
|
|
15
15
|
import {
|
|
16
16
|
Storage,
|
|
17
17
|
createDebugLogger
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-AVQDCKNF.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-A4BMJM77.js";
|