@qwen-code/qwen-code 0.19.7 → 0.19.8-nightly.20260711.0ef3a76bd
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/SKILL.md +1 -0
- package/bundled/qc-helper/docs/configuration/auth.md +40 -55
- package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
- package/bundled/qc-helper/docs/configuration/settings.md +60 -51
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -2
- package/bundled/qc-helper/docs/features/channels/overview.md +86 -12
- package/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
- package/bundled/qc-helper/docs/features/channels/wecom.md +6 -0
- package/bundled/qc-helper/docs/features/code-review.md +29 -5
- package/bundled/qc-helper/docs/features/commands.md +39 -38
- package/bundled/qc-helper/docs/features/computer-use.md +77 -0
- package/bundled/qc-helper/docs/features/hooks.md +36 -34
- package/bundled/qc-helper/docs/features/memory.md +1 -1
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
- package/bundled/qc-helper/docs/integration-vscode.md +2 -2
- package/bundled/qc-helper/docs/qwen-serve.md +40 -16
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
- package/bundled/review/DESIGN.md +93 -22
- package/bundled/review/SKILL.md +300 -87
- package/chunks/MaxSizedBox-4CX4IQWE.js +70 -0
- package/chunks/{StandaloneSessionPicker-APISIRJZ.js → StandaloneSessionPicker-TYUSSNJ6.js} +79 -77
- package/chunks/{acpAgent-MMOSC2YA.js → acpAgent-5HJEXOPR.js} +978 -205
- package/chunks/agent-PZF5IUUB.js +68 -0
- package/chunks/agent-headless-L4N7V2SG.js +62 -0
- package/chunks/{anthropicContentGenerator-AKYPSZIV.js → anthropicContentGenerator-L73TO3DB.js} +214 -31
- package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-U7IRTLIV.js} +5 -5
- package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-2DLUUZZG.js} +6 -6
- package/chunks/bridge-OJL6LD42.js +78 -0
- package/chunks/{ca-HCMB2I54.js → ca-WTQOU43B.js} +91 -6
- package/chunks/{channel-worker-supervisor-CRCVYQIE.js → channel-worker-supervisor-LF66HCVT.js} +137 -13
- package/chunks/{chunk-QQDPRDVW.js → chunk-2HRYPZT5.js} +1 -1
- package/chunks/{chunk-JD33UY7E.js → chunk-2K56LTWA.js} +18 -12
- package/chunks/{chunk-XISQIIT7.js → chunk-2LV4JUNO.js} +4 -4
- package/chunks/chunk-2UU6DW5P.js +296 -0
- package/chunks/{chunk-2PSWA5ID.js → chunk-2X56YUSZ.js} +1 -1
- package/chunks/chunk-2ZQOQZIS.js +71 -0
- package/chunks/{chunk-Q6OEPOOC.js → chunk-3AMVHPEQ.js} +2 -2
- package/chunks/{chunk-4RQIB5UZ.js → chunk-3BTRNWWD.js} +1 -35
- package/chunks/{chunk-SD4N3QJ2.js → chunk-3QZ6GY6A.js} +66 -22
- package/chunks/{chunk-DNV4FSN5.js → chunk-3SJSQXNS.js} +24 -7
- package/chunks/{chunk-VQWAZSXN.js → chunk-3XATDZNP.js} +64 -42
- package/chunks/{chunk-LEIJKM7Q.js → chunk-3ZAIGBCP.js} +2 -2
- package/chunks/{chunk-2NPS2UDH.js → chunk-43JB7OF4.js} +905 -139
- package/chunks/chunk-43XJTCHT.js +444 -0
- package/chunks/{chunk-CNSF3WO5.js → chunk-47HXCVGG.js} +6 -6
- package/chunks/{chunk-VEB3NYSO.js → chunk-4GORAUCN.js} +8 -3
- package/chunks/{chunk-55ZMG67I.js → chunk-4LD5APFL.js} +4 -4
- package/chunks/{chunk-TLWA7TPR.js → chunk-4QLQE5WJ.js} +2 -2
- package/chunks/{chunk-UIDXQNMV.js → chunk-4WGODMVR.js} +1 -1
- package/chunks/{chunk-E6US47KI.js → chunk-4WKAA4KS.js} +1 -1
- package/chunks/{chunk-H6EMK6QK.js → chunk-4ZVWQHEQ.js} +11913 -5207
- package/chunks/{chunk-HW4N45EE.js → chunk-524RQP4Q.js} +29 -8
- package/chunks/{chunk-3GONHQOA.js → chunk-57OAHC2Y.js} +1 -1
- package/chunks/{chunk-B4U2M63D.js → chunk-5DOUQHL3.js} +2104 -14
- package/chunks/{chunk-JZSY4WP3.js → chunk-5DTTYNB7.js} +1 -1
- package/chunks/{chunk-A4BMJM77.js → chunk-5O2XNYP6.js} +1 -0
- package/chunks/{chunk-P7I3D7FM.js → chunk-5OIXALQ5.js} +2 -2
- package/chunks/chunk-5SFOMFG4.js +61 -0
- package/chunks/{chunk-QYNNN7BK.js → chunk-5XUCZNSY.js} +2 -2
- package/chunks/{chunk-FRFFNYUY.js → chunk-65F3I3PM.js} +5 -5
- package/chunks/{chunk-GO6LNQXT.js → chunk-6AM5D4ME.js} +1 -1
- package/chunks/{chunk-BWVQN2HV.js → chunk-6CR73ZIK.js} +7 -7
- package/chunks/{chunk-BJBWRCSK.js → chunk-6H67XLET.js} +1 -1
- package/chunks/{chunk-G7ZG7CA6.js → chunk-6RLROE6G.js} +9 -8
- package/chunks/{chunk-TBAZMRW3.js → chunk-6WH2WCSW.js} +2 -2
- package/chunks/{chunk-ZERZSAZL.js → chunk-75DOP5OR.js} +2 -2
- package/chunks/{chunk-FTFXDZYI.js → chunk-7KZNLIAI.js} +47 -31
- package/chunks/{chunk-HJ3GX3Y3.js → chunk-7PW5CTVR.js} +32 -18
- package/chunks/{chunk-NQKLOAVJ.js → chunk-7R3CZA3Q.js} +2 -2
- package/chunks/{chunk-SAIILPQ3.js → chunk-7X7TEQNX.js} +5 -3
- package/chunks/{chunk-IRJWHZWU.js → chunk-A4UCTEB5.js} +2 -2
- package/chunks/{chunk-XSAFNANZ.js → chunk-AHUEU3BP.js} +14 -14
- package/chunks/{chunk-X3YGAX7V.js → chunk-B5ORX3FG.js} +4 -2
- package/chunks/{chunk-ZN5T4BHI.js → chunk-BPZALHVR.js} +2 -2
- package/chunks/{chunk-IJRL2S3D.js → chunk-BZIFY5TF.js} +6 -6
- package/chunks/{chunk-AJBEAUIS.js → chunk-BZP7HZTK.js} +7 -6
- package/chunks/{chunk-OFEVLU4C.js → chunk-CARU2RR2.js} +1 -1
- package/chunks/{chunk-MIG5SQNL.js → chunk-CBKR4Q5K.js} +8 -8
- package/chunks/chunk-CC2ITGCF.js +176 -0
- package/chunks/{chunk-FV7425LN.js → chunk-CEA3E3JB.js} +18 -5
- package/chunks/{chunk-GD236YPV.js → chunk-CNOF2IZT.js} +3 -3
- package/chunks/chunk-COH43MRJ.js +34 -0
- package/chunks/{chunk-E5A7LHNN.js → chunk-CPBF7KYF.js} +1 -1
- package/chunks/{chunk-UWCTAVOD.js → chunk-CR3C7WXL.js} +1 -1
- package/chunks/{chunk-5P5XGNYH.js → chunk-CU3L64TP.js} +1 -1
- package/chunks/{chunk-IWKSG2AR.js → chunk-CXAOG665.js} +1 -1
- package/chunks/{chunk-MZ7BABX3.js → chunk-DC5Z3DU6.js} +2 -2
- package/chunks/{chunk-64WXLC72.js → chunk-DJ2GSRLV.js} +1 -1
- package/chunks/{chunk-4ZJIPVPB.js → chunk-DMN532MJ.js} +11 -11
- package/chunks/{chunk-QN5NZ3UQ.js → chunk-DMTGGOSA.js} +2 -2
- package/chunks/{chunk-KHDZHZMH.js → chunk-E5Z2AVNV.js} +1 -1
- package/chunks/chunk-F4PFZ7WP.js +239 -0
- package/chunks/{chunk-ME3YSROJ.js → chunk-FBSBT7JS.js} +25 -13
- package/chunks/{chunk-5IFG2VC4.js → chunk-FCMNKVXT.js} +1 -1
- package/chunks/{chunk-YDSYD7UI.js → chunk-FD3DA3B4.js} +3 -3
- package/chunks/{chunk-GL5TV7B5.js → chunk-GL22M2DU.js} +23 -7
- package/chunks/{chunk-AFOLR6YL.js → chunk-GQ4ZEYMI.js} +102 -16
- package/chunks/chunk-GRC5HGPI.js +13 -0
- package/chunks/{chunk-WMPVYQ4P.js → chunk-GWHYEOV2.js} +2 -2
- package/chunks/chunk-GZRTYZ2R.js +292 -0
- package/chunks/{chunk-A2X3KLC3.js → chunk-GZXCZHCT.js} +3 -3
- package/chunks/{chunk-K5PGHDBN.js → chunk-H6XPXXMH.js} +1 -1
- package/chunks/{chunk-24XYI5EI.js → chunk-HACY3IUM.js} +6 -6
- package/chunks/{chunk-DGHJTO2K.js → chunk-HIHQ3TWC.js} +38 -9
- package/chunks/{chunk-KYMBIKIW.js → chunk-HTHUX2T5.js} +1 -1
- package/chunks/{chunk-LQ7TMOCE.js → chunk-HTO4JFDZ.js} +1 -1
- package/chunks/{chunk-B34OV7K2.js → chunk-IAVB3HM3.js} +15 -2
- package/chunks/{chunk-4UCTWSTP.js → chunk-IDJEZU7C.js} +2 -2
- package/chunks/chunk-IEBIKN6A.js +38 -0
- package/chunks/{chunk-PRDFOIZF.js → chunk-IJEO2QSK.js} +73 -30
- package/chunks/{chunk-MJI36HER.js → chunk-IT6LIIVK.js} +2 -2
- package/chunks/{chunk-FEJ2FZ3U.js → chunk-J3JA76CF.js} +2 -2
- package/chunks/{chunk-4CGOWHKM.js → chunk-J4MOFEOK.js} +2 -2
- package/chunks/{chunk-22MNNNXE.js → chunk-J4TSQ5EQ.js} +3 -2
- package/chunks/{chunk-22IFUCVR.js → chunk-JESCGQM3.js} +1 -1
- package/chunks/{chunk-CCGOFQV3.js → chunk-JSG7ZSBC.js} +8 -7
- package/chunks/{chunk-X265R5C6.js → chunk-K434OPES.js} +5 -5
- package/chunks/{chunk-RFIL6REB.js → chunk-KHUQZZJ6.js} +185 -45
- package/chunks/{chunk-X2XNQQJI.js → chunk-KKNMOEZH.js} +4 -4
- package/chunks/{chunk-6BN7NZ5Z.js → chunk-KL23O5Z5.js} +7 -9
- package/chunks/{chunk-MRO43B25.js → chunk-KW7NOTN6.js} +1 -1
- package/chunks/{chunk-6IAWPIQ6.js → chunk-L36P3NBD.js} +3 -3
- package/chunks/{chunk-54YZOP7P.js → chunk-L573Z2QZ.js} +11894 -5190
- package/chunks/{chunk-STAZRKOT.js → chunk-L6GPKRH7.js} +132 -464
- package/chunks/{chunk-QAKFYMJI.js → chunk-LD5OWZ5E.js} +155 -19
- package/chunks/{chunk-E7KNELIZ.js → chunk-LK7KUE55.js} +2 -2
- package/chunks/{chunk-W7EEOR7D.js → chunk-LUODI7WD.js} +5 -5
- package/chunks/{chunk-CSOTA7KX.js → chunk-LXNEJD34.js} +2 -2
- package/chunks/{chunk-HLKG6CZN.js → chunk-M5GB774H.js} +1 -1
- package/chunks/{chunk-3B26UVCX.js → chunk-MC23XKFE.js} +39 -10
- package/chunks/{chunk-XPJH4PKR.js → chunk-MPEMTBUZ.js} +2 -2
- package/chunks/{chunk-GMOWQOQQ.js → chunk-MUCWGT7O.js} +248 -55
- package/chunks/{chunk-PC4ZXHU2.js → chunk-MXL5UP4X.js} +3 -3
- package/chunks/{chunk-PUQLHSQ2.js → chunk-N2FGNKOE.js} +10 -12
- package/chunks/{chunk-332PWN27.js → chunk-NHDKSOEY.js} +1 -1
- package/chunks/{chunk-65CFHNSE.js → chunk-NKHV3OHY.js} +62 -62
- package/chunks/{chunk-P7M4GA57.js → chunk-OCPBI7J5.js} +1 -1
- package/chunks/{chunk-42XGFRJS.js → chunk-ORBGV7NJ.js} +5 -5
- package/chunks/{chunk-ALZ75L2X.js → chunk-OZJLTZKP.js} +415 -379
- package/chunks/chunk-P3X7RYUQ.js +468 -0
- package/chunks/{chunk-AGHU5VRK.js → chunk-PZL23GTM.js} +1 -1
- package/chunks/{chunk-FXGLL2HL.js → chunk-Q7YDKOGY.js} +1 -1
- package/chunks/{chunk-LGFAYIKX.js → chunk-QHTIBUWB.js} +1 -1
- package/chunks/{chunk-AIY5UTFI.js → chunk-QK2JET6S.js} +934 -2881
- package/chunks/{chunk-P3MYAZBY.js → chunk-QMGX2KO2.js} +1 -1
- package/chunks/{chunk-QZF5U5KA.js → chunk-QNTUV3PP.js} +11 -11
- package/chunks/chunk-QRUIS3DN.js +47 -0
- package/chunks/{chunk-ITOGNELQ.js → chunk-QSWDGAIC.js} +2 -2
- package/chunks/{chunk-7JGISHHZ.js → chunk-QUJIDGIW.js} +15 -157
- package/chunks/{chunk-GHOTR7HL.js → chunk-QUPXZXLV.js} +1 -1
- package/chunks/{chunk-TDGF35EN.js → chunk-QYMQSECS.js} +3 -3
- package/chunks/{chunk-QYUE6W3T.js → chunk-RDJSGHZE.js} +1 -1
- package/chunks/{chunk-TLRYABYP.js → chunk-RKUWKYED.js} +1 -1
- package/chunks/{chunk-ADZG46HR.js → chunk-RRNR5U2U.js} +2 -2
- package/chunks/{chunk-4O344UEE.js → chunk-RW7CXRUM.js} +39 -19
- package/chunks/{chunk-RNBYOUGV.js → chunk-RXFQM6FQ.js} +1 -1
- package/chunks/{chunk-QXPI7FEC.js → chunk-S3TWXGKA.js} +4 -4
- package/chunks/{chunk-44NROQYV.js → chunk-SJHDYNHF.js} +4 -4
- package/chunks/{chunk-MLZQVCF3.js → chunk-SZRN75WQ.js} +1 -1
- package/chunks/{chunk-7RYW5LQV.js → chunk-T2NCM2ET.js} +2 -2
- package/chunks/{chunk-Z2Z3GUXZ.js → chunk-TB6UDU4T.js} +1 -1
- package/chunks/{chunk-SUAKHHK7.js → chunk-TDEXZKMT.js} +3 -3
- package/chunks/{chunk-EXPMGZZV.js → chunk-TEGEBB2I.js} +1 -1
- package/chunks/{chunk-JF7DFPQ5.js → chunk-TJCEUA3S.js} +15 -3
- package/chunks/{chunk-MX2YXRER.js → chunk-TJTKSVIV.js} +1 -1
- package/chunks/{chunk-H6BD2ELD.js → chunk-TYAMGABM.js} +2 -2
- package/chunks/{chunk-CISB3IQF.js → chunk-U3VSCGEJ.js} +100 -15
- package/chunks/{chunk-VRDMOSQS.js → chunk-UDXSXLER.js} +2 -2
- package/chunks/{chunk-AHNJGLFV.js → chunk-UOZWKTQG.js} +3 -3
- package/chunks/{chunk-CJCKDMWO.js → chunk-URK542T4.js} +1 -1
- package/chunks/{chunk-YEGT55NW.js → chunk-UUVCHN62.js} +5697 -2983
- package/chunks/{chunk-AHNXYU4O.js → chunk-V6WHFGST.js} +1 -1
- package/chunks/{chunk-U4FRHCLA.js → chunk-VAUPLGDZ.js} +2370 -364
- package/chunks/{chunk-ZTQ26VBE.js → chunk-VDDGDZMA.js} +1 -1
- package/chunks/{chunk-OMX7CUOE.js → chunk-VGC4I5JJ.js} +1 -1
- package/chunks/{chunk-IUE7YWC3.js → chunk-VIUKEWUL.js} +8 -8
- package/chunks/{chunk-43W4YSO6.js → chunk-VJNBRRZG.js} +2 -2
- package/chunks/{chunk-I4A4K72C.js → chunk-VL7GBUQA.js} +1309 -703
- package/chunks/{chunk-VZ7HY3YU.js → chunk-W2UIXQDL.js} +3 -3
- package/chunks/{chunk-ER3BKOLB.js → chunk-W7FJ3N32.js} +1 -1
- package/chunks/{chunk-3HX5LZ6R.js → chunk-WBL3FJEU.js} +2 -2
- package/chunks/{chunk-RYFZCUJO.js → chunk-WCUK2QXK.js} +17 -9
- package/chunks/{chunk-OWVIH4HY.js → chunk-WFHJDT4S.js} +421 -114
- package/chunks/{chunk-BMFMJINR.js → chunk-WL4L7EZH.js} +1 -1
- package/chunks/{chunk-NZEGNV4V.js → chunk-WPHYXKFL.js} +8 -51
- package/chunks/chunk-X4NKFGFJ.js +81 -0
- package/chunks/{chunk-3RW4AZJV.js → chunk-XFSFZCM5.js} +1 -1
- package/chunks/{chunk-2MPVVENX.js → chunk-XU457J4V.js} +2 -2
- package/chunks/{chunk-SIUQ3YYX.js → chunk-XVNQMZ2I.js} +1 -1
- package/chunks/{chunk-SYCJMSIJ.js → chunk-XWRJCPHC.js} +1 -1
- package/chunks/chunk-YAF2MQZ6.js +19 -0
- package/chunks/chunk-YF4RZPJP.js +168 -0
- package/chunks/{chunk-4KJ2BPIT.js → chunk-YLV3XXFB.js} +4 -40
- package/chunks/{chunk-BR4QREVK.js → chunk-YQ3U5MUC.js} +1 -1
- package/chunks/{chunk-Y6Z2O3WR.js → chunk-YUZI3WAC.js} +1 -1
- package/chunks/{chunk-II73RK2S.js → chunk-YVEDCAUE.js} +1 -1
- package/chunks/{chunk-SKAZWEV5.js → chunk-ZJE7NSL3.js} +1 -1
- package/chunks/{chunk-7LTB54MK.js → chunk-ZLXQN2QS.js} +2 -2
- package/chunks/cli-entry-path-4VJ3Y6T2.js +10 -0
- package/chunks/{computer-use-X4KUU3NM.js → computer-use-2ZTYDNN4.js} +50 -50
- package/chunks/config-utils-ZITWCFBY.js +23 -0
- package/chunks/contextCommand-6L4XCZZT.js +68 -0
- package/chunks/create-sub-session-INX7TXJI.js +207 -0
- package/chunks/create-sub-session-VZIOFS6N.js +375 -0
- package/chunks/{cron-create-JSXEIPVS.js → cron-create-AMBKGZX6.js} +9 -9
- package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-LRU4OJYG.js} +7 -7
- package/chunks/{cron-list-D4ZX4IOE.js → cron-list-WVP2JXER.js} +14 -10
- package/chunks/{daemon-F3I2RXP6.js → daemon-QEDXW7ER.js} +554 -4
- package/chunks/daemon-status-provider-7XJZ3HPS.js +76 -0
- package/chunks/{de-PLLFDERI.js → de-XHBEYUMG.js} +91 -6
- package/chunks/{devtools-FM6GJPYG.js → devtools-4QFYJT6U.js} +3 -3
- package/chunks/{dist-573HNSVO.js → dist-EFXT7A3G.js} +12 -11
- package/chunks/{dist-PKFTNUHO.js → dist-KCRX7TGL.js} +529 -79
- package/chunks/{dist-OT7G2WNM.js → dist-MFEAEUV4.js} +1011 -197
- package/chunks/{dist-63IS3ZMI.js → dist-PZV5RKM6.js} +4 -4
- package/chunks/{dist-FQ5WRJPL.js → dist-QY3THJM5.js} +5 -5
- package/chunks/{dist-IMFFBMAT.js → dist-UJOR6KEQ.js} +32 -15
- package/chunks/{dist-YTRKAVUB.js → dist-ZWZB4CCN.js} +10 -10
- package/chunks/earlyInputCapture-TTWXFIWO.js +69 -0
- package/chunks/{edit-WZTZDGCI.js → edit-6UWFRZKY.js} +51 -51
- package/chunks/{en-GA2RMXY5.js → en-TKHUFIK7.js} +100 -6
- package/chunks/{enter-worktree-DEPXBJEL.js → enter-worktree-LS7SGAII.js} +50 -50
- package/chunks/{enterPlanMode-JFGXZHHJ.js → enterPlanMode-TSZYLEEP.js} +66 -51
- package/chunks/environment-XCVLHOXG.js +88 -0
- package/chunks/errors-KIANLUTC.js +75 -0
- package/chunks/{exit-worktree-Y7XBK3VV.js → exit-worktree-2QV6UJSW.js} +50 -50
- package/chunks/{exitPlanMode-WQQER65F.js → exitPlanMode-GVZG3F6S.js} +51 -51
- package/chunks/{fast-path-W2U6XDNO.js → fast-path-GNFZAMQK.js} +16 -7
- package/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-5QZE64HR.js} +6 -5
- package/chunks/{fileFromPath-IBEHA3CO.js → fileFromPath-UDALK7FM.js} +3 -3
- package/chunks/{fr-GWNQG4XH.js → fr-TBF6JZNE.js} +91 -6
- package/chunks/{gemini-T4WX6SRW.js → gemini-N3H6OLHR.js} +501 -197
- package/chunks/{geminiContentGenerator-MKQACXEJ.js → geminiContentGenerator-4C257R2N.js} +9 -9
- package/chunks/{getMachineId-bsd-4CASPIU4.js → getMachineId-bsd-EXV7SWPA.js} +3 -3
- package/chunks/{getMachineId-darwin-HPQPEMZR.js → getMachineId-darwin-IUOMFXU3.js} +3 -3
- package/chunks/{getMachineId-linux-AUARKYHL.js → getMachineId-linux-K7XJYFHL.js} +2 -2
- package/chunks/{getMachineId-unsupported-S32ZDA2T.js → getMachineId-unsupported-EA5FDRJ6.js} +2 -2
- package/chunks/{getMachineId-win-4EFLHYIJ.js → getMachineId-win-KBA6RAI5.js} +3 -3
- package/chunks/{glob-4KKSHZDF.js → glob-QTUI5I3Y.js} +95 -74
- package/chunks/{grep-GHRYXSLZ.js → grep-Z5MGLRCG.js} +50 -50
- package/chunks/handleAutoUpdate-FFF3CZGP.js +69 -0
- package/chunks/i18n-QQAJT7A2.js +84 -0
- package/chunks/initializer-LGQGC7ZT.js +71 -0
- package/chunks/installationInfo-4FEZGXIN.js +65 -0
- package/chunks/{ja-2HOTA47X.js → ja-CDXUA2H3.js} +92 -7
- package/chunks/{keychain-token-storage-UJV5XP4Z.js → keychain-token-storage-VKUBNCP4.js} +4 -4
- package/chunks/{kittyProtocolDetector-OJRCJLIU.js → kittyProtocolDetector-HCNNKJTI.js} +2 -2
- package/chunks/list-KIVFF3BB.js +74 -0
- package/chunks/loadedSettingsAdapter-EOD3RVZS.js +68 -0
- package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-WX7BLWWP.js} +10 -10
- package/chunks/{lowlight-FYAAUU5J.js → lowlight-J2OZNPCA.js} +1 -1
- package/chunks/{ls-L654WOAT.js → ls-ZB2BDP6T.js} +6 -6
- package/chunks/{lsp-M35KE54Y.js → lsp-V5DN4YUJ.js} +6 -8
- package/chunks/mcp-D2P46DB4.js +68 -0
- package/chunks/{monitor-464OY2UE.js → monitor-4ZWVOL6J.js} +50 -50
- package/chunks/{multipart-parser-AJ4WASWR.js → multipart-parser-AWZKXSQN.js} +3 -3
- package/chunks/nonInteractiveCli-NAHUR2X6.js +124 -0
- package/chunks/{notebook-edit-BLJYCNDO.js → notebook-edit-RCQ2D2IE.js} +51 -51
- package/chunks/openaiContentGenerator-U655T5QC.js +56 -0
- package/chunks/pidfile-O3OO2TCP.js +73 -0
- package/chunks/{pt-2THT3YHA.js → pt-6IR2VRQY.js} +91 -6
- package/chunks/{qwenContentGenerator-SUUHZ6CR.js → qwenContentGenerator-ABGWCRS6.js} +52 -52
- package/chunks/{qwenOAuth2-ZV7YLMND.js → qwenOAuth2-PJQ27GSO.js} +9 -9
- package/chunks/read-file-X7M4GUPY.js +30 -0
- package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-SM5DA4RG.js} +5 -5
- package/chunks/{read-package-up-ER5OJUGP.js → read-package-up-TCM6I7S2.js} +2 -2
- package/chunks/{record-artifact-PP3LKHTS.js → record-artifact-4XKZX3UW.js} +7 -7
- package/chunks/ripGrep-KMPJJK5J.js +60 -0
- package/chunks/{ru-Z67YJHBG.js → ru-DBTHQA3F.js} +91 -6
- package/chunks/{run-qwen-serve-5OKADVLE.js → run-qwen-serve-O6CMPURG.js} +958 -184
- package/chunks/runtime-THE2YO27.js +94 -0
- package/chunks/{scheduler-ZRW3AIDU.js → scheduler-XXEA6EFC.js} +51 -51
- package/chunks/{send-message-OA6MV4EU.js → send-message-F36YD6KQ.js} +7 -7
- package/chunks/serve-W6F44JQQ.js +74 -0
- package/chunks/{server-M372UENX.js → server-SAEKMY52.js} +4340 -829
- package/chunks/{session-F5KSNP2N.js → session-4GGYGOWY.js} +162 -117
- package/chunks/settings-PYEU5HVD.js +118 -0
- package/chunks/shell-JGQECKTH.js +68 -0
- package/chunks/{skill-A2TL2NPC.js → skill-XPP3C2DS.js} +24 -24
- package/chunks/spawnChannel-62QKQBQN.js +70 -0
- package/chunks/{src-XKZMNHXS.js → src-2656Q6SN.js} +126 -52
- package/chunks/{src-7XL4G4DC.js → src-VLI3TKEY.js} +4 -4
- package/chunks/standalone-update-X7AZVG5R.js +79 -0
- package/chunks/{startInteractiveUI-REKSTOHU.js → startInteractiveUI-DXR4K6T5.js} +2277 -1834
- package/chunks/stdioHelpers-UMY72QRP.js +14 -0
- package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-34H7LGA7.js} +5 -5
- package/chunks/task-create-FRGOEIKY.js +22 -0
- package/chunks/{task-list-TGGJX7EA.js → task-list-OW766BXZ.js} +10 -10
- package/chunks/{task-stop-W7NGTMYQ.js → task-stop-SIR5SNBN.js} +4 -4
- package/chunks/{task-update-5WUG5MVQ.js → task-update-YRA532MT.js} +12 -12
- package/chunks/{team-create-TBQVWAG7.js → team-create-3EHCUCKA.js} +50 -50
- package/chunks/{team-delete-UHQQ2QQX.js → team-delete-6OSECUZC.js} +10 -10
- package/chunks/{team-plan-approval-FZPGUSHJ.js → team-plan-approval-KZ7NZIMX.js} +50 -50
- package/chunks/theme-manager-J7ANV4JR.js +64 -0
- package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-YDMFEV4G.js} +6 -6
- package/chunks/{tool-search-FDQ3SLNJ.js → tool-search-2XLGWG4H.js} +24 -24
- package/chunks/total-session-admission-EQIHUOL6.js +72 -0
- package/chunks/trustedFolders-BEX5334Z.js +79 -0
- package/chunks/{types-QX5C3CHJ.js → types-JNKGKUJT.js} +2 -2
- package/chunks/updateCheck-NKPJGJCR.js +69 -0
- package/chunks/updateEventEmitter-5MKC7BLQ.js +10 -0
- package/chunks/validateNonInterActiveAuth-6DGGGE4A.js +190 -0
- package/chunks/{version-CEDD6ZZR.js → version-FRVWU5ZU.js} +3 -3
- package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-PAAEQKBW.js} +8 -8
- package/chunks/{workflow-CQQ4J4I6.js → workflow-LWFMECLD.js} +51 -51
- package/chunks/workspace-providers-status-NE7QWEYS.js +71 -0
- package/chunks/workspace-registry-RCWAP57G.js +76 -0
- package/chunks/workspace-service-4QUMVGBX.js +80 -0
- package/chunks/workspace-skills-status-L34BYRSY.js +70 -0
- package/chunks/{write-file-VWGY7AJP.js → write-file-WXO4M5FN.js} +51 -51
- package/chunks/{yargs-B64EYTCF.js → yargs-6H2AUULL.js} +2 -2
- package/chunks/{zh-7XVVRTDH.js → zh-LJP47LX7.js} +101 -7
- package/chunks/{zh-TW-DPH554OG.js → zh-TW-5ISMO3VJ.js} +101 -7
- package/cli.js +18 -17
- package/locales/ca.js +117 -7
- package/locales/de.js +116 -7
- package/locales/en.js +133 -7
- package/locales/fr.js +117 -7
- package/locales/ja.js +119 -7
- package/locales/pt.js +116 -7
- package/locales/ru.js +116 -7
- package/locales/zh-TW.js +130 -7
- package/locales/zh.js +130 -7
- package/package.json +3 -6
- package/web-shell/assets/{arc-C7hjaa7g.js → arc-BRDEF7h6.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-pm9KtMZY.js → architectureDiagram-3BPJPVTR-Cxnk4Ygq.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CApElKsU.js → blockDiagram-GPEHLZMM-BZrtayqw.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BeDe0-9N.js → c4Diagram-AAUBKEIU-Djmbi1yB.js} +1 -1
- package/web-shell/assets/channel-C9zfQCn-.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DJEkmLdl.js → chunk-2J33WTMH-Cdokj-0U.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DXX8gdpe.js → chunk-4BX2VUAB-BI9Hx57o.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DORmk1kQ.js → chunk-55IACEB6-Cb17cEzj.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DWmO4mCZ.js → chunk-727SXJPM-DY1Fc0h_.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-C7LRaYw2.js → chunk-AQP2D5EJ-B10G71Hd.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CCdXgyC5.js → chunk-FMBD7UC4-BP6OoB6Z.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-SyL_xvWc.js → chunk-ND2GUHAM-CWIIwUFC.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-BzOuCKxa.js → chunk-QZHKN3VN-DMrqCfGO.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BVNaf5JM.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BVNaf5JM.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BMPWyDKc.js → cose-bilkent-S5V4N54A-CF-mpkgI.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-B_GnPWik.js → dagre-BM42HDAG-DfsRFsg7.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-fJqMc3S_.js → diagram-2AECGRRQ-DBNwf6Dy.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-ximV3O9D.js → diagram-5GNKFQAL-CD1TqV1j.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-2vVyjzqw.js → diagram-KO2AKTUF-DkWlaLI2.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-Dckcx1sT.js → diagram-LMA3HP47-ClrAcxwF.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-BAVv47ga.js → diagram-OG6HWLK6-Dr6dnPLw.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-Bn3nf5J0.js → erDiagram-TEJ5UH35-Dm_vj18R.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BIbGF9JT.js → flowDiagram-I6XJVG4X-lp3cMdZu.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-CDbhb3AH.js → ganttDiagram-6RSMTGT7-AtdCWZya.js} +3 -3
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CbKG1a_w.js → gitGraphDiagram-PVQCEYII-BARTJafF.js} +1 -1
- package/web-shell/assets/index-BkNgyfu7.js +3 -0
- package/web-shell/assets/index-CihmnZZR.js +784 -0
- package/web-shell/assets/index-zfdXhnwH.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DUFxTy8m.js → infoDiagram-5YYISTIA-CxbJ54_f.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D69hrBG8.js → ishikawaDiagram-YF4QCWOH-hFoO0HQA.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-DsvEw51Y.js → journeyDiagram-JHISSGLW-Bo6cKnLe.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-lFFjZEYd.js → kanban-definition-UN3LZRKU-DIFrH-XL.js} +1 -1
- package/web-shell/assets/{linear-Bo5bWzvo.js → linear-Bjv_GjDd.js} +1 -1
- package/web-shell/assets/{mermaid.core-C_HKMJx5.js → mermaid.core-C_OiqQEP.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-DlV-NUTs.js → mindmap-definition-RKZ34NQL-B79Gk8aB.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-B2e6FH2a.js → pieDiagram-4H26LBE5-B_P0gIHr.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-D75kSk-b.js → quadrantDiagram-W4KKPZXB-BC7F0ohb.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CQ6xakhM.js → requirementDiagram-4Y6WPE33-BrA5_NSW.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-J_XTKrcY.js → sankeyDiagram-5OEKKPKP-Q2iqrNI_.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-D7jTcBtf.js → sequenceDiagram-3UESZ5HK-6vdIWz4H.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CrlM_OT3.js → stateDiagram-AJRCARHV-DMzXNKcB.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BWFH0OCO.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-5oZi76Ef.js → timeline-definition-PNZ67QCA-BykEawmS.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DO5YptPK.js → vennDiagram-CIIHVFJN-B24KD2X1.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-4t1eJDvM.js → wardley-L42UT6IY-C761G_tA.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKZc661S.js → wardleyDiagram-YWT4CUSO-CfwGJYqw.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-su9hp08G.js → xychartDiagram-2RQKCTM6-BDu5AZ2D.js} +1 -1
- package/web-shell/index.html +16 -4
- package/chunks/MaxSizedBox-XY5LIO5O.js +0 -71
- package/chunks/agent-TKIBLLQT.js +0 -68
- package/chunks/agent-headless-VLX4C7KX.js +0 -62
- package/chunks/bridge-BCU73DZO.js +0 -77
- package/chunks/chunk-6SHO7WFF.js +0 -79
- package/chunks/chunk-IFEWJXFS.js +0 -37
- package/chunks/chunk-S6RLAIUR.js +0 -23
- package/chunks/contextCommand-LAYJZF7H.js +0 -68
- package/chunks/daemon-status-provider-XSAFKVDS.js +0 -74
- package/chunks/earlyInputCapture-AERYYGXE.js +0 -69
- package/chunks/errors-GMZL4QV7.js +0 -75
- package/chunks/handleAutoUpdate-HN7ZOSXY.js +0 -65
- package/chunks/initializer-SRN3IM42.js +0 -69
- package/chunks/list-INTVXUPA.js +0 -71
- package/chunks/loadedSettingsAdapter-QVHHQPGM.js +0 -66
- package/chunks/mcp-7V4T46RG.js +0 -66
- package/chunks/nonInteractiveCli-LJEEODU2.js +0 -116
- package/chunks/openaiContentGenerator-PFF6HYB2.js +0 -56
- package/chunks/pidfile-LIBUENIV.js +0 -73
- package/chunks/read-file-L7TBQVX7.js +0 -30
- package/chunks/ripGrep-CKKX3GRB.js +0 -60
- package/chunks/serve-36WS32W6.js +0 -71
- package/chunks/settings-WFLNS3WT.js +0 -114
- package/chunks/shell-DEDSWN56.js +0 -68
- package/chunks/spawnChannel-RQHUWTCL.js +0 -70
- package/chunks/task-create-RPFZNB4B.js +0 -22
- package/chunks/theme-manager-DQZVNSOC.js +0 -64
- package/chunks/trustedFolders-Z475EIHL.js +0 -79
- package/chunks/updateCheck-E2ZX7RL7.js +0 -65
- package/chunks/validateNonInterActiveAuth-O4ECBHQL.js +0 -181
- package/chunks/workspace-providers-status-MVYXMYDG.js +0 -68
- package/chunks/workspace-service-OMBR6ZLG.js +0 -78
- package/chunks/workspace-skills-status-IMMQ7CAY.js +0 -68
- package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
- package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
- package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
- package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
- package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
- package/node_modules/@qwen-code/audio-capture/package.json +0 -30
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
- package/web-shell/assets/channel-BNf1dW-j.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +0 -1
- package/web-shell/assets/index-CnE2ur2L.js +0 -779
- package/web-shell/assets/index-hSKXrlSE.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +0 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
init_esbuild_shims
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-5O2XNYP6.js";
|
|
6
6
|
import {
|
|
7
7
|
__name
|
|
8
8
|
} from "./chunk-J2S4EL5Y.js";
|
|
@@ -683,9 +683,51 @@ var DaemonClient = class {
|
|
|
683
683
|
if (!res.ok) throw await this.failOnError(res, label);
|
|
684
684
|
return await res.json();
|
|
685
685
|
},
|
|
686
|
+
opts.timeoutMs,
|
|
687
|
+
opts.mode
|
|
688
|
+
);
|
|
689
|
+
}
|
|
690
|
+
/** @internal */
|
|
691
|
+
async workspaceJsonRequest(workspaceSelector, path, label, opts = {}) {
|
|
692
|
+
return await this.jsonRequest(
|
|
693
|
+
`/workspaces/${workspaceSelector}${path}`,
|
|
694
|
+
label,
|
|
695
|
+
opts
|
|
696
|
+
);
|
|
697
|
+
}
|
|
698
|
+
/** @internal */
|
|
699
|
+
async workspaceNoContentRequest(workspaceSelector, path, label, opts = {}) {
|
|
700
|
+
return await this.fetchWithTimeout(
|
|
701
|
+
`${this.baseUrl}/workspaces/${workspaceSelector}${path}`,
|
|
702
|
+
{
|
|
703
|
+
...opts.method ? { method: opts.method } : {},
|
|
704
|
+
headers: this.headers({}, opts.clientId)
|
|
705
|
+
},
|
|
706
|
+
async (res) => {
|
|
707
|
+
if (res.status === 204) {
|
|
708
|
+
try {
|
|
709
|
+
await res.body?.cancel();
|
|
710
|
+
} catch {
|
|
711
|
+
}
|
|
712
|
+
return;
|
|
713
|
+
}
|
|
714
|
+
if (res.status === 404 && opts.okNotFoundCode) {
|
|
715
|
+
const err = await this.failOnError(res, label);
|
|
716
|
+
const body = err.body;
|
|
717
|
+
if (body?.code === opts.okNotFoundCode) return;
|
|
718
|
+
throw err;
|
|
719
|
+
}
|
|
720
|
+
throw await this.failOnError(res, label);
|
|
721
|
+
},
|
|
686
722
|
opts.timeoutMs
|
|
687
723
|
);
|
|
688
724
|
}
|
|
725
|
+
workspaceById(workspaceId) {
|
|
726
|
+
return new WorkspaceDaemonClient(this, urlEncode(workspaceId));
|
|
727
|
+
}
|
|
728
|
+
workspaceByCwd(workspaceCwd) {
|
|
729
|
+
return new WorkspaceDaemonClient(this, urlEncode(workspaceCwd));
|
|
730
|
+
}
|
|
689
731
|
// -- Lifecycle / discovery ---------------------------------------------
|
|
690
732
|
async health() {
|
|
691
733
|
return await this.fetchWithTimeout(
|
|
@@ -787,6 +829,33 @@ var DaemonClient = class {
|
|
|
787
829
|
}
|
|
788
830
|
);
|
|
789
831
|
}
|
|
832
|
+
async workspaceAcpPreheat(timeoutMs) {
|
|
833
|
+
const serverBudgetMs = timeoutMs ?? 5e3;
|
|
834
|
+
const suffix = timeoutMs !== void 0 ? `?timeoutMs=${encodeURIComponent(timeoutMs)}` : "";
|
|
835
|
+
return await this.fetchWithTimeout(
|
|
836
|
+
`${this.baseUrl}/workspace/acp/preheat${suffix}`,
|
|
837
|
+
{ method: "POST", headers: this.headers() },
|
|
838
|
+
async (res) => {
|
|
839
|
+
if (!res.ok) {
|
|
840
|
+
throw await this.failOnError(res, "POST /workspace/acp/preheat");
|
|
841
|
+
}
|
|
842
|
+
return await res.json();
|
|
843
|
+
},
|
|
844
|
+
serverBudgetMs + 2e3
|
|
845
|
+
);
|
|
846
|
+
}
|
|
847
|
+
async workspaceAcpStatus() {
|
|
848
|
+
return await this.fetchWithTimeout(
|
|
849
|
+
`${this.baseUrl}/workspace/acp/status`,
|
|
850
|
+
{ headers: this.headers() },
|
|
851
|
+
async (res) => {
|
|
852
|
+
if (!res.ok) {
|
|
853
|
+
throw await this.failOnError(res, "GET /workspace/acp/status");
|
|
854
|
+
}
|
|
855
|
+
return await res.json();
|
|
856
|
+
}
|
|
857
|
+
);
|
|
858
|
+
}
|
|
790
859
|
async workspaceProviders() {
|
|
791
860
|
return await this.fetchWithTimeout(
|
|
792
861
|
`${this.baseUrl}/workspace/providers`,
|
|
@@ -1279,7 +1348,8 @@ var DaemonClient = class {
|
|
|
1279
1348
|
// invalid_session_scope` surface the bug. Same shape the
|
|
1280
1349
|
// bridge's own validation uses (`httpAcpBridge.ts:
|
|
1281
1350
|
// spawnOrAttach`); SDK should be a transparent layer here.
|
|
1282
|
-
...req.sessionScope !== void 0 ? { sessionScope: req.sessionScope } : {}
|
|
1351
|
+
...req.sessionScope !== void 0 ? { sessionScope: req.sessionScope } : {},
|
|
1352
|
+
...req.approvalMode !== void 0 ? { approvalMode: req.approvalMode } : {}
|
|
1283
1353
|
})
|
|
1284
1354
|
},
|
|
1285
1355
|
async (res) => {
|
|
@@ -1320,6 +1390,9 @@ var DaemonClient = class {
|
|
|
1320
1390
|
if (options?.group !== void 0) {
|
|
1321
1391
|
query.set("group", options.group);
|
|
1322
1392
|
}
|
|
1393
|
+
if (options?.parentSessionId !== void 0) {
|
|
1394
|
+
query.set("parentSessionId", options.parentSessionId);
|
|
1395
|
+
}
|
|
1323
1396
|
return await this.jsonRequest(
|
|
1324
1397
|
`/workspace/${urlEncode(workspaceCwd)}/sessions?${query.toString()}`,
|
|
1325
1398
|
"GET /workspace/sessions"
|
|
@@ -1390,6 +1463,20 @@ var DaemonClient = class {
|
|
|
1390
1463
|
"rest"
|
|
1391
1464
|
);
|
|
1392
1465
|
}
|
|
1466
|
+
async getSessionTranscriptPage(sessionId, opts = {}) {
|
|
1467
|
+
const params = new URLSearchParams();
|
|
1468
|
+
if (opts.cursor !== void 0) params.set("cursor", opts.cursor);
|
|
1469
|
+
if (opts.limit !== void 0) params.set("limit", String(opts.limit));
|
|
1470
|
+
const query = params.toString();
|
|
1471
|
+
return await this.jsonRequest(
|
|
1472
|
+
`/session/${urlEncode(sessionId)}/transcript${query ? `?${query}` : ""}`,
|
|
1473
|
+
"GET /session/:id/transcript",
|
|
1474
|
+
{
|
|
1475
|
+
clientId: opts.clientId,
|
|
1476
|
+
mode: "rest"
|
|
1477
|
+
}
|
|
1478
|
+
);
|
|
1479
|
+
}
|
|
1393
1480
|
async resumeSession(sessionId, req = {}, clientId) {
|
|
1394
1481
|
return this.restoreSession("resume", sessionId, req, clientId);
|
|
1395
1482
|
}
|
|
@@ -1437,6 +1524,21 @@ var DaemonClient = class {
|
|
|
1437
1524
|
}
|
|
1438
1525
|
);
|
|
1439
1526
|
}
|
|
1527
|
+
/**
|
|
1528
|
+
* Read the current in-memory runtime status for one live daemon session.
|
|
1529
|
+
*/
|
|
1530
|
+
async sessionStatus(sessionId, clientId) {
|
|
1531
|
+
return await this.fetchWithTimeout(
|
|
1532
|
+
`${this.baseUrl}/session/${urlEncode(sessionId)}/status`,
|
|
1533
|
+
{ headers: this.headers({}, clientId) },
|
|
1534
|
+
async (res) => {
|
|
1535
|
+
if (!res.ok) {
|
|
1536
|
+
throw await this.failOnError(res, "GET /session/:id/status");
|
|
1537
|
+
}
|
|
1538
|
+
return await res.json();
|
|
1539
|
+
}
|
|
1540
|
+
);
|
|
1541
|
+
}
|
|
1440
1542
|
async sessionContextUsage(sessionId, opts = {}, clientId) {
|
|
1441
1543
|
const params = new URLSearchParams();
|
|
1442
1544
|
if (opts.detail === true) params.set("detail", "true");
|
|
@@ -1551,7 +1653,10 @@ var DaemonClient = class {
|
|
|
1551
1653
|
{
|
|
1552
1654
|
method: "POST",
|
|
1553
1655
|
headers: this.headers({ "Content-Type": "application/json" }, clientId),
|
|
1554
|
-
body: JSON.stringify({
|
|
1656
|
+
body: JSON.stringify({
|
|
1657
|
+
cwd: req.workspaceCwd,
|
|
1658
|
+
...req.approvalMode !== void 0 ? { approvalMode: req.approvalMode } : {}
|
|
1659
|
+
})
|
|
1555
1660
|
},
|
|
1556
1661
|
async (res) => {
|
|
1557
1662
|
if (!res.ok) {
|
|
@@ -2047,6 +2152,32 @@ var DaemonClient = class {
|
|
|
2047
2152
|
opts?.timeoutMs
|
|
2048
2153
|
);
|
|
2049
2154
|
}
|
|
2155
|
+
/**
|
|
2156
|
+
* Reload the daemon-managed channel worker: the daemon stops and relaunches
|
|
2157
|
+
* it so it re-reads settings.json (channels / proxy / per-channel model).
|
|
2158
|
+
* Requires the daemon to have been started with `--channel`; otherwise the
|
|
2159
|
+
* route responds 409. Pre-flight the `channel_reload` capability.
|
|
2160
|
+
*/
|
|
2161
|
+
async reloadChannelWorker(opts) {
|
|
2162
|
+
return await this.fetchWithTimeout(
|
|
2163
|
+
`${this.baseUrl}/workspace/channel/reload`,
|
|
2164
|
+
{
|
|
2165
|
+
method: "POST",
|
|
2166
|
+
headers: this.headers(
|
|
2167
|
+
{ "Content-Type": "application/json" },
|
|
2168
|
+
opts?.clientId
|
|
2169
|
+
),
|
|
2170
|
+
body: "{}"
|
|
2171
|
+
},
|
|
2172
|
+
async (res) => {
|
|
2173
|
+
if (!res.ok) {
|
|
2174
|
+
throw await this.failOnError(res, "POST /workspace/channel/reload");
|
|
2175
|
+
}
|
|
2176
|
+
return await res.json();
|
|
2177
|
+
},
|
|
2178
|
+
opts?.timeoutMs
|
|
2179
|
+
);
|
|
2180
|
+
}
|
|
2050
2181
|
async manageMcpServer(serverName, action, opts) {
|
|
2051
2182
|
return await this.fetchWithTimeout(
|
|
2052
2183
|
`${this.baseUrl}/workspace/mcp/${urlEncode(serverName)}/${urlEncode(action)}`,
|
|
@@ -2653,6 +2784,22 @@ var DaemonClient = class {
|
|
|
2653
2784
|
}
|
|
2654
2785
|
);
|
|
2655
2786
|
}
|
|
2787
|
+
async addWorkspace(cwd) {
|
|
2788
|
+
return await this.fetchWithTimeout(
|
|
2789
|
+
`${this.baseUrl}/workspaces`,
|
|
2790
|
+
{
|
|
2791
|
+
method: "POST",
|
|
2792
|
+
headers: this.headers({ "Content-Type": "application/json" }),
|
|
2793
|
+
body: JSON.stringify({ cwd })
|
|
2794
|
+
},
|
|
2795
|
+
async (res) => {
|
|
2796
|
+
if (!res.ok) {
|
|
2797
|
+
throw await this.failOnError(res, "POST /workspaces");
|
|
2798
|
+
}
|
|
2799
|
+
return await res.json();
|
|
2800
|
+
}
|
|
2801
|
+
);
|
|
2802
|
+
}
|
|
2656
2803
|
// -- Lifecycle / disposal ------------------------------------------------
|
|
2657
2804
|
/**
|
|
2658
2805
|
* Release transport resources (WS close, etc.). Idempotent.
|
|
@@ -2714,6 +2861,327 @@ var DaemonClient = class {
|
|
|
2714
2861
|
);
|
|
2715
2862
|
}
|
|
2716
2863
|
};
|
|
2864
|
+
var WorkspaceDaemonClient = class {
|
|
2865
|
+
constructor(client, workspaceSelector) {
|
|
2866
|
+
this.client = client;
|
|
2867
|
+
this.workspaceSelector = workspaceSelector;
|
|
2868
|
+
}
|
|
2869
|
+
static {
|
|
2870
|
+
__name(this, "WorkspaceDaemonClient");
|
|
2871
|
+
}
|
|
2872
|
+
workspaceMcp() {
|
|
2873
|
+
return this.get("/mcp", "GET /workspaces/:workspace/mcp");
|
|
2874
|
+
}
|
|
2875
|
+
workspaceSkills() {
|
|
2876
|
+
return this.get("/skills", "GET /workspaces/:workspace/skills");
|
|
2877
|
+
}
|
|
2878
|
+
workspaceProviders() {
|
|
2879
|
+
return this.get("/providers", "GET /workspaces/:workspace/providers");
|
|
2880
|
+
}
|
|
2881
|
+
workspaceHooks() {
|
|
2882
|
+
return this.get("/hooks", "GET /workspaces/:workspace/hooks");
|
|
2883
|
+
}
|
|
2884
|
+
workspaceEnv() {
|
|
2885
|
+
return this.get("/env", "GET /workspaces/:workspace/env");
|
|
2886
|
+
}
|
|
2887
|
+
workspacePreflight() {
|
|
2888
|
+
return this.get("/preflight", "GET /workspaces/:workspace/preflight");
|
|
2889
|
+
}
|
|
2890
|
+
workspaceTools() {
|
|
2891
|
+
return this.get("/tools", "GET /workspaces/:workspace/tools");
|
|
2892
|
+
}
|
|
2893
|
+
workspaceMemory() {
|
|
2894
|
+
return this.get("/memory", "GET /workspaces/:workspace/memory");
|
|
2895
|
+
}
|
|
2896
|
+
writeWorkspaceMemory(req, clientId) {
|
|
2897
|
+
return this.post(
|
|
2898
|
+
"/memory",
|
|
2899
|
+
"POST /workspaces/:workspace/memory",
|
|
2900
|
+
{ ...req, scope: "workspace" },
|
|
2901
|
+
clientId
|
|
2902
|
+
);
|
|
2903
|
+
}
|
|
2904
|
+
listWorkspaceAgents() {
|
|
2905
|
+
return this.get("/agents", "GET /workspaces/:workspace/agents");
|
|
2906
|
+
}
|
|
2907
|
+
createWorkspaceAgent(req, clientId) {
|
|
2908
|
+
return this.post(
|
|
2909
|
+
"/agents",
|
|
2910
|
+
"POST /workspaces/:workspace/agents",
|
|
2911
|
+
{ ...req, scope: req.scope ?? "workspace" },
|
|
2912
|
+
clientId
|
|
2913
|
+
);
|
|
2914
|
+
}
|
|
2915
|
+
getWorkspaceAgent(agentType) {
|
|
2916
|
+
return this.get(
|
|
2917
|
+
`/agents/${urlEncode(agentType)}`,
|
|
2918
|
+
"GET /workspaces/:workspace/agents/:agentType"
|
|
2919
|
+
);
|
|
2920
|
+
}
|
|
2921
|
+
updateWorkspaceAgent(agentType, req, opts = {}) {
|
|
2922
|
+
const query = opts.scope ? `?scope=${urlEncode(opts.scope)}` : "";
|
|
2923
|
+
return this.post(
|
|
2924
|
+
`/agents/${urlEncode(agentType)}${query}`,
|
|
2925
|
+
"POST /workspaces/:workspace/agents/:agentType",
|
|
2926
|
+
req,
|
|
2927
|
+
opts.clientId
|
|
2928
|
+
);
|
|
2929
|
+
}
|
|
2930
|
+
async deleteWorkspaceAgent(agentType, opts = {}) {
|
|
2931
|
+
const query = opts.scope ? `?scope=${urlEncode(opts.scope)}` : "";
|
|
2932
|
+
return await this.client.workspaceNoContentRequest(
|
|
2933
|
+
this.workspaceSelector,
|
|
2934
|
+
`/agents/${urlEncode(agentType)}${query}`,
|
|
2935
|
+
"DELETE /workspaces/:workspace/agents/:agentType",
|
|
2936
|
+
{
|
|
2937
|
+
method: "DELETE",
|
|
2938
|
+
clientId: opts.clientId,
|
|
2939
|
+
okNotFoundCode: "agent_not_found"
|
|
2940
|
+
}
|
|
2941
|
+
);
|
|
2942
|
+
}
|
|
2943
|
+
listWorkspaceSessionsPage(options) {
|
|
2944
|
+
const requestedPageSize = options?.pageSize ?? DEFAULT_SESSION_LIST_PAGE_SIZE;
|
|
2945
|
+
const pageSize = Math.max(
|
|
2946
|
+
1,
|
|
2947
|
+
Math.min(
|
|
2948
|
+
1e3,
|
|
2949
|
+
Math.round(
|
|
2950
|
+
Number.isFinite(requestedPageSize) ? requestedPageSize : DEFAULT_SESSION_LIST_PAGE_SIZE
|
|
2951
|
+
)
|
|
2952
|
+
)
|
|
2953
|
+
);
|
|
2954
|
+
const query = new URLSearchParams({ size: String(pageSize) });
|
|
2955
|
+
if (options?.cursor !== void 0) query.set("cursor", options.cursor);
|
|
2956
|
+
if (options?.archiveState !== void 0) {
|
|
2957
|
+
query.set("archiveState", options.archiveState);
|
|
2958
|
+
}
|
|
2959
|
+
if (options?.view !== void 0) query.set("view", options.view);
|
|
2960
|
+
if (options?.group !== void 0) query.set("group", options.group);
|
|
2961
|
+
if (options?.parentSessionId !== void 0) {
|
|
2962
|
+
query.set("parentSessionId", options.parentSessionId);
|
|
2963
|
+
}
|
|
2964
|
+
return this.get(
|
|
2965
|
+
`/sessions?${query.toString()}`,
|
|
2966
|
+
"GET /workspaces/:workspace/sessions"
|
|
2967
|
+
);
|
|
2968
|
+
}
|
|
2969
|
+
async listWorkspaceSessions(options) {
|
|
2970
|
+
const page = await this.listWorkspaceSessionsPage(options);
|
|
2971
|
+
return page.sessions;
|
|
2972
|
+
}
|
|
2973
|
+
listSessionGroups() {
|
|
2974
|
+
return this.get(
|
|
2975
|
+
"/session-groups",
|
|
2976
|
+
"GET /workspaces/:workspace/session-groups"
|
|
2977
|
+
);
|
|
2978
|
+
}
|
|
2979
|
+
async createSessionGroup(input) {
|
|
2980
|
+
const body = await this.post(
|
|
2981
|
+
"/session-groups",
|
|
2982
|
+
"POST /workspaces/:workspace/session-groups",
|
|
2983
|
+
input
|
|
2984
|
+
);
|
|
2985
|
+
return body.group;
|
|
2986
|
+
}
|
|
2987
|
+
async updateSessionGroup(groupId, update) {
|
|
2988
|
+
const body = await this.client.workspaceJsonRequest(
|
|
2989
|
+
this.workspaceSelector,
|
|
2990
|
+
`/session-groups/${urlEncode(groupId)}`,
|
|
2991
|
+
"PATCH /workspaces/:workspace/session-groups/:groupId",
|
|
2992
|
+
{ method: "PATCH", body: update }
|
|
2993
|
+
);
|
|
2994
|
+
return body.group;
|
|
2995
|
+
}
|
|
2996
|
+
deleteSessionGroup(groupId) {
|
|
2997
|
+
return this.client.workspaceJsonRequest(
|
|
2998
|
+
this.workspaceSelector,
|
|
2999
|
+
`/session-groups/${urlEncode(groupId)}`,
|
|
3000
|
+
"DELETE /workspaces/:workspace/session-groups/:groupId",
|
|
3001
|
+
{ method: "DELETE" }
|
|
3002
|
+
);
|
|
3003
|
+
}
|
|
3004
|
+
deleteSessionsData(sessionIds, clientId) {
|
|
3005
|
+
return this.post(
|
|
3006
|
+
"/sessions/delete",
|
|
3007
|
+
"POST /workspaces/:workspace/sessions/delete",
|
|
3008
|
+
{ sessionIds },
|
|
3009
|
+
clientId
|
|
3010
|
+
);
|
|
3011
|
+
}
|
|
3012
|
+
archiveSessionsData(sessionIds, clientId) {
|
|
3013
|
+
return this.post(
|
|
3014
|
+
"/sessions/archive",
|
|
3015
|
+
"POST /workspaces/:workspace/sessions/archive",
|
|
3016
|
+
{ sessionIds },
|
|
3017
|
+
clientId
|
|
3018
|
+
);
|
|
3019
|
+
}
|
|
3020
|
+
unarchiveSessionsData(sessionIds, clientId) {
|
|
3021
|
+
return this.post(
|
|
3022
|
+
"/sessions/unarchive",
|
|
3023
|
+
"POST /workspaces/:workspace/sessions/unarchive",
|
|
3024
|
+
{ sessionIds },
|
|
3025
|
+
clientId
|
|
3026
|
+
);
|
|
3027
|
+
}
|
|
3028
|
+
readWorkspaceFile(filePath, opts = {}, clientId) {
|
|
3029
|
+
const query = new URLSearchParams({ path: filePath });
|
|
3030
|
+
if (opts.maxBytes !== void 0)
|
|
3031
|
+
query.set("maxBytes", String(opts.maxBytes));
|
|
3032
|
+
if (opts.line !== void 0) query.set("line", String(opts.line));
|
|
3033
|
+
if (opts.limit !== void 0) query.set("limit", String(opts.limit));
|
|
3034
|
+
return this.get(
|
|
3035
|
+
`/file?${query.toString()}`,
|
|
3036
|
+
"GET /workspaces/:workspace/file",
|
|
3037
|
+
clientId
|
|
3038
|
+
);
|
|
3039
|
+
}
|
|
3040
|
+
readWorkspaceFileBytes(filePath, opts = {}, clientId) {
|
|
3041
|
+
const query = new URLSearchParams({ path: filePath });
|
|
3042
|
+
if (opts.offset !== void 0) query.set("offset", String(opts.offset));
|
|
3043
|
+
if (opts.maxBytes !== void 0)
|
|
3044
|
+
query.set("maxBytes", String(opts.maxBytes));
|
|
3045
|
+
return this.get(
|
|
3046
|
+
`/file/bytes?${query.toString()}`,
|
|
3047
|
+
"GET /workspaces/:workspace/file/bytes",
|
|
3048
|
+
clientId
|
|
3049
|
+
);
|
|
3050
|
+
}
|
|
3051
|
+
fileStat(filePath) {
|
|
3052
|
+
const query = new URLSearchParams({ path: filePath });
|
|
3053
|
+
return this.get(
|
|
3054
|
+
`/stat?${query.toString()}`,
|
|
3055
|
+
"GET /workspaces/:workspace/stat"
|
|
3056
|
+
);
|
|
3057
|
+
}
|
|
3058
|
+
dirList(dirPath) {
|
|
3059
|
+
const query = new URLSearchParams({ path: dirPath });
|
|
3060
|
+
return this.get(
|
|
3061
|
+
`/list?${query.toString()}`,
|
|
3062
|
+
"GET /workspaces/:workspace/list"
|
|
3063
|
+
);
|
|
3064
|
+
}
|
|
3065
|
+
glob(pattern) {
|
|
3066
|
+
const query = new URLSearchParams({ pattern });
|
|
3067
|
+
return this.get(
|
|
3068
|
+
`/glob?${query.toString()}`,
|
|
3069
|
+
"GET /workspaces/:workspace/glob"
|
|
3070
|
+
);
|
|
3071
|
+
}
|
|
3072
|
+
writeWorkspaceFile(req, clientId) {
|
|
3073
|
+
return this.post(
|
|
3074
|
+
"/file/write",
|
|
3075
|
+
"POST /workspaces/:workspace/file/write",
|
|
3076
|
+
req,
|
|
3077
|
+
clientId
|
|
3078
|
+
);
|
|
3079
|
+
}
|
|
3080
|
+
editWorkspaceFile(req, clientId) {
|
|
3081
|
+
return this.post(
|
|
3082
|
+
"/file/edit",
|
|
3083
|
+
"POST /workspaces/:workspace/file/edit",
|
|
3084
|
+
req,
|
|
3085
|
+
clientId
|
|
3086
|
+
);
|
|
3087
|
+
}
|
|
3088
|
+
workspaceSettings(opts) {
|
|
3089
|
+
return this.get(
|
|
3090
|
+
"/settings",
|
|
3091
|
+
"GET /workspaces/:workspace/settings",
|
|
3092
|
+
opts?.clientId
|
|
3093
|
+
);
|
|
3094
|
+
}
|
|
3095
|
+
setWorkspaceSetting(scope, key, value, opts) {
|
|
3096
|
+
return this.post(
|
|
3097
|
+
"/settings",
|
|
3098
|
+
"POST /workspaces/:workspace/settings",
|
|
3099
|
+
{ scope, key, value },
|
|
3100
|
+
opts?.clientId
|
|
3101
|
+
);
|
|
3102
|
+
}
|
|
3103
|
+
workspaceTrust(opts) {
|
|
3104
|
+
return this.get(
|
|
3105
|
+
"/trust",
|
|
3106
|
+
"GET /workspaces/:workspace/trust",
|
|
3107
|
+
opts?.clientId
|
|
3108
|
+
);
|
|
3109
|
+
}
|
|
3110
|
+
requestWorkspaceTrustChange(request, clientId) {
|
|
3111
|
+
return this.post(
|
|
3112
|
+
"/trust/request",
|
|
3113
|
+
"POST /workspaces/:workspace/trust/request",
|
|
3114
|
+
request,
|
|
3115
|
+
clientId
|
|
3116
|
+
);
|
|
3117
|
+
}
|
|
3118
|
+
workspacePermissions(opts) {
|
|
3119
|
+
return this.get(
|
|
3120
|
+
"/permissions",
|
|
3121
|
+
"GET /workspaces/:workspace/permissions",
|
|
3122
|
+
opts?.clientId
|
|
3123
|
+
);
|
|
3124
|
+
}
|
|
3125
|
+
setWorkspacePermissionRules(ruleType, rules, opts) {
|
|
3126
|
+
return this.post(
|
|
3127
|
+
"/permissions",
|
|
3128
|
+
"POST /workspaces/:workspace/permissions",
|
|
3129
|
+
{ scope: "workspace", ruleType, rules: [...rules] },
|
|
3130
|
+
opts?.clientId
|
|
3131
|
+
);
|
|
3132
|
+
}
|
|
3133
|
+
setWorkspaceToolEnabled(toolName, enabled, opts) {
|
|
3134
|
+
return this.post(
|
|
3135
|
+
`/tools/${urlEncode(toolName)}/enable`,
|
|
3136
|
+
"POST /workspaces/:workspace/tools/:name/enable",
|
|
3137
|
+
{ enabled },
|
|
3138
|
+
opts?.clientId
|
|
3139
|
+
);
|
|
3140
|
+
}
|
|
3141
|
+
restartMcpServer(serverName, opts) {
|
|
3142
|
+
const query = opts?.entryIndex === void 0 ? "" : `?entryIndex=${urlEncode(String(opts.entryIndex))}`;
|
|
3143
|
+
return this.post(
|
|
3144
|
+
`/mcp/${urlEncode(serverName)}/restart${query}`,
|
|
3145
|
+
"POST /workspaces/:workspace/mcp/:server/restart",
|
|
3146
|
+
{},
|
|
3147
|
+
opts?.clientId,
|
|
3148
|
+
opts?.timeoutMs ?? MCP_RESTART_DEFAULT_TIMEOUT_MS
|
|
3149
|
+
);
|
|
3150
|
+
}
|
|
3151
|
+
reload(opts) {
|
|
3152
|
+
return this.post(
|
|
3153
|
+
"/reload",
|
|
3154
|
+
"POST /workspaces/:workspace/reload",
|
|
3155
|
+
{},
|
|
3156
|
+
opts?.clientId,
|
|
3157
|
+
opts?.timeoutMs
|
|
3158
|
+
);
|
|
3159
|
+
}
|
|
3160
|
+
initWorkspace(opts) {
|
|
3161
|
+
return this.post(
|
|
3162
|
+
"/init",
|
|
3163
|
+
"POST /workspaces/:workspace/init",
|
|
3164
|
+
opts?.force === true ? { force: true } : {},
|
|
3165
|
+
opts?.clientId
|
|
3166
|
+
);
|
|
3167
|
+
}
|
|
3168
|
+
get(path, label, clientId) {
|
|
3169
|
+
return this.client.workspaceJsonRequest(
|
|
3170
|
+
this.workspaceSelector,
|
|
3171
|
+
path,
|
|
3172
|
+
label,
|
|
3173
|
+
{ clientId }
|
|
3174
|
+
);
|
|
3175
|
+
}
|
|
3176
|
+
post(path, label, body, clientId, timeoutMs) {
|
|
3177
|
+
return this.client.workspaceJsonRequest(
|
|
3178
|
+
this.workspaceSelector,
|
|
3179
|
+
path,
|
|
3180
|
+
label,
|
|
3181
|
+
{ method: "POST", body, clientId, timeoutMs }
|
|
3182
|
+
);
|
|
3183
|
+
}
|
|
3184
|
+
};
|
|
2717
3185
|
function composeAbortSignals2(signals) {
|
|
2718
3186
|
const anyFn = AbortSignal.any;
|
|
2719
3187
|
if (typeof anyFn === "function") return anyFn.call(AbortSignal, signals);
|
|
@@ -2807,7 +3275,7 @@ var DaemonSessionClient = class _DaemonSessionClient {
|
|
|
2807
3275
|
*/
|
|
2808
3276
|
static async createOrAttach(client, req = {}, clientId) {
|
|
2809
3277
|
const session = await client.createOrAttachSession(req, clientId);
|
|
2810
|
-
const lastEventId = !session.attached || req.modelServiceId ? 0 : void 0;
|
|
3278
|
+
const lastEventId = !session.attached || req.modelServiceId || req.approvalMode ? 0 : void 0;
|
|
2811
3279
|
return new _DaemonSessionClient({
|
|
2812
3280
|
client,
|
|
2813
3281
|
session,
|
|
@@ -3110,6 +3578,9 @@ var DaemonSessionClient = class _DaemonSessionClient {
|
|
|
3110
3578
|
async context() {
|
|
3111
3579
|
return await this.client.sessionContext(this.sessionId, this.clientId);
|
|
3112
3580
|
}
|
|
3581
|
+
async status() {
|
|
3582
|
+
return await this.client.sessionStatus(this.sessionId, this.clientId);
|
|
3583
|
+
}
|
|
3113
3584
|
async contextUsage(opts = {}) {
|
|
3114
3585
|
return await this.client.sessionContextUsage(
|
|
3115
3586
|
this.sessionId,
|
|
@@ -3322,6 +3793,11 @@ var DAEMON_KNOWN_EVENT_TYPE_VALUES = [
|
|
|
3322
3793
|
// reseeds state. Synthetic (no `id`) so it doesn't burn a slot
|
|
3323
3794
|
// in the per-session monotonic sequence.
|
|
3324
3795
|
"state_resync_required",
|
|
3796
|
+
// Synthetic marker prepended to a bounded `/session/:id/load` replay
|
|
3797
|
+
// snapshot when older replay history was dropped from the daemon's
|
|
3798
|
+
// in-memory window. This is NOT a resync request: consumers should render
|
|
3799
|
+
// it as transcript status and continue applying the retained snapshot.
|
|
3800
|
+
"history_truncated",
|
|
3325
3801
|
// MCP guardrail push events. See `mcp_guardrail_events` capability
|
|
3326
3802
|
// tag. Both fire on the per-session SSE bus; consumers should
|
|
3327
3803
|
// pre-flight `caps.features.includes('mcp_guardrail_events')`
|
|
@@ -3418,6 +3894,7 @@ var MAX_PENDING_PER_SESSION = 64;
|
|
|
3418
3894
|
var MAX_FORBIDDEN_VOTES_PER_SESSION = 32;
|
|
3419
3895
|
var RESYNC_PASSTHROUGH_TYPES = /* @__PURE__ */ new Set([
|
|
3420
3896
|
"state_resync_required",
|
|
3897
|
+
"history_truncated",
|
|
3421
3898
|
"session_died",
|
|
3422
3899
|
"session_closed",
|
|
3423
3900
|
"client_evicted",
|
|
@@ -3475,6 +3952,8 @@ function createDaemonSessionViewState(seed = {}) {
|
|
|
3475
3952
|
awaitingResync: seed.awaitingResync ?? false,
|
|
3476
3953
|
resyncRequiredCount: seed.resyncRequiredCount ?? 0,
|
|
3477
3954
|
lastResyncRequired: seed.lastResyncRequired,
|
|
3955
|
+
historyTruncatedCount: seed.historyTruncatedCount ?? 0,
|
|
3956
|
+
lastHistoryTruncated: seed.lastHistoryTruncated,
|
|
3478
3957
|
lastFollowupSuggestion: seed.lastFollowupSuggestion,
|
|
3479
3958
|
rewindCount: seed.rewindCount ?? 0,
|
|
3480
3959
|
lastRewind: seed.lastRewind,
|
|
@@ -3537,6 +4016,8 @@ function asKnownDaemonEvent(event) {
|
|
|
3537
4016
|
return isStreamErrorData(event.data) ? event : void 0;
|
|
3538
4017
|
case "state_resync_required":
|
|
3539
4018
|
return isStateResyncRequiredData(event.data) ? event : void 0;
|
|
4019
|
+
case "history_truncated":
|
|
4020
|
+
return isHistoryTruncatedData(event.data) ? event : void 0;
|
|
3540
4021
|
case "mcp_budget_warning":
|
|
3541
4022
|
return isMcpBudgetWarningData(event.data) ? event : void 0;
|
|
3542
4023
|
case "mcp_child_refused_batch":
|
|
@@ -3773,6 +4254,12 @@ function reduceDaemonSessionEvent(state, rawEvent) {
|
|
|
3773
4254
|
resyncRequiredCount: base.resyncRequiredCount + 1,
|
|
3774
4255
|
lastResyncRequired: event.data
|
|
3775
4256
|
};
|
|
4257
|
+
case "history_truncated":
|
|
4258
|
+
return {
|
|
4259
|
+
...base,
|
|
4260
|
+
historyTruncatedCount: base.historyTruncatedCount + 1,
|
|
4261
|
+
lastHistoryTruncated: event.data
|
|
4262
|
+
};
|
|
3776
4263
|
case "mcp_budget_warning":
|
|
3777
4264
|
return {
|
|
3778
4265
|
...base,
|
|
@@ -4136,6 +4623,14 @@ function isStateResyncRequiredData(value) {
|
|
|
4136
4623
|
return isRecord(value) && isNonEmptyString(value["reason"]) && isFiniteNumber(value["lastDeliveredId"]) && isFiniteNumber(value["earliestAvailableId"]);
|
|
4137
4624
|
}
|
|
4138
4625
|
__name(isStateResyncRequiredData, "isStateResyncRequiredData");
|
|
4626
|
+
function isHistoryTruncatedData(value) {
|
|
4627
|
+
if (!isRecord(value) || value["reason"] !== "replay_window_exceeded" || !isFiniteNumber(value["truncatedEvents"]) || !isFiniteNumber(value["retainedEvents"]) || !isFiniteNumber(value["maxBytes"]) || typeof value["fullTranscriptAvailable"] !== "boolean") {
|
|
4628
|
+
return false;
|
|
4629
|
+
}
|
|
4630
|
+
const truncatedTurns = value["truncatedTurns"];
|
|
4631
|
+
return isNonNegativeInteger(value["truncatedEvents"]) && isNonNegativeInteger(value["retainedEvents"]) && isNonNegativeInteger(value["maxBytes"]) && (truncatedTurns === void 0 || isNonNegativeInteger(truncatedTurns));
|
|
4632
|
+
}
|
|
4633
|
+
__name(isHistoryTruncatedData, "isHistoryTruncatedData");
|
|
4139
4634
|
function isSlowClientWarningData(value) {
|
|
4140
4635
|
if (!isRecord(value)) return false;
|
|
4141
4636
|
const threshold = value["threshold"];
|
|
@@ -4372,6 +4867,10 @@ function isOptionalNumberOrNull(value) {
|
|
|
4372
4867
|
return value === void 0 || value === null || isFiniteNumber(value);
|
|
4373
4868
|
}
|
|
4374
4869
|
__name(isOptionalNumberOrNull, "isOptionalNumberOrNull");
|
|
4870
|
+
function isNonNegativeInteger(value) {
|
|
4871
|
+
return isFiniteNumber(value) && Number.isInteger(value) && value >= 0;
|
|
4872
|
+
}
|
|
4873
|
+
__name(isNonNegativeInteger, "isNonNegativeInteger");
|
|
4375
4874
|
function isOptionalStringOrNull(value) {
|
|
4376
4875
|
return value === void 0 || value === null || typeof value === "string";
|
|
4377
4876
|
}
|
|
@@ -4780,6 +5279,8 @@ function normalizeDaemonEvent(event, opts = {}) {
|
|
|
4780
5279
|
}
|
|
4781
5280
|
case "state_resync_required":
|
|
4782
5281
|
return normalizeStateResyncRequired(event, base);
|
|
5282
|
+
case "history_truncated":
|
|
5283
|
+
return normalizeHistoryTruncated(event, base);
|
|
4783
5284
|
case "session_rewound":
|
|
4784
5285
|
return normalizeSessionRewound(event, base);
|
|
4785
5286
|
case "session_branched":
|
|
@@ -4861,6 +5362,8 @@ function normalizeDaemonEvent(event, opts = {}) {
|
|
|
4861
5362
|
return normalizeMcpServerRestartRefused(event, base);
|
|
4862
5363
|
case "extensions_changed":
|
|
4863
5364
|
return normalizeExtensionsChanged(event, base);
|
|
5365
|
+
case "artifact_changed":
|
|
5366
|
+
return normalizeArtifactChanged(event, base);
|
|
4864
5367
|
// ── Auth device-flow events (RFC 8628) ─────────────────
|
|
4865
5368
|
case "auth_device_flow_started":
|
|
4866
5369
|
return normalizeAuthDeviceFlowStarted(event, base);
|
|
@@ -4905,6 +5408,24 @@ function normalizeStateResyncRequired(event, base) {
|
|
|
4905
5408
|
];
|
|
4906
5409
|
}
|
|
4907
5410
|
__name(normalizeStateResyncRequired, "normalizeStateResyncRequired");
|
|
5411
|
+
function normalizeHistoryTruncated(event, base) {
|
|
5412
|
+
const reason = getString2(event.data, "reason");
|
|
5413
|
+
const truncatedEvents = numberField(event.data, "truncatedEvents");
|
|
5414
|
+
const retainedEvents = numberField(event.data, "retainedEvents");
|
|
5415
|
+
const maxBytes = numberField(event.data, "maxBytes");
|
|
5416
|
+
if (reason !== "replay_window_exceeded" || truncatedEvents === void 0 || retainedEvents === void 0 || maxBytes === void 0 || !isRecord2(event.data) || typeof event.data["fullTranscriptAvailable"] !== "boolean") {
|
|
5417
|
+
return fallbackDebug(event, base, "malformed history_truncated payload");
|
|
5418
|
+
}
|
|
5419
|
+
return [
|
|
5420
|
+
{
|
|
5421
|
+
...base,
|
|
5422
|
+
type: "status",
|
|
5423
|
+
text: `History truncated: retained ${retainedEvents}, dropped ${truncatedEvents} (window ${maxBytes} bytes).`,
|
|
5424
|
+
source: "history_truncated"
|
|
5425
|
+
}
|
|
5426
|
+
];
|
|
5427
|
+
}
|
|
5428
|
+
__name(normalizeHistoryTruncated, "normalizeHistoryTruncated");
|
|
4908
5429
|
function normalizeSessionRewound(event, base) {
|
|
4909
5430
|
const promptId = getString2(event.data, "promptId");
|
|
4910
5431
|
const targetTurnIndex = numberField(event.data, "targetTurnIndex");
|
|
@@ -5440,6 +5961,27 @@ function normalizeSessionMetadataUpdated(event, base) {
|
|
|
5440
5961
|
];
|
|
5441
5962
|
}
|
|
5442
5963
|
__name(normalizeSessionMetadataUpdated, "normalizeSessionMetadataUpdated");
|
|
5964
|
+
function normalizeArtifactChanged(event, base) {
|
|
5965
|
+
const sessionId = getString2(event.data, "sessionId");
|
|
5966
|
+
const change = isRecord2(event.data) ? event.data["change"] : void 0;
|
|
5967
|
+
if (!sessionId || !isRecord2(change)) {
|
|
5968
|
+
return fallbackDebug(event, base, "malformed artifact_changed payload");
|
|
5969
|
+
}
|
|
5970
|
+
const action = getString2(change, "action");
|
|
5971
|
+
const artifactId = getString2(change, "artifactId");
|
|
5972
|
+
if (!action || !artifactId) {
|
|
5973
|
+
return fallbackDebug(event, base, "missing action or artifactId");
|
|
5974
|
+
}
|
|
5975
|
+
return [
|
|
5976
|
+
{
|
|
5977
|
+
...base,
|
|
5978
|
+
type: "session.artifact.changed",
|
|
5979
|
+
sessionId,
|
|
5980
|
+
change
|
|
5981
|
+
}
|
|
5982
|
+
];
|
|
5983
|
+
}
|
|
5984
|
+
__name(normalizeArtifactChanged, "normalizeArtifactChanged");
|
|
5443
5985
|
function normalizeApprovalModeChanged(event, base) {
|
|
5444
5986
|
const sessionId = getString2(event.data, "sessionId");
|
|
5445
5987
|
const previous = getString2(event.data, "previous");
|
|
@@ -6439,6 +6981,7 @@ function applyDaemonTranscriptEvent(next, event) {
|
|
|
6439
6981
|
next.approvalMode = event.next;
|
|
6440
6982
|
break;
|
|
6441
6983
|
case "session.metadata.changed":
|
|
6984
|
+
case "session.artifact.changed":
|
|
6442
6985
|
case "session.available_commands":
|
|
6443
6986
|
break;
|
|
6444
6987
|
case "session.state_resync_required":
|
|
@@ -7539,6 +8082,12 @@ function daemonUiEventToTerminalText(event) {
|
|
|
7539
8082
|
`metadata: ${event.displayName ?? "(no display name)"}`,
|
|
7540
8083
|
"36"
|
|
7541
8084
|
);
|
|
8085
|
+
case "session.artifact.changed":
|
|
8086
|
+
return terminalLine(
|
|
8087
|
+
"artifact",
|
|
8088
|
+
`${event.change.action} ${event.change.artifact?.title ?? event.change.artifactId}`,
|
|
8089
|
+
"36"
|
|
8090
|
+
);
|
|
7542
8091
|
case "session.approval_mode.changed":
|
|
7543
8092
|
return terminalLine(
|
|
7544
8093
|
"approval-mode",
|
|
@@ -8643,6 +9192,7 @@ export {
|
|
|
8643
9192
|
PENDING_PROMPT_COMPLETED_EVENT,
|
|
8644
9193
|
PENDING_PROMPT_STARTED_EVENT,
|
|
8645
9194
|
SseFramingError,
|
|
9195
|
+
WorkspaceDaemonClient,
|
|
8646
9196
|
appendLocalUserTranscriptMessage,
|
|
8647
9197
|
asKnownDaemonEvent,
|
|
8648
9198
|
createDaemonAuthState,
|