@qwen-code/qwen-code 0.20.1-preview.7215 → 0.20.2-gdpval-vl-agent.0
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/qc-helper/docs/configuration/settings.md +1 -1
- package/bundled/qc-helper/docs/features/auto-mode.md +19 -16
- package/bundled/qc-helper/docs/features/commands.md +54 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +16 -7
- package/bundled/qc-helper/docs/integration-github-action.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +2 -1
- package/bundled/review/DESIGN.md +2 -2
- package/bundled/review/SKILL.md +4 -4
- package/chunks/{MaxSizedBox-EH6G5AEH.js → MaxSizedBox-KYNG7EN7.js} +38 -35
- package/chunks/{StandaloneSessionPicker-264A3TEA.js → StandaloneSessionPicker-7XN4WVVG.js} +55 -52
- package/chunks/{acpAgent-6RBIJFDI.js → acpAgent-FTFFYP5G.js} +1536 -512
- package/chunks/{agent-QURXGAA3.js → agent-Y76LTTOT.js} +34 -31
- package/chunks/{agent-headless-CRGX4ICQ.js → agent-headless-IVAEQPK6.js} +34 -31
- package/chunks/{anthropicContentGenerator-BWBAZGTW.js → anthropicContentGenerator-HGWAHO24.js} +11 -13
- package/chunks/{artifact-tool-IUJ7QWCX.js → artifact-tool-56T5IMBP.js} +3 -3
- package/chunks/{askUserQuestion-IUMUUTDQ.js → askUserQuestion-E25OBIC2.js} +3 -3
- package/chunks/{bridge-MNFVKPMI.js → bridge-4M77KUEV.js} +39 -36
- package/chunks/{build-SSCNEHZZ.js → build-GHIZ4MSZ.js} +1 -1
- package/chunks/{ca-2SL2BXTK.js → ca-N6VVUFVB.js} +611 -201
- package/chunks/{channel-worker-group-53CMOPFT.js → channel-worker-group-QZV2SP5U.js} +4 -4
- package/chunks/{channel-worker-manager-UTXILKC2.js → channel-worker-manager-3GMAU45H.js} +4 -4
- package/chunks/{channel-worker-supervisor-ZGO2W2MD.js → channel-worker-supervisor-QCXSXCRY.js} +3 -3
- package/chunks/{chunk-UQES76OO.js → chunk-2HGTVAOW.js} +6 -6
- package/chunks/{chunk-2HOVDT7W.js → chunk-2LI23QA6.js} +1 -1
- package/chunks/{chunk-ANHT55MR.js → chunk-2P6CNEHB.js} +1 -1
- package/chunks/chunk-2RFKHEXL.js +74 -0
- package/chunks/{chunk-BF32GYSY.js → chunk-3IABAQR6.js} +1 -1
- package/chunks/chunk-3Z43GZUQ.js +32 -0
- package/chunks/chunk-43T5WDQ7.js +127 -0
- package/chunks/{chunk-DA7OOKVN.js → chunk-4CTP6VR6.js} +29 -2
- package/chunks/{chunk-JD3MKVKL.js → chunk-4K56OJFJ.js} +1 -1
- package/chunks/{chunk-KTUQMDEP.js → chunk-4K7VDKAD.js} +1 -1
- package/chunks/{chunk-QKYTTBYW.js → chunk-4LVZNIDO.js} +1 -1
- package/chunks/{chunk-ZEOZL37W.js → chunk-57FIIFJN.js} +1 -1
- package/chunks/{chunk-7YBZGNEC.js → chunk-5G3ZVADU.js} +308 -199
- package/chunks/{chunk-X4CGDBKA.js → chunk-6GEJX3LE.js} +3 -3
- package/chunks/{chunk-6GUTHAN7.js → chunk-6HOCJNO5.js} +1 -1
- package/chunks/{chunk-GMGDLUC7.js → chunk-6IL7KRLE.js} +1 -1
- package/chunks/chunk-6PVPNMXU.js +29 -0
- package/chunks/{chunk-BDBMYST4.js → chunk-6X4GWOPW.js} +1 -1
- package/chunks/{chunk-4ODB7WIB.js → chunk-6ZBPS62S.js} +1 -1
- package/chunks/{chunk-AYCDXHZB.js → chunk-7Z6JQEL6.js} +1 -1
- package/chunks/{chunk-WAX3ITOA.js → chunk-A3TAEAHX.js} +1 -1
- package/chunks/{chunk-OLMETXLX.js → chunk-ACW3VNUE.js} +2 -2
- package/chunks/{chunk-IB35C3IL.js → chunk-AVQ6EX4J.js} +1 -1
- package/chunks/{chunk-TTSKHF43.js → chunk-BK6UOUJ2.js} +2 -2
- package/chunks/{chunk-6OH6A5EX.js → chunk-BLAEKN6K.js} +20603 -17709
- package/chunks/chunk-BULDBTYC.js +153 -0
- package/chunks/{chunk-XNP57UDV.js → chunk-C3EXYVFX.js} +2 -2
- package/chunks/{chunk-FVS747N7.js → chunk-C54UTDOC.js} +23 -19
- package/chunks/{chunk-MAQQGNQ5.js → chunk-CBOQ3HY7.js} +466 -10
- package/chunks/{chunk-VFAE4AGH.js → chunk-CGZ5SV23.js} +72 -67
- package/chunks/{chunk-WKRXIHD6.js → chunk-COAARUPK.js} +8 -8
- package/chunks/{chunk-GA7VRJVN.js → chunk-E2ZK5M4P.js} +5 -5
- package/chunks/{chunk-5SCI6E3E.js → chunk-E4IMU4Y5.js} +1 -1
- package/chunks/{chunk-E5GIFWE3.js → chunk-EEFRJ5CT.js} +54 -33
- package/chunks/{chunk-WXAXH7IJ.js → chunk-ESQHGKPJ.js} +1 -1
- package/chunks/{chunk-NEEB7UEN.js → chunk-FFFM6NJV.js} +1 -2
- package/chunks/{chunk-Z5R4JMOL.js → chunk-FJ2IUWNQ.js} +4 -4
- package/chunks/{chunk-JVTCARQ6.js → chunk-FQI7LT7T.js} +4 -4
- package/chunks/{chunk-BRXIO5WY.js → chunk-FTNI3D7D.js} +7 -7
- package/chunks/{chunk-OMH3276Y.js → chunk-GHRSKGHF.js} +7 -7
- package/chunks/{chunk-OONJNQ42.js → chunk-GPSKDNEE.js} +3 -3
- package/chunks/{chunk-KPZNOZPC.js → chunk-GWM4PDYK.js} +19 -19
- package/chunks/{chunk-NBMIC7DR.js → chunk-H24SOJIQ.js} +2 -2
- package/chunks/{chunk-FNGK2Z5B.js → chunk-H4AR2JQF.js} +3 -3
- package/chunks/{chunk-WOT64EP2.js → chunk-HCJQORKC.js} +2 -2
- package/chunks/{chunk-7KDI2IB2.js → chunk-HDATOR4J.js} +4 -4
- package/chunks/{chunk-IE4JSQ5L.js → chunk-HIYP7IR4.js} +39 -37
- package/chunks/{chunk-N6YTEVLV.js → chunk-HL6AKUGD.js} +10 -4
- package/chunks/{chunk-BAIEQKR5.js → chunk-HPQFGWOD.js} +5 -5
- package/chunks/chunk-HTR4WV6U.js +327 -0
- package/chunks/{chunk-SDXIH6OA.js → chunk-IFUNDCQ6.js} +137 -5
- package/chunks/{chunk-Z6UEAQTP.js → chunk-IFVECEIK.js} +178 -61
- package/chunks/{chunk-QOK6RMIP.js → chunk-IKP54WUL.js} +4 -4
- package/chunks/{chunk-IUSNI6IX.js → chunk-ISMD2AB3.js} +1 -1
- package/chunks/{chunk-G45X5TRN.js → chunk-JCW2R7WC.js} +1 -72
- package/chunks/{chunk-LZYWWWCZ.js → chunk-KF6CTNTJ.js} +8 -9
- package/chunks/{chunk-EIAK6Q2B.js → chunk-KHOVYUHX.js} +2 -2
- package/chunks/chunk-KWK7UE6L.js +6194 -0
- package/chunks/{chunk-WBTZGWQ6.js → chunk-L5F3T6TQ.js} +1 -1
- package/chunks/{chunk-RELYEO3R.js → chunk-L7ASZD66.js} +244 -1607
- package/chunks/{chunk-UJEZQ562.js → chunk-LESHKUWF.js} +3 -5
- package/chunks/{chunk-OOCI5VVU.js → chunk-LIZRAKPB.js} +1 -1
- package/chunks/{chunk-Q3ZBFXK4.js → chunk-LKB5YL5T.js} +143 -36
- package/chunks/{chunk-MKLKHZAK.js → chunk-LU3RXCM7.js} +1 -1
- package/chunks/{chunk-B453NMZJ.js → chunk-M3EQ3GZC.js} +3 -3
- package/chunks/{chunk-TCKTNY66.js → chunk-M4VFMLQK.js} +6 -6
- package/chunks/{chunk-26LLB6FM.js → chunk-MDZTPSXO.js} +2 -2
- package/chunks/{chunk-4SLLEAQP.js → chunk-MJPBB2GK.js} +591 -316
- package/chunks/chunk-NABLFI57.js +82 -0
- package/chunks/{chunk-T7DDD7CZ.js → chunk-NAXEEGJU.js} +4 -4
- package/chunks/{chunk-467G3SV5.js → chunk-NPQDJGKU.js} +1 -1
- package/chunks/{chunk-FLTN6NRU.js → chunk-O4OT3DM3.js} +5 -1
- package/chunks/{chunk-3EUZWNWA.js → chunk-OPDZT2VG.js} +1 -1
- package/chunks/chunk-OQ5SYCPE.js +10017 -0
- package/chunks/{chunk-C27BYUX6.js → chunk-OQB4EXO4.js} +14 -11
- package/chunks/{chunk-V25Z5UUB.js → chunk-P6PBZL3N.js} +7 -6
- package/chunks/{chunk-5NWV4NFB.js → chunk-PRAUGUNM.js} +3 -3
- package/chunks/{chunk-MC2DOZS7.js → chunk-PVT6E3ZI.js} +3 -3
- package/chunks/{chunk-KXEGCGUG.js → chunk-Q22WWVR6.js} +31 -6
- package/chunks/{chunk-JDI67JFB.js → chunk-Q2YKNMLS.js} +3 -3
- package/chunks/{chunk-PBATSWUQ.js → chunk-QBUDF33N.js} +1 -1
- package/chunks/{chunk-Y2ENGUD6.js → chunk-QKTHJXCS.js} +1 -1
- package/chunks/{chunk-BVLROR2T.js → chunk-QLJUC7TG.js} +1 -1
- package/chunks/{chunk-UEY4AYUL.js → chunk-QNLNLENL.js} +2 -2
- package/chunks/{chunk-OKWRU4NO.js → chunk-RC7A7SSL.js} +3 -3
- package/chunks/chunk-RCUEYZDE.js +2290 -0
- package/chunks/{chunk-EVSTCA7S.js → chunk-RMY5SX7S.js} +368 -113
- package/chunks/{chunk-4WUAQ2DO.js → chunk-RTQSXHS7.js} +2 -2
- package/chunks/{chunk-RFIAR4YL.js → chunk-RV4C2ZFG.js} +1 -1
- package/chunks/{chunk-NIJEXGV6.js → chunk-RVLZCXEE.js} +79 -10
- package/chunks/{chunk-Q4RBU7WX.js → chunk-S333CBIA.js} +6 -6
- package/chunks/{chunk-JNWZQ27S.js → chunk-SP5WRGVG.js} +3 -3
- package/chunks/{chunk-FSL5W5TI.js → chunk-T2L47JJK.js} +3 -3
- package/chunks/{chunk-PWVTCGBP.js → chunk-TA4S377U.js} +30 -20
- package/chunks/{chunk-TB6UDU4T.js → chunk-THJNPLI4.js} +16 -16
- package/chunks/chunk-U6TQGUNB.js +20687 -0
- package/chunks/chunk-U7ZFW55U.js +2098 -0
- package/chunks/{chunk-W7H223ZZ.js → chunk-UGYMA4EI.js} +1 -1
- package/chunks/{chunk-X6YQWCIJ.js → chunk-UH3WSE5L.js} +13 -1
- package/chunks/{chunk-P2YAOGJD.js → chunk-UKU3NGW6.js} +3 -3
- package/chunks/{chunk-NOWTNYC7.js → chunk-UVFCANV5.js} +8 -8
- package/chunks/{chunk-CVDW42JT.js → chunk-V4AKJQ26.js} +1 -1
- package/chunks/{chunk-Z5Q65RVH.js → chunk-VJPRLNLR.js} +1 -1
- package/chunks/{chunk-Y4CRUWFZ.js → chunk-VTXX72XS.js} +60 -35
- package/chunks/{chunk-R3VWUU2E.js → chunk-VYPFXUCB.js} +1 -1
- package/chunks/chunk-WHGVTP7Q.js +1049 -0
- package/chunks/{chunk-IKP5DXZY.js → chunk-WOWQQGGN.js} +5 -5
- package/chunks/{chunk-D2VIDMVM.js → chunk-X6N25LXS.js} +2 -2
- package/chunks/chunk-XHATNRQA.js +1500 -0
- package/chunks/{chunk-2DXOIVUI.js → chunk-YLSB23Y2.js} +11 -11
- package/chunks/{chunk-S35ZDXOS.js → chunk-YM3SZTH4.js} +2 -1
- package/chunks/{chunk-OF2BBLYQ.js → chunk-YNWJAOPL.js} +2 -2
- package/chunks/{chunk-GKY2OJ7R.js → chunk-ZHERRXZJ.js} +1 -1
- package/chunks/{chunk-AR27OPIU.js → chunk-ZKFJKN23.js} +2 -2
- package/chunks/{computer-use-R7KA6UJ6.js → computer-use-UKQBH7UM.js} +39 -36
- package/chunks/{config-utils-6FXFJUYB.js → config-utils-FYTBZLCJ.js} +3 -3
- package/chunks/{contextCommand-KAQQPHZ4.js → contextCommand-ESHGAVWX.js} +36 -33
- package/chunks/{create-sub-session-TDPDBU4K.js → create-sub-session-574EPZUU.js} +34 -31
- package/chunks/{create-sub-session-X5RVIHCK.js → create-sub-session-AZ77LBL3.js} +3 -3
- package/chunks/{cron-create-AC5FFLN7.js → cron-create-KTWJM7QT.js} +5 -5
- package/chunks/{cron-delete-JEB3FAHA.js → cron-delete-2P3I5ULL.js} +5 -5
- package/chunks/{cron-list-NBYPCNIB.js → cron-list-PXDPGEDQ.js} +5 -5
- package/chunks/{daemon-RG2MAI6T.js → daemon-GJRFILYS.js} +323 -99
- package/chunks/daemon-status-provider-GZXZP3NU.js +80 -0
- package/chunks/{de-I7ZIYXZC.js → de-4IBXM7CN.js} +5 -1
- package/chunks/{dist-AU7NQQRP.js → dist-OAV7LJGJ.js} +1 -1
- package/chunks/{dist-FUTEXY6A.js → dist-OMW6WDEO.js} +1 -1
- package/chunks/{dist-2MIU4UUH.js → dist-PJLG2XYX.js} +1 -1
- package/chunks/{dist-53PZYC5B.js → dist-UIFWIFRO.js} +2 -2
- package/chunks/{dist-2BHAYBKP.js → dist-XBJVSWS2.js} +1 -1
- package/chunks/{dist-WGTQO7F2.js → dist-XRYV6TJP.js} +65 -25
- package/chunks/{earlyInputCapture-WC7RI5HV.js → earlyInputCapture-GI3HGQIT.js} +35 -32
- package/chunks/{edit-6MHKCJCM.js → edit-EBJK74B3.js} +42 -41
- package/chunks/{en-XE34GKAA.js → en-USMCCJAJ.js} +5 -1
- package/chunks/{enter-worktree-O7VJ2E7A.js → enter-worktree-2ETY5CSV.js} +39 -36
- package/chunks/{enterPlanMode-5XYAALIO.js → enterPlanMode-NY4U2727.js} +45 -37
- package/chunks/{environment-LSKFNLBU.js → environment-33IR3NOU.js} +36 -33
- package/chunks/{errors-ZFVCY6HG.js → errors-2OCY23IC.js} +36 -33
- package/chunks/{exit-worktree-MYIK66T7.js → exit-worktree-Y4ULJ45U.js} +39 -36
- package/chunks/{exitPlanMode-7MBNU76O.js → exitPlanMode-SECI2EQ6.js} +39 -36
- package/chunks/{fast-path-RNLIB64C.js → fast-path-6Z7RW5J5.js} +3 -2
- package/chunks/{fr-X7KDVZIY.js → fr-WVHEBDDB.js} +5 -1
- package/chunks/{gemini-WK5ISEAQ.js → gemini-XLGLUGSU.js} +93 -89
- package/chunks/{geminiContentGenerator-NUJQBZBW.js → geminiContentGenerator-NNZZDH24.js} +5 -5
- package/chunks/{getMachineId-bsd-EXV7SWPA.js → getMachineId-bsd-QFVLPUPT.js} +1 -1
- package/chunks/{getMachineId-darwin-IUOMFXU3.js → getMachineId-darwin-DGMQQE2E.js} +1 -1
- package/chunks/{getMachineId-linux-K7XJYFHL.js → getMachineId-linux-R4Z6CSWC.js} +1 -1
- package/chunks/{getMachineId-unsupported-EA5FDRJ6.js → getMachineId-unsupported-Z3SBVBUV.js} +1 -1
- package/chunks/{getMachineId-win-KBA6RAI5.js → getMachineId-win-SCK5UFDT.js} +1 -1
- package/chunks/{glob-7P6RYY4L.js → glob-KZA64SSV.js} +41 -38
- package/chunks/{grep-V3QHNP2J.js → grep-ONHQMY3V.js} +41 -38
- package/chunks/handleAutoUpdate-PRTJISXQ.js +73 -0
- package/chunks/{i18n-B7IO7WQT.js → i18n-ZTKKG5R5.js} +35 -32
- package/chunks/{initializer-E5TIC3CW.js → initializer-FPPZGBYN.js} +40 -37
- package/chunks/{installationInfo-XLPNAISK.js → installationInfo-DV2C27HT.js} +37 -32
- package/chunks/{ja-2ICT3KXF.js → ja-KY4ROZTE.js} +5 -1
- package/chunks/{keychain-token-storage-DWRJMNH3.js → keychain-token-storage-6ACJDYIB.js} +3 -3
- package/chunks/{list-3CZR5I42.js → list-KEHCNUAK.js} +42 -39
- package/chunks/{loadedSettingsAdapter-X5BSC6CE.js → loadedSettingsAdapter-7RZ6M3WH.js} +39 -36
- package/chunks/{loop-wakeup-HMHCT5GU.js → loop-wakeup-RNMRVA66.js} +6 -6
- package/chunks/{ls-IW5HYDG4.js → ls-J2ZI5XYK.js} +5 -5
- package/chunks/{lsp-4RL52YIZ.js → lsp-UMS3NUB5.js} +3 -3
- package/chunks/managed-npm-update-EBKNOG37.js +332 -0
- package/chunks/{mcp-4C4HWXAR.js → mcp-NHXKZRRP.js} +39 -36
- package/chunks/{monitor-3CJDNZB2.js → monitor-FMUAIFFH.js} +39 -36
- package/chunks/nonInteractiveCli-I2GPZNTP.js +132 -0
- package/chunks/{notebook-edit-MX366HCT.js → notebook-edit-V7RNXKVL.js} +43 -42
- package/chunks/{openaiContentGenerator-KRPNNJGZ.js → openaiContentGenerator-IBVUUZDH.js} +19 -18
- package/chunks/{pidfile-K7T2JLUJ.js → pidfile-AMTGL2H2.js} +35 -32
- package/chunks/{processUtils-YXL3VIBR.js → processUtils-3ZT2JF6D.js} +2 -2
- package/chunks/{pt-JJ4XPIBP.js → pt-OK455PLH.js} +5 -1
- package/chunks/{qwenContentGenerator-GJVXFZ3U.js → qwenContentGenerator-E72VVWS3.js} +41 -38
- package/chunks/{qwenOAuth2-UZTIBQLY.js → qwenOAuth2-YCC3HP24.js} +17 -16
- package/chunks/{read-file-S5XQSYOW.js → read-file-5EWNGUXN.js} +13 -11
- package/chunks/{read-mcp-resource-OIBCNIX7.js → read-mcp-resource-F6HYMDUY.js} +3 -3
- package/chunks/{record-artifact-HDMK4LHG.js → record-artifact-7GCFLDD7.js} +3 -3
- package/chunks/{resumeHistoryUtils-IKR6XD2S.js → resumeHistoryUtils-IH4RNB76.js} +41 -38
- package/chunks/{ripGrep-H65GRSQX.js → ripGrep-B6A6N7GI.js} +34 -31
- package/chunks/{ru-STR4KTW7.js → ru-7SPDGMGD.js} +5 -1
- package/chunks/{run-qwen-serve-7SKAQOAA.js → run-qwen-serve-6PKSMF6Z.js} +115 -74
- package/chunks/{runtime-I2STBGPR.js → runtime-ASRANXO6.js} +45 -40
- package/chunks/{scheduler-6F7HETNO.js → scheduler-IABM76UZ.js} +34 -31
- package/chunks/sdk-exporters-grpc-ETLH47EP.js +23214 -0
- package/chunks/sdk-exporters-http-6MCQH335.js +563 -0
- package/chunks/sdk-impl-HOLWAXC6.js +9193 -0
- package/chunks/{send-message-WXVVK4DB.js → send-message-KBO6X4ZS.js} +7 -5
- package/chunks/{serve-4ATEWSEA.js → serve-A4DT5D32.js} +39 -36
- package/chunks/{server-YPUPFV2O.js → server-DZ5ZSVRE.js} +2317 -472
- package/chunks/{session-AZFIERIY.js → session-G2R3CYU6.js} +87 -172
- package/chunks/{settings-EFQHLTM3.js → settings-7TNSXUTO.js} +43 -40
- package/chunks/{shell-FWXWBJ4Q.js → shell-5BRFGEMK.js} +34 -31
- package/chunks/{skill-A634MNCD.js → skill-3SWYEK7M.js} +24 -20
- package/chunks/{spawnChannel-KKBGGR47.js → spawnChannel-GGN2WVWW.js} +36 -33
- package/chunks/{src-BVROLD6N.js → src-5BPBNQ5S.js} +314 -236
- package/chunks/{standalone-update-ERLA3BDC.js → standalone-update-AHOZ56LS.js} +37 -34
- package/chunks/{startInteractiveUI-3VZ23WAY.js → startInteractiveUI-TLGOQVV7.js} +1105 -906
- package/chunks/{syntheticOutput-HCUFXSIA.js → syntheticOutput-H7RTI5KL.js} +4 -4
- package/chunks/{task-create-RIY5JTFC.js → task-create-7474AJJD.js} +10 -8
- package/chunks/{task-list-XBUCV3CO.js → task-list-633HGOIB.js} +6 -6
- package/chunks/{task-stop-QDFCCYR5.js → task-stop-MNUGHPIA.js} +3 -3
- package/chunks/{task-update-7PXKJQOI.js → task-update-66GQB5LI.js} +10 -8
- package/chunks/{team-create-ZZO7QFQ7.js → team-create-XHDF7UKM.js} +42 -39
- package/chunks/{team-delete-TNSSE2S5.js → team-delete-BB3CG3QF.js} +6 -6
- package/chunks/{team-plan-approval-3BZBJ46K.js → team-plan-approval-XKSBXWMH.js} +39 -36
- package/chunks/{theme-manager-FSFWNXFJ.js → theme-manager-6ZKLBFAN.js} +35 -32
- package/chunks/{todoWrite-OMAIGB6V.js → todoWrite-KRAUN54W.js} +5 -5
- package/chunks/{tool-search-VYXAAIDW.js → tool-search-UDNJCXYS.js} +21 -17
- package/chunks/{total-session-admission-PSMLQICS.js → total-session-admission-VWRCCDYM.js} +40 -37
- package/chunks/{tree-sitter-4D7QS7F6.js → tree-sitter-L5BFT64K.js} +1 -1
- package/chunks/{tree-sitter-bash-VEJGF5XF.js → tree-sitter-bash-ZKDNQGID.js} +1 -1
- package/chunks/{trustedFolders-QA3RK2NV.js → trustedFolders-TJI6OLAN.js} +35 -32
- package/chunks/{chunk-6EFTQYW7.js → undici-3FJYTMOF.js} +24 -399
- package/chunks/{chunk-L573Z2QZ.js → undici-PYHBDDPN.js} +1 -5
- package/chunks/{update-relaunch-LNLZFX3J.js → update-relaunch-RS5GB74A.js} +17 -17
- package/chunks/updateCheck-T4EEA5YR.js +88 -0
- package/chunks/{useAutoAcceptIndicator-DIWN27LT.js → useAutoAcceptIndicator-LLWMXC7F.js} +44 -41
- package/chunks/{validateNonInterActiveAuth-LOEOFCAF.js → validateNonInterActiveAuth-OJ3KYXAR.js} +74 -71
- package/chunks/{version-HBF2VBLE.js → version-ZCEUV5DO.js} +1 -1
- package/chunks/{web-fetch-BWGSD2BD.js → web-fetch-KQF4YFCI.js} +99 -42
- package/chunks/{web-search-OOHTCVR3.js → web-search-QDDGFGKI.js} +113 -61
- package/chunks/{workflow-LJAJBOR4.js → workflow-GIRKCX4P.js} +47 -43
- package/chunks/{workspace-providers-status-FYV7TTHA.js → workspace-providers-status-UTMAVTNE.js} +42 -39
- package/chunks/{workspace-registration-store-4EHGQW4Y.js → workspace-registration-store-EYJMJFZU.js} +8 -2
- package/chunks/{workspace-registry-BKD7VC4Y.js → workspace-registry-4W4UW6MY.js} +40 -37
- package/chunks/{workspace-service-75RHX6KR.js → workspace-service-DJCPY6ZN.js} +46 -43
- package/chunks/{workspace-skills-status-WBZBZI6A.js → workspace-skills-status-VQ2LKXXX.js} +40 -37
- package/chunks/write-file-PLK6RQ7M.js +65 -0
- package/chunks/{zh-TW-4RR3YHNN.js → zh-TW-BM47YBFH.js} +5 -1
- package/chunks/{zh-6ANG2HTL.js → zh-WY5DWYZD.js} +5 -1
- package/cli-entry.js +164 -12
- package/cli.js +18 -11
- package/locales/ca.js +772 -203
- package/locales/de.js +8 -2
- package/locales/en.js +8 -2
- package/locales/fr.js +8 -2
- package/locales/ja.js +8 -2
- package/locales/pt.js +8 -2
- package/locales/ru.js +8 -2
- package/locales/zh-TW.js +8 -2
- package/locales/zh.js +8 -2
- package/package.json +3 -3
- package/web-shell/assets/{arc-Buk1besA.js → arc-DIQrcXXh.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-B1aUKYDC.js → architectureDiagram-3BPJPVTR-CbPd-DSw.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CRTdg3Zx.js → blockDiagram-GPEHLZMM-yzBIVhMX.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-DFdRMp5g.js → c4Diagram-AAUBKEIU-B88Swcsu.js} +1 -1
- package/web-shell/assets/channel-BaTMUesZ.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-4rYQdkEI.js → chunk-2J33WTMH-BbOLo6NX.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-Coi-pQJy.js → chunk-4BX2VUAB-Bg6in0r0.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-BtBjz02t.js → chunk-55IACEB6-Bv9QRyLI.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-CGYOWorl.js → chunk-727SXJPM-CFokiv61.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-CH5AKhqx.js → chunk-AQP2D5EJ-DS2Oxf6L.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-Cd50-w85.js → chunk-FMBD7UC4-D2NkHD3B.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-C2wF3KCK.js → chunk-ND2GUHAM-BsT_UC5B.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-pCeRTaWi.js → chunk-QZHKN3VN-tnJo3zln.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CyBPzWud.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CyBPzWud.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-B-_fAB6D.js → cose-bilkent-S5V4N54A-BTMa6DAZ.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-ChSPNHpL.js → dagre-BM42HDAG-ujGX7Owg.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-BX7cFOF3.js → diagram-2AECGRRQ-fU4-dbPa.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BQUTW92n.js → diagram-5GNKFQAL-Bdm-TYSA.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-BkYPh3e4.js → diagram-KO2AKTUF-Bkhz85Z9.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-Cl6jsNyx.js → diagram-LMA3HP47-Bzu3q26p.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-DRWoHz8n.js → diagram-OG6HWLK6-CZrXbG5Q.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-CGvFcZco.js → erDiagram-TEJ5UH35-BjozEAYu.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-vms6oVdv.js → flowDiagram-I6XJVG4X-B3a2I8c-.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-ukT_sfmi.js → ganttDiagram-6RSMTGT7-CIMn9fNm.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Bn2ZE2Ut.js → gitGraphDiagram-PVQCEYII-DlFy9KRx.js} +1 -1
- package/web-shell/assets/{index-wFXp7W68.js → index-BODUAzQA.js} +1 -1
- package/web-shell/assets/index-C54DNMF7.js +1209 -0
- package/web-shell/assets/index-lWqBfc78.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DHJdSi7x.js → infoDiagram-5YYISTIA-BmKjQgCy.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DOvd2Wph.js → ishikawaDiagram-YF4QCWOH-BrQEMZz2.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-CH_urMCT.js → journeyDiagram-JHISSGLW-D-2r7Xrt.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-FKiBdgbH.js → kanban-definition-UN3LZRKU-CndsFHCX.js} +1 -1
- package/web-shell/assets/{linear-0ZVQFVKf.js → linear-D-IwNnKx.js} +1 -1
- package/web-shell/assets/{mermaid.core-DJ05ZZIK.js → mermaid.core-4ll09sri.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BPuUhkUm.js → mindmap-definition-RKZ34NQL-maMRIxjo.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-yLFKcXyG.js → pieDiagram-4H26LBE5-aunUDhrJ.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-irWqc1pE.js → quadrantDiagram-W4KKPZXB-D3K0P1NZ.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-B_4uMoIV.js → requirementDiagram-4Y6WPE33-CX2X9HRc.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-ciA4GPwk.js → sankeyDiagram-5OEKKPKP-CDroWk7l.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CRdZvy0U.js → sequenceDiagram-3UESZ5HK-DTk-2b16.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-DaYIkCCn.js → stateDiagram-AJRCARHV-Cud64hQr.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-g-uUpecT.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-oBUKv6iH.js → timeline-definition-PNZ67QCA-DfD5okf_.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-CGW9Sdmb.js → vennDiagram-CIIHVFJN-BYl8ay25.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-CvwKJOCm.js → wardley-L42UT6IY-BZFAt10J.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Ipc260sN.js → wardleyDiagram-YWT4CUSO-BIWn0GA7.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-D6-CM7pK.js → xychartDiagram-2RQKCTM6-1_H4xblT.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-ETD6K42I.js +0 -358
- package/chunks/chunk-I5NLVPZJ.js +0 -45
- package/chunks/chunk-ONWW74X6.js +0 -74639
- package/chunks/chunk-W7FJ3N32.js +0 -49
- package/chunks/daemon-status-provider-LVTVJGAD.js +0 -77
- package/chunks/handleAutoUpdate-AAQ6PL3E.js +0 -70
- package/chunks/nonInteractiveCli-QTEHDDFH.js +0 -129
- package/chunks/updateCheck-JJEUQ54U.js +0 -73
- package/chunks/write-file-M2DTFILF.js +0 -599
- package/web-shell/assets/channel-04R0vLbG.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Bw9SOwAV.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Bw9SOwAV.js +0 -1
- package/web-shell/assets/index-DgkKrjw3.js +0 -1187
- package/web-shell/assets/index-Rv6mOAN9.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DWBoO4UY.js +0 -1
|
@@ -339,6 +339,7 @@ var RestSseTransport = class {
|
|
|
339
339
|
baseUrl;
|
|
340
340
|
token;
|
|
341
341
|
_fetch;
|
|
342
|
+
activeSseRequests = /* @__PURE__ */ new Set();
|
|
342
343
|
_disposed = false;
|
|
343
344
|
type = "rest";
|
|
344
345
|
supportsReplay = true;
|
|
@@ -371,75 +372,86 @@ var RestSseTransport = class {
|
|
|
371
372
|
if (this._disposed) {
|
|
372
373
|
throw new DaemonTransportClosedError();
|
|
373
374
|
}
|
|
374
|
-
const
|
|
375
|
-
|
|
376
|
-
headers["Authorization"] = `Bearer ${this.token}`;
|
|
377
|
-
}
|
|
378
|
-
if (opts.lastEventId !== void 0) {
|
|
379
|
-
headers["Last-Event-ID"] = String(opts.lastEventId);
|
|
380
|
-
}
|
|
381
|
-
const connectCtrl = new AbortController();
|
|
382
|
-
let connectTimer;
|
|
383
|
-
const connectTimeoutMs = opts.connectTimeoutMs;
|
|
384
|
-
if (connectTimeoutMs && Number.isFinite(connectTimeoutMs)) {
|
|
385
|
-
connectTimer = setTimeout(
|
|
386
|
-
() => connectCtrl.abort(
|
|
387
|
-
new DOMException("Initial connect timed out", "TimeoutError")
|
|
388
|
-
),
|
|
389
|
-
connectTimeoutMs
|
|
390
|
-
);
|
|
391
|
-
if (typeof connectTimer === "object" && connectTimer && "unref" in connectTimer) {
|
|
392
|
-
connectTimer.unref();
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
const fetchSignal = opts.signal ? composeAbortSignals([opts.signal, connectCtrl.signal]) : connectCtrl.signal;
|
|
396
|
-
let url = `${this.baseUrl}/session/${encodeURIComponent(sessionId)}/events`;
|
|
397
|
-
if (opts.maxQueued !== void 0) {
|
|
398
|
-
url += `?maxQueued=${encodeURIComponent(String(opts.maxQueued))}`;
|
|
399
|
-
}
|
|
400
|
-
let res;
|
|
375
|
+
const requestCtrl = new AbortController();
|
|
376
|
+
this.activeSseRequests.add(requestCtrl);
|
|
401
377
|
try {
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
378
|
+
const headers = { Accept: "text/event-stream" };
|
|
379
|
+
if (this.token) {
|
|
380
|
+
headers["Authorization"] = `Bearer ${this.token}`;
|
|
381
|
+
}
|
|
382
|
+
if (opts.lastEventId !== void 0) {
|
|
383
|
+
headers["Last-Event-ID"] = String(opts.lastEventId);
|
|
384
|
+
}
|
|
385
|
+
const fetchSignal = opts.signal ? composeAbortSignals([opts.signal, requestCtrl.signal]) : requestCtrl.signal;
|
|
386
|
+
let url = `${this.baseUrl}/session/${encodeURIComponent(sessionId)}/events`;
|
|
387
|
+
if (opts.maxQueued !== void 0) {
|
|
388
|
+
url += `?maxQueued=${encodeURIComponent(String(opts.maxQueued))}`;
|
|
389
|
+
}
|
|
390
|
+
let connectTimer;
|
|
391
|
+
const connectTimeoutMs = opts.connectTimeoutMs;
|
|
392
|
+
if (connectTimeoutMs && Number.isFinite(connectTimeoutMs)) {
|
|
393
|
+
connectTimer = setTimeout(
|
|
394
|
+
() => requestCtrl.abort(
|
|
395
|
+
new DOMException("Initial connect timed out", "TimeoutError")
|
|
396
|
+
),
|
|
397
|
+
connectTimeoutMs
|
|
398
|
+
);
|
|
399
|
+
if (typeof connectTimer === "object" && connectTimer && "unref" in connectTimer) {
|
|
400
|
+
connectTimer.unref();
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
let res;
|
|
408
404
|
try {
|
|
409
|
-
|
|
405
|
+
res = await this._fetch(url, { headers, signal: fetchSignal });
|
|
406
|
+
} finally {
|
|
407
|
+
if (connectTimer !== void 0) clearTimeout(connectTimer);
|
|
408
|
+
}
|
|
409
|
+
if (!res.ok) {
|
|
410
|
+
let body;
|
|
410
411
|
try {
|
|
411
|
-
|
|
412
|
+
const text = await res.text();
|
|
413
|
+
try {
|
|
414
|
+
body = JSON.parse(text);
|
|
415
|
+
} catch {
|
|
416
|
+
body = text;
|
|
417
|
+
}
|
|
412
418
|
} catch {
|
|
413
|
-
body = text;
|
|
414
419
|
}
|
|
415
|
-
|
|
420
|
+
const detail = body && typeof body === "object" && "error" in body ? String(body.error) : `HTTP ${res.status}`;
|
|
421
|
+
throw new DaemonHttpError(
|
|
422
|
+
res.status,
|
|
423
|
+
body,
|
|
424
|
+
`GET /session/:id/events: ${detail}`
|
|
425
|
+
);
|
|
416
426
|
}
|
|
417
|
-
const
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
} catch {
|
|
427
|
+
const ct = res.headers.get("content-type") ?? "";
|
|
428
|
+
if (!ct.toLowerCase().includes("text/event-stream")) {
|
|
429
|
+
try {
|
|
430
|
+
await res.body?.cancel();
|
|
431
|
+
} catch {
|
|
432
|
+
}
|
|
433
|
+
throw new DaemonHttpError(
|
|
434
|
+
res.status,
|
|
435
|
+
ct,
|
|
436
|
+
`GET /session/:id/events: expected content-type text/event-stream, got "${ct}"`
|
|
437
|
+
);
|
|
429
438
|
}
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
throw new Error("No SSE body");
|
|
439
|
+
if (!res.body) {
|
|
440
|
+
throw new Error("No SSE body");
|
|
441
|
+
}
|
|
442
|
+
yield* parseSseStream(res.body, fetchSignal);
|
|
443
|
+
} finally {
|
|
444
|
+
requestCtrl.abort();
|
|
445
|
+
this.activeSseRequests.delete(requestCtrl);
|
|
438
446
|
}
|
|
439
|
-
yield* parseSseStream(res.body, opts.signal);
|
|
440
447
|
}
|
|
441
448
|
dispose() {
|
|
449
|
+
if (this._disposed) return;
|
|
442
450
|
this._disposed = true;
|
|
451
|
+
for (const requestCtrl of this.activeSseRequests) {
|
|
452
|
+
requestCtrl.abort();
|
|
453
|
+
}
|
|
454
|
+
this.activeSseRequests.clear();
|
|
443
455
|
}
|
|
444
456
|
};
|
|
445
457
|
function composeAbortSignals(signals) {
|
|
@@ -994,6 +1006,24 @@ var DaemonClient = class {
|
|
|
994
1006
|
{ mode: "rest" }
|
|
995
1007
|
);
|
|
996
1008
|
}
|
|
1009
|
+
async workspaceGitLog(limit, skip) {
|
|
1010
|
+
const params = new URLSearchParams();
|
|
1011
|
+
if (limit != null) params.set("limit", String(limit));
|
|
1012
|
+
if (skip != null) params.set("skip", String(skip));
|
|
1013
|
+
const qs = params.toString();
|
|
1014
|
+
return await this.jsonRequest(
|
|
1015
|
+
`/workspace/git/log${qs ? `?${qs}` : ""}`,
|
|
1016
|
+
"GET /workspace/git/log",
|
|
1017
|
+
{ mode: "rest" }
|
|
1018
|
+
);
|
|
1019
|
+
}
|
|
1020
|
+
async workspaceGitCommitDetail(sha) {
|
|
1021
|
+
return await this.jsonRequest(
|
|
1022
|
+
`/workspace/git/log/commit?sha=${urlEncode(sha)}`,
|
|
1023
|
+
"GET /workspace/git/log/commit",
|
|
1024
|
+
{ mode: "rest" }
|
|
1025
|
+
);
|
|
1026
|
+
}
|
|
997
1027
|
async workspaceMcpTools(serverName) {
|
|
998
1028
|
return await this.fetchWithTimeout(
|
|
999
1029
|
`${this.baseUrl}/workspace/mcp/${urlEncode(serverName)}/tools`,
|
|
@@ -1036,28 +1066,21 @@ var DaemonClient = class {
|
|
|
1036
1066
|
async workspaceAcpPreheat(timeoutMs) {
|
|
1037
1067
|
const serverBudgetMs = timeoutMs ?? 5e3;
|
|
1038
1068
|
const suffix = timeoutMs !== void 0 ? `?timeoutMs=${encodeURIComponent(timeoutMs)}` : "";
|
|
1039
|
-
return await this.
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
},
|
|
1048
|
-
serverBudgetMs + 2e3
|
|
1069
|
+
return await this.jsonRequest(
|
|
1070
|
+
`/workspace/acp/preheat${suffix}`,
|
|
1071
|
+
"POST /workspace/acp/preheat",
|
|
1072
|
+
{
|
|
1073
|
+
method: "POST",
|
|
1074
|
+
timeoutMs: serverBudgetMs + 2e3,
|
|
1075
|
+
mode: "rest"
|
|
1076
|
+
}
|
|
1049
1077
|
);
|
|
1050
1078
|
}
|
|
1051
1079
|
async workspaceAcpStatus() {
|
|
1052
|
-
return await this.
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
if (!res.ok) {
|
|
1057
|
-
throw await this.failOnError(res, "GET /workspace/acp/status");
|
|
1058
|
-
}
|
|
1059
|
-
return await res.json();
|
|
1060
|
-
}
|
|
1080
|
+
return await this.jsonRequest(
|
|
1081
|
+
"/workspace/acp/status",
|
|
1082
|
+
"GET /workspace/acp/status",
|
|
1083
|
+
{ mode: "rest" }
|
|
1061
1084
|
);
|
|
1062
1085
|
}
|
|
1063
1086
|
async workspaceProviders() {
|
|
@@ -1742,7 +1765,8 @@ var DaemonClient = class {
|
|
|
1742
1765
|
...req.sessionScope !== void 0 ? { sessionScope: req.sessionScope } : {},
|
|
1743
1766
|
...req.approvalMode !== void 0 ? { approvalMode: req.approvalMode } : {},
|
|
1744
1767
|
...req.sourceType !== void 0 ? { sourceType: req.sourceType } : {},
|
|
1745
|
-
...req.sourceId !== void 0 ? { sourceId: req.sourceId } : {}
|
|
1768
|
+
...req.sourceId !== void 0 ? { sourceId: req.sourceId } : {},
|
|
1769
|
+
...req.worktree !== void 0 ? { worktree: req.worktree } : {}
|
|
1746
1770
|
})
|
|
1747
1771
|
},
|
|
1748
1772
|
async (res) => {
|
|
@@ -1856,6 +1880,20 @@ var DaemonClient = class {
|
|
|
1856
1880
|
}
|
|
1857
1881
|
);
|
|
1858
1882
|
}
|
|
1883
|
+
async resolveSubagentSession(sessionId, toolCallId, clientId) {
|
|
1884
|
+
return await this.jsonRequest(
|
|
1885
|
+
`/session/${urlEncode(sessionId)}/subagents/${urlEncode(toolCallId)}`,
|
|
1886
|
+
"GET /session/:id/subagents/:toolCallId",
|
|
1887
|
+
{ clientId, mode: "rest" }
|
|
1888
|
+
);
|
|
1889
|
+
}
|
|
1890
|
+
async cancelSubagentSession(sessionId, toolCallId, clientId) {
|
|
1891
|
+
return await this.jsonRequest(
|
|
1892
|
+
`/session/${urlEncode(sessionId)}/subagents/${urlEncode(toolCallId)}/cancel`,
|
|
1893
|
+
"POST /session/:id/subagents/:toolCallId/cancel",
|
|
1894
|
+
{ clientId, mode: "rest", method: "POST" }
|
|
1895
|
+
);
|
|
1896
|
+
}
|
|
1859
1897
|
async resumeSession(sessionId, req = {}, clientId) {
|
|
1860
1898
|
return this.restoreSession("resume", sessionId, req, clientId);
|
|
1861
1899
|
}
|
|
@@ -3336,7 +3374,8 @@ var DaemonClient = class {
|
|
|
3336
3374
|
headers: this.headers({ "Content-Type": "application/json" }),
|
|
3337
3375
|
body: JSON.stringify({
|
|
3338
3376
|
cwd,
|
|
3339
|
-
...options.persist ? { persist: true } : {}
|
|
3377
|
+
...options.persist ? { persist: true } : {},
|
|
3378
|
+
...options.displayName !== void 0 ? { displayName: options.displayName } : {}
|
|
3340
3379
|
})
|
|
3341
3380
|
},
|
|
3342
3381
|
async (res) => {
|
|
@@ -3347,6 +3386,31 @@ var DaemonClient = class {
|
|
|
3347
3386
|
}
|
|
3348
3387
|
);
|
|
3349
3388
|
}
|
|
3389
|
+
async updateWorkspace(workspaceSelector, update) {
|
|
3390
|
+
return await this.workspaceJsonRequest(
|
|
3391
|
+
urlEncode(workspaceSelector),
|
|
3392
|
+
"",
|
|
3393
|
+
"PATCH /workspaces/:workspace",
|
|
3394
|
+
{ method: "PATCH", body: update, mode: "rest" }
|
|
3395
|
+
);
|
|
3396
|
+
}
|
|
3397
|
+
/** Requests a process-local workspace in a daemon-managed empty directory. */
|
|
3398
|
+
async addScratchWorkspace() {
|
|
3399
|
+
return await this.fetchWithTimeout(
|
|
3400
|
+
`${this.baseUrl}/workspaces`,
|
|
3401
|
+
{
|
|
3402
|
+
method: "POST",
|
|
3403
|
+
headers: this.headers({ "Content-Type": "application/json" }),
|
|
3404
|
+
body: JSON.stringify({ kind: "scratch" })
|
|
3405
|
+
},
|
|
3406
|
+
async (res) => {
|
|
3407
|
+
if (!res.ok) {
|
|
3408
|
+
throw await this.failOnError(res, "POST /workspaces");
|
|
3409
|
+
}
|
|
3410
|
+
return await res.json();
|
|
3411
|
+
}
|
|
3412
|
+
);
|
|
3413
|
+
}
|
|
3350
3414
|
// -- Lifecycle / disposal ------------------------------------------------
|
|
3351
3415
|
/**
|
|
3352
3416
|
* Release transport resources (WS close, etc.). Idempotent.
|
|
@@ -3456,10 +3520,11 @@ var WorkspaceDaemonClient = class {
|
|
|
3456
3520
|
opts
|
|
3457
3521
|
);
|
|
3458
3522
|
}
|
|
3459
|
-
workspaceGit() {
|
|
3523
|
+
workspaceGit(cwd) {
|
|
3524
|
+
const suffix = cwd ? `/git?cwd=${encodeURIComponent(cwd)}` : "/git";
|
|
3460
3525
|
return this.client.workspaceJsonRequest(
|
|
3461
3526
|
this.workspaceSelector,
|
|
3462
|
-
|
|
3527
|
+
suffix,
|
|
3463
3528
|
"GET /workspaces/:workspace/git",
|
|
3464
3529
|
{ mode: "rest" }
|
|
3465
3530
|
);
|
|
@@ -3481,6 +3546,26 @@ var WorkspaceDaemonClient = class {
|
|
|
3481
3546
|
{ mode: "rest" }
|
|
3482
3547
|
);
|
|
3483
3548
|
}
|
|
3549
|
+
workspaceGitLog(limit, skip) {
|
|
3550
|
+
const params = new URLSearchParams();
|
|
3551
|
+
if (limit != null) params.set("limit", String(limit));
|
|
3552
|
+
if (skip != null) params.set("skip", String(skip));
|
|
3553
|
+
const qs = params.toString();
|
|
3554
|
+
return this.client.workspaceJsonRequest(
|
|
3555
|
+
this.workspaceSelector,
|
|
3556
|
+
`/git/log${qs ? `?${qs}` : ""}`,
|
|
3557
|
+
"GET /workspaces/:workspace/git/log",
|
|
3558
|
+
{ mode: "rest" }
|
|
3559
|
+
);
|
|
3560
|
+
}
|
|
3561
|
+
workspaceGitCommitDetail(sha) {
|
|
3562
|
+
return this.client.workspaceJsonRequest(
|
|
3563
|
+
this.workspaceSelector,
|
|
3564
|
+
`/git/log/commit?sha=${urlEncode(sha)}`,
|
|
3565
|
+
"GET /workspaces/:workspace/git/log/commit",
|
|
3566
|
+
{ mode: "rest" }
|
|
3567
|
+
);
|
|
3568
|
+
}
|
|
3484
3569
|
workspaceSkills() {
|
|
3485
3570
|
return this.get("/skills", "GET /workspaces/:workspace/skills");
|
|
3486
3571
|
}
|
|
@@ -4071,6 +4156,9 @@ var DaemonSessionClient = class _DaemonSessionClient {
|
|
|
4071
4156
|
get clientId() {
|
|
4072
4157
|
return this.session.clientId;
|
|
4073
4158
|
}
|
|
4159
|
+
get worktree() {
|
|
4160
|
+
return this.session.worktree;
|
|
4161
|
+
}
|
|
4074
4162
|
get lastEventId() {
|
|
4075
4163
|
return this.lastSeenEventId;
|
|
4076
4164
|
}
|
|
@@ -6277,26 +6365,43 @@ function extractServerTimestamp(event) {
|
|
|
6277
6365
|
}
|
|
6278
6366
|
if (isRecord2(event.data)) {
|
|
6279
6367
|
const dataMeta = event.data["_meta"];
|
|
6368
|
+
const update = event.data["update"];
|
|
6369
|
+
const updateMeta = isRecord2(update) ? update["_meta"] : void 0;
|
|
6280
6370
|
if (isRecord2(dataMeta)) {
|
|
6281
6371
|
const ts = dataMeta["serverTimestamp"];
|
|
6282
6372
|
if (typeof ts === "number" && Number.isFinite(ts)) return ts;
|
|
6283
6373
|
}
|
|
6284
|
-
|
|
6285
|
-
|
|
6286
|
-
|
|
6287
|
-
|
|
6288
|
-
const serverTs = updateMeta["serverTimestamp"];
|
|
6289
|
-
if (typeof serverTs === "number" && Number.isFinite(serverTs)) {
|
|
6290
|
-
return serverTs;
|
|
6291
|
-
}
|
|
6292
|
-
const ts = updateMeta["timestamp"];
|
|
6293
|
-
if (typeof ts === "number" && Number.isFinite(ts)) return ts;
|
|
6374
|
+
if (isRecord2(updateMeta)) {
|
|
6375
|
+
const serverTs = updateMeta["serverTimestamp"];
|
|
6376
|
+
if (typeof serverTs === "number" && Number.isFinite(serverTs)) {
|
|
6377
|
+
return serverTs;
|
|
6294
6378
|
}
|
|
6295
6379
|
}
|
|
6380
|
+
const timestampCandidates = [
|
|
6381
|
+
isRecord2(updateMeta) ? updateMeta["timestamp"] : void 0,
|
|
6382
|
+
isRecord2(update) ? update["timestamp"] : void 0,
|
|
6383
|
+
isRecord2(dataMeta) ? dataMeta["timestamp"] : void 0,
|
|
6384
|
+
event.data["timestamp"]
|
|
6385
|
+
];
|
|
6386
|
+
for (const candidate of timestampCandidates) {
|
|
6387
|
+
const timestamp = parseTimestamp(candidate);
|
|
6388
|
+
if (timestamp !== void 0) return timestamp;
|
|
6389
|
+
}
|
|
6296
6390
|
}
|
|
6297
6391
|
return void 0;
|
|
6298
6392
|
}
|
|
6299
6393
|
__name(extractServerTimestamp, "extractServerTimestamp");
|
|
6394
|
+
function parseTimestamp(value) {
|
|
6395
|
+
if (typeof value === "number" && Number.isFinite(value)) return value;
|
|
6396
|
+
if (typeof value !== "string") return void 0;
|
|
6397
|
+
if (/^\d+$/.test(value)) {
|
|
6398
|
+
const numeric = Number(value);
|
|
6399
|
+
return Number.isFinite(numeric) ? numeric : void 0;
|
|
6400
|
+
}
|
|
6401
|
+
const parsed = Date.parse(value);
|
|
6402
|
+
return Number.isFinite(parsed) ? parsed : void 0;
|
|
6403
|
+
}
|
|
6404
|
+
__name(parseTimestamp, "parseTimestamp");
|
|
6300
6405
|
function normalizeSessionUpdate(event, base, opts) {
|
|
6301
6406
|
const update = getSessionUpdatePayload(event.data);
|
|
6302
6407
|
if (!update) {
|
|
@@ -6489,7 +6594,8 @@ function normalizeToolUpdate(update, base) {
|
|
|
6489
6594
|
const metadata = isRecord2(update["_meta"]) ? update["_meta"] : void 0;
|
|
6490
6595
|
const toolName = getString2(update, "toolName") ?? getString2(update, "name") ?? (metadata ? getString2(metadata, "toolName") : void 0) ?? (metadata ? getString2(metadata, "name") : void 0);
|
|
6491
6596
|
const toolKind = getString2(update, "kind");
|
|
6492
|
-
const
|
|
6597
|
+
const explicitTitle = getString2(update, "title");
|
|
6598
|
+
const title = explicitTitle ?? (getString2(update, "sessionUpdate") === "tool_call" ? toolName ?? toolKind : void 0);
|
|
6493
6599
|
const rawInputSource = update["rawInput"] ?? update["input"] ?? update["args"];
|
|
6494
6600
|
const rawOutputSource = update["rawOutput"] ?? update["output"] ?? update["result"];
|
|
6495
6601
|
const rawInput = rawInputSource !== void 0 ? redactSensitiveFields(rawInputSource) : void 0;
|
|
@@ -7618,7 +7724,8 @@ function createDaemonTranscriptState(opts = {}) {
|
|
|
7618
7724
|
resyncRequiredCount: 0,
|
|
7619
7725
|
nextOrdinal: 1,
|
|
7620
7726
|
now: opts.now ?? Date.now(),
|
|
7621
|
-
maxBlocks: opts.maxBlocks ?? DEFAULT_MAX_BLOCKS
|
|
7727
|
+
maxBlocks: opts.maxBlocks ?? DEFAULT_MAX_BLOCKS,
|
|
7728
|
+
retainSubagentBlocks: opts.retainSubagentBlocks ?? true
|
|
7622
7729
|
};
|
|
7623
7730
|
if (opts.onTruncation) truncationCallbacks.set(state, opts.onTruncation);
|
|
7624
7731
|
return state;
|
|
@@ -7737,6 +7844,7 @@ function applyDaemonTranscriptEvent(next, event) {
|
|
|
7737
7844
|
break;
|
|
7738
7845
|
}
|
|
7739
7846
|
case "assistant.text.delta":
|
|
7847
|
+
if (event.parentToolCallId && !next.retainSubagentBlocks) break;
|
|
7740
7848
|
appendTextDelta(
|
|
7741
7849
|
next,
|
|
7742
7850
|
"assistant",
|
|
@@ -7752,9 +7860,14 @@ function applyDaemonTranscriptEvent(next, event) {
|
|
|
7752
7860
|
}
|
|
7753
7861
|
break;
|
|
7754
7862
|
case "assistant.usage":
|
|
7755
|
-
|
|
7863
|
+
if (event.parentToolCallId && !next.retainSubagentBlocks) {
|
|
7864
|
+
applySubagentUsageToParentTool(next, event);
|
|
7865
|
+
} else {
|
|
7866
|
+
applyAssistantUsage(next, event);
|
|
7867
|
+
}
|
|
7756
7868
|
break;
|
|
7757
7869
|
case "thought.text.delta":
|
|
7870
|
+
if (event.parentToolCallId && !next.retainSubagentBlocks) break;
|
|
7758
7871
|
appendTextDelta(
|
|
7759
7872
|
next,
|
|
7760
7873
|
"thought",
|
|
@@ -7764,6 +7877,10 @@ function applyDaemonTranscriptEvent(next, event) {
|
|
|
7764
7877
|
);
|
|
7765
7878
|
break;
|
|
7766
7879
|
case "tool.update":
|
|
7880
|
+
if (event.parentToolCallId && !next.retainSubagentBlocks) {
|
|
7881
|
+
discardToolBlock(next, event.toolCallId);
|
|
7882
|
+
break;
|
|
7883
|
+
}
|
|
7767
7884
|
upsertToolBlock(next, event);
|
|
7768
7885
|
break;
|
|
7769
7886
|
case "shell.output":
|
|
@@ -7919,6 +8036,35 @@ function applyAssistantUsage(state, event) {
|
|
|
7919
8036
|
block.updatedAt = state.now;
|
|
7920
8037
|
}
|
|
7921
8038
|
__name(applyAssistantUsage, "applyAssistantUsage");
|
|
8039
|
+
function applySubagentUsageToParentTool(state, event) {
|
|
8040
|
+
if (!event.parentToolCallId) return;
|
|
8041
|
+
const block = getWritableBlockById(
|
|
8042
|
+
state,
|
|
8043
|
+
state.toolBlockByCallId[event.parentToolCallId]
|
|
8044
|
+
);
|
|
8045
|
+
if (block?.kind !== "tool") return;
|
|
8046
|
+
const current = isRecord2(block.rawOutput) ? block.rawOutput : void 0;
|
|
8047
|
+
const currentSummary = isRecord2(current?.["executionSummary"]) ? current["executionSummary"] : void 0;
|
|
8048
|
+
const inputTokens = finiteNumber(currentSummary?.["inputTokens"]) + event.usage.inputTokens;
|
|
8049
|
+
const outputTokens = finiteNumber(currentSummary?.["outputTokens"]) + event.usage.outputTokens;
|
|
8050
|
+
const cachedTokens = finiteNumber(currentSummary?.["cachedTokens"]) + (event.usage.cachedTokens ?? 0);
|
|
8051
|
+
block.rawOutput = {
|
|
8052
|
+
...current ?? { type: "task_execution", status: "running" },
|
|
8053
|
+
executionSummary: {
|
|
8054
|
+
...currentSummary ?? {},
|
|
8055
|
+
inputTokens,
|
|
8056
|
+
outputTokens,
|
|
8057
|
+
cachedTokens,
|
|
8058
|
+
totalTokens: inputTokens + outputTokens
|
|
8059
|
+
}
|
|
8060
|
+
};
|
|
8061
|
+
block.updatedAt = state.now;
|
|
8062
|
+
}
|
|
8063
|
+
__name(applySubagentUsageToParentTool, "applySubagentUsageToParentTool");
|
|
8064
|
+
function finiteNumber(value) {
|
|
8065
|
+
return typeof value === "number" && Number.isFinite(value) ? value : 0;
|
|
8066
|
+
}
|
|
8067
|
+
__name(finiteNumber, "finiteNumber");
|
|
7922
8068
|
function clearActiveThought(state, event) {
|
|
7923
8069
|
finalizeStreamingTextBlock(state, state.activeThoughtBlockId, event);
|
|
7924
8070
|
state.activeThoughtBlockId = void 0;
|
|
@@ -8021,6 +8167,11 @@ function finishAssistant(state, event) {
|
|
|
8021
8167
|
}
|
|
8022
8168
|
__name(finishAssistant, "finishAssistant");
|
|
8023
8169
|
function upsertToolBlock(state, event) {
|
|
8170
|
+
const compactTaskOutput = !state.retainSubagentBlocks && isRecord2(event.rawOutput) && event.rawOutput["type"] === "task_execution";
|
|
8171
|
+
let rawOutput = compactTaskExecutionOutput(
|
|
8172
|
+
event.rawOutput,
|
|
8173
|
+
state.retainSubagentBlocks
|
|
8174
|
+
);
|
|
8024
8175
|
const existingId = state.toolBlockByCallId[event.toolCallId];
|
|
8025
8176
|
if (existingId === TRIMMED_TOOL_BLOCK_ID) {
|
|
8026
8177
|
if (shouldRecreateTrimmedToolBlock(event)) {
|
|
@@ -8054,10 +8205,49 @@ function upsertToolBlock(state, event) {
|
|
|
8054
8205
|
existing.updatedAt = state.now;
|
|
8055
8206
|
if (event.eventId !== void 0) existing.eventId = event.eventId;
|
|
8056
8207
|
if (event.details) existing.details = event.details;
|
|
8057
|
-
if (
|
|
8208
|
+
if (compactTaskOutput) delete existing.content;
|
|
8209
|
+
else if (event.content !== void 0) existing.content = event.content;
|
|
8058
8210
|
if (event.locations !== void 0) existing.locations = event.locations;
|
|
8059
8211
|
if (event.rawInput !== void 0) existing.rawInput = event.rawInput;
|
|
8060
|
-
if (
|
|
8212
|
+
if (rawOutput !== void 0) {
|
|
8213
|
+
if (compactTaskOutput && isRecord2(rawOutput) && isRecord2(existing.rawOutput)) {
|
|
8214
|
+
const prevSummary = isRecord2(existing.rawOutput["executionSummary"]) ? existing.rawOutput["executionSummary"] : void 0;
|
|
8215
|
+
const nextSummary = isRecord2(rawOutput["executionSummary"]) ? rawOutput["executionSummary"] : void 0;
|
|
8216
|
+
if (prevSummary && nextSummary) {
|
|
8217
|
+
const inputTokens = Math.max(
|
|
8218
|
+
finiteNumber(prevSummary["inputTokens"]),
|
|
8219
|
+
finiteNumber(nextSummary["inputTokens"])
|
|
8220
|
+
);
|
|
8221
|
+
const outputTokens = Math.max(
|
|
8222
|
+
finiteNumber(prevSummary["outputTokens"]),
|
|
8223
|
+
finiteNumber(nextSummary["outputTokens"])
|
|
8224
|
+
);
|
|
8225
|
+
rawOutput = {
|
|
8226
|
+
...rawOutput,
|
|
8227
|
+
executionSummary: {
|
|
8228
|
+
...nextSummary,
|
|
8229
|
+
inputTokens,
|
|
8230
|
+
outputTokens,
|
|
8231
|
+
cachedTokens: Math.max(
|
|
8232
|
+
finiteNumber(prevSummary["cachedTokens"]),
|
|
8233
|
+
finiteNumber(nextSummary["cachedTokens"])
|
|
8234
|
+
),
|
|
8235
|
+
totalTokens: Math.max(
|
|
8236
|
+
finiteNumber(prevSummary["totalTokens"]),
|
|
8237
|
+
finiteNumber(nextSummary["totalTokens"]),
|
|
8238
|
+
inputTokens + outputTokens
|
|
8239
|
+
)
|
|
8240
|
+
}
|
|
8241
|
+
};
|
|
8242
|
+
} else if (prevSummary) {
|
|
8243
|
+
rawOutput = {
|
|
8244
|
+
...rawOutput,
|
|
8245
|
+
executionSummary: { ...prevSummary }
|
|
8246
|
+
};
|
|
8247
|
+
}
|
|
8248
|
+
}
|
|
8249
|
+
existing.rawOutput = rawOutput;
|
|
8250
|
+
}
|
|
8061
8251
|
existing.sourceRecordIds = unionStrings(
|
|
8062
8252
|
existing.sourceRecordIds,
|
|
8063
8253
|
event.sourceRecordIds
|
|
@@ -8098,10 +8288,10 @@ function upsertToolBlock(state, event) {
|
|
|
8098
8288
|
...event.serverTimestamp !== void 0 ? { serverTimestamp: event.serverTimestamp } : {},
|
|
8099
8289
|
...event.sourceRecordIds ? { sourceRecordIds: [...event.sourceRecordIds] } : {},
|
|
8100
8290
|
...event.details ? { details: event.details } : {},
|
|
8101
|
-
|
|
8291
|
+
...!compactTaskOutput && event.content !== void 0 ? { content: event.content } : {},
|
|
8102
8292
|
...event.locations !== void 0 ? { locations: event.locations } : {},
|
|
8103
8293
|
...event.rawInput !== void 0 ? { rawInput: event.rawInput } : {},
|
|
8104
|
-
...
|
|
8294
|
+
...rawOutput !== void 0 ? { rawOutput } : {},
|
|
8105
8295
|
...event.toolName ? { toolName: event.toolName } : {},
|
|
8106
8296
|
...event.toolKind ? { toolKind: event.toolKind } : {},
|
|
8107
8297
|
...event.parentToolCallId ? { parentToolCallId: event.parentToolCallId } : {},
|
|
@@ -8122,6 +8312,38 @@ function upsertToolBlock(state, event) {
|
|
|
8122
8312
|
clearActiveText(state, event.parentToolCallId);
|
|
8123
8313
|
}
|
|
8124
8314
|
__name(upsertToolBlock, "upsertToolBlock");
|
|
8315
|
+
function discardToolBlock(state, toolCallId) {
|
|
8316
|
+
const blockId = state.toolBlockByCallId[toolCallId];
|
|
8317
|
+
if (!blockId || blockId === TRIMMED_TOOL_BLOCK_ID) return;
|
|
8318
|
+
takeBlocksOwnership(state);
|
|
8319
|
+
state.blocks = state.blocks.filter((block) => block.id !== blockId);
|
|
8320
|
+
state.blockIndexById = rebuildDaemonTranscriptBlockIndex(state.blocks);
|
|
8321
|
+
delete state.toolBlockByCallId[toolCallId];
|
|
8322
|
+
delete state.toolProgress[toolCallId];
|
|
8323
|
+
if (state.currentToolCallId === toolCallId) {
|
|
8324
|
+
state.currentToolCallId = void 0;
|
|
8325
|
+
}
|
|
8326
|
+
}
|
|
8327
|
+
__name(discardToolBlock, "discardToolBlock");
|
|
8328
|
+
function compactTaskExecutionOutput(rawOutput, retainSubagentBlocks) {
|
|
8329
|
+
if (retainSubagentBlocks || !isRecord2(rawOutput) || rawOutput["type"] !== "task_execution") {
|
|
8330
|
+
return rawOutput;
|
|
8331
|
+
}
|
|
8332
|
+
const compact = { type: "task_execution" };
|
|
8333
|
+
for (const key of [
|
|
8334
|
+
"subagentName",
|
|
8335
|
+
"subagentColor",
|
|
8336
|
+
"taskDescription",
|
|
8337
|
+
"status",
|
|
8338
|
+
"terminateReason",
|
|
8339
|
+
"tokenCount",
|
|
8340
|
+
"executionSummary"
|
|
8341
|
+
]) {
|
|
8342
|
+
if (rawOutput[key] !== void 0) compact[key] = rawOutput[key];
|
|
8343
|
+
}
|
|
8344
|
+
return compact;
|
|
8345
|
+
}
|
|
8346
|
+
__name(compactTaskExecutionOutput, "compactTaskExecutionOutput");
|
|
8125
8347
|
function updateCurrentToolPointer(state, toolCallId, status) {
|
|
8126
8348
|
if (status === void 0) return;
|
|
8127
8349
|
if (IN_FLIGHT_TOOL_STATUSES.has(status)) {
|
|
@@ -8351,6 +8573,7 @@ function cloneTranscriptState(state, opts) {
|
|
|
8351
8573
|
...state,
|
|
8352
8574
|
now: opts.now ?? Date.now(),
|
|
8353
8575
|
maxBlocks: opts.maxBlocks ?? state.maxBlocks,
|
|
8576
|
+
retainSubagentBlocks: opts.retainSubagentBlocks ?? state.retainSubagentBlocks,
|
|
8354
8577
|
// Lazy copy-on-write for
|
|
8355
8578
|
// `blocks` + `blockIndexById`. Eager `[...state.blocks]` defeated the
|
|
8356
8579
|
// `sortedBlocksCache` / `childrenIndexCache` WeakMaps — every dispatch
|
|
@@ -8820,6 +9043,7 @@ function createDaemonTranscriptStore(seed = {}) {
|
|
|
8820
9043
|
reset(nextSeed = {}) {
|
|
8821
9044
|
state = createState({
|
|
8822
9045
|
maxBlocks: nextSeed.maxBlocks ?? state.maxBlocks,
|
|
9046
|
+
retainSubagentBlocks: nextSeed.retainSubagentBlocks ?? state.retainSubagentBlocks,
|
|
8823
9047
|
...nextSeed
|
|
8824
9048
|
});
|
|
8825
9049
|
scheduleNotify();
|
|
@@ -8929,7 +9153,7 @@ function daemonUiEventToTerminalText(event) {
|
|
|
8929
9153
|
case "tool.update":
|
|
8930
9154
|
return terminalLine(
|
|
8931
9155
|
`tool ${event.status}`,
|
|
8932
|
-
`${event.title}${event.details ? ` ${event.details}` : ""}`,
|
|
9156
|
+
`${event.title ?? event.toolName ?? event.toolKind ?? "Tool"}${event.details ? ` ${event.details}` : ""}`,
|
|
8933
9157
|
"38;5;75"
|
|
8934
9158
|
);
|
|
8935
9159
|
case "shell.output":
|