@qwen-code/qwen-code 0.22.0 → 0.22.2-nightly.20260828.7357136dd1
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/computer-use/SKILL.md +229 -0
- package/bundled/computer-use/agents/openai.yaml +4 -0
- package/bundled/coordinate/SKILL.md +5 -5
- package/bundled/goal-draft/SKILL.md +109 -0
- package/bundled/qc-helper/docs/configuration/auth.md +7 -7
- package/bundled/qc-helper/docs/configuration/model-providers.md +70 -9
- package/bundled/qc-helper/docs/configuration/settings.md +48 -48
- package/bundled/qc-helper/docs/extension/introduction.md +3 -1
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -0
- package/bundled/qc-helper/docs/features/channels/dws.md +120 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +37 -6
- package/bundled/qc-helper/docs/features/code-review.md +27 -23
- package/bundled/qc-helper/docs/features/commands.md +4 -3
- package/bundled/qc-helper/docs/features/computer-use.md +57 -51
- package/bundled/qc-helper/docs/features/goals.md +58 -0
- package/bundled/qc-helper/docs/features/headless.md +13 -11
- package/bundled/qc-helper/docs/features/mcp.md +35 -12
- package/bundled/qc-helper/docs/features/status-line.md +3 -3
- package/bundled/qc-helper/docs/features/sub-agents.md +1 -1
- package/bundled/qc-helper/docs/features/worktree.md +1 -1
- package/bundled/qc-helper/docs/overview.md +1 -1
- package/bundled/qc-helper/docs/quickstart.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +29 -6
- package/bundled/review/SKILL.md +185 -435
- package/bundled/review/references/aone.md +18 -0
- package/bundled/review/references/persistence.md +109 -0
- package/bundled/review/references/posting.md +272 -0
- package/chunks/MaxSizedBox-LMWXCLDV.js +110 -0
- package/chunks/{StandaloneSessionPicker-KTHPCSR6.js → StandaloneSessionPicker-W3F7U3JL.js} +87 -88
- package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
- package/chunks/{acpAgent-CRY3JZ5O.js → acpAgent-EYZ6EEHD.js} +3223 -2145
- package/chunks/agent-RBLGBY65.js +95 -0
- package/chunks/agent-headless-L5T4Y4OZ.js +85 -0
- package/chunks/{anthropicContentGenerator-Y2OX6LS4.js → anthropicContentGenerator-GMHML35Q.js} +128 -59
- package/chunks/{artifact-tool-SBXMTVCB.js → artifact-tool-XSMPHZBT.js} +11 -3
- package/chunks/{askUserQuestion-KEQJRFD6.js → askUserQuestion-4SWJY65V.js} +2 -2
- package/chunks/bridge-5LR2F2ND.js +119 -0
- package/chunks/{ca-D3F4S6NG.js → ca-7HPYOYSZ.js} +3 -0
- package/chunks/{channel-management-service-IRTT7RNE.js → channel-management-service-KHR3N6CH.js} +6 -6
- package/chunks/channel-settings-store-4FOAZW72.js +120 -0
- package/chunks/{channel-worker-group-BJNMR2MP.js → channel-worker-group-6NA6BBZV.js} +9 -7
- package/chunks/{channel-worker-manager-EMA7CQDJ.js → channel-worker-manager-NEZ2J6RK.js} +11 -8
- package/chunks/{channel-worker-supervisor-F6I6WSWW.js → channel-worker-supervisor-FKU7DIHJ.js} +12 -6
- package/chunks/{chunk-HDKCKCYO.js → chunk-23RFD54N.js} +1 -1
- package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
- package/chunks/{chunk-KM73TBQ4.js → chunk-2LD5U7Q3.js} +31 -0
- package/chunks/{chunk-GIWB5QLV.js → chunk-2SXSLSQE.js} +4 -4
- package/chunks/chunk-2TNL5KPM.js +49 -0
- package/chunks/chunk-335CJSNF.js +2320 -0
- package/chunks/chunk-36LGBEM6.js +130 -0
- package/chunks/{chunk-O5BDEWBC.js → chunk-3JXM2CVW.js} +3 -3
- package/chunks/{chunk-2E3V7G6Y.js → chunk-3K6TUZHS.js} +55 -50
- package/chunks/{chunk-WWUSHZ7M.js → chunk-3OOXT6CR.js} +5 -5
- package/chunks/{chunk-2UZJWSVD.js → chunk-3WK3QDNV.js} +2 -2
- package/chunks/{chunk-4J7OPYNS.js → chunk-3XOKEVII.js} +6 -6
- package/chunks/chunk-3Y34Q3JV.js +1584 -0
- package/chunks/{chunk-YMVFIYHV.js → chunk-42IDLQWS.js} +26 -20
- package/chunks/{chunk-7HFULI45.js → chunk-454XFGH4.js} +3 -3
- package/chunks/chunk-4CMJKUND.js +95 -0
- package/chunks/{chunk-XLDFW44M.js → chunk-4K7KNVWH.js} +3 -3
- package/chunks/{chunk-YDJRMQU4.js → chunk-4QHPPXK2.js} +16 -8
- package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
- package/chunks/{chunk-CXJHQVEK.js → chunk-5PA6UEYA.js} +4 -0
- package/chunks/{chunk-7NBVNAJJ.js → chunk-62GQFYID.js} +3 -3
- package/chunks/{chunk-JGUBDRBC.js → chunk-6DIGWMGT.js} +3 -3
- package/chunks/{chunk-X7V3N6YH.js → chunk-6JCGO55P.js} +885 -3380
- package/chunks/{chunk-HIK2OF33.js → chunk-6PJOTWAN.js} +1 -1
- package/chunks/{chunk-VUMLT7E5.js → chunk-6W2IK5KC.js} +956 -17
- package/chunks/{chunk-S4C4JJKE.js → chunk-6ZZBRRKQ.js} +5 -5
- package/chunks/{chunk-W4CRPSC5.js → chunk-7EQQR46F.js} +1 -1
- package/chunks/{chunk-PHJJ3RVO.js → chunk-7GWQW5ID.js} +7 -15
- package/chunks/chunk-7J6OTNGO.js +424 -0
- package/chunks/{chunk-URN2JIAQ.js → chunk-7TUBJBBJ.js} +5 -1
- package/chunks/{chunk-A5F63FEW.js → chunk-7VD6IPQM.js} +1 -1
- package/chunks/{chunk-36OF5PRW.js → chunk-ABS25QER.js} +7 -3
- package/chunks/{chunk-UU4WC7DK.js → chunk-AJGR6E6Z.js} +117 -30
- package/chunks/{chunk-MQP3MHWN.js → chunk-AU3MMVJF.js} +43 -20
- package/chunks/{chunk-ZS5BHEPD.js → chunk-AXC26UCQ.js} +1 -1
- package/chunks/{chunk-PDL6LKB5.js → chunk-AY3BNYEQ.js} +1 -1
- package/chunks/{chunk-O5Z7EB6Y.js → chunk-AYHQZBJ4.js} +170 -207
- package/chunks/{chunk-WRT324N6.js → chunk-B466ZSHZ.js} +3 -3
- package/chunks/{chunk-5XHAOUWD.js → chunk-B5OUL5EL.js} +3 -3
- package/chunks/{chunk-GAHYKJPV.js → chunk-B5PHIJGI.js} +186 -60
- package/chunks/{chunk-IBJ5S45N.js → chunk-B7CDU2SL.js} +2 -2
- package/chunks/{chunk-UZPYR3EV.js → chunk-BFPESSTR.js} +1 -1
- package/chunks/{chunk-43T5WDQ7.js → chunk-BFSFJR3D.js} +1 -1
- package/chunks/{chunk-IWOWEENB.js → chunk-BKWNKLZB.js} +404 -44
- package/chunks/{chunk-3CLIDIVQ.js → chunk-BOWFGCEU.js} +3 -3
- package/chunks/{chunk-BB5IMQCV.js → chunk-BPAKYXQ3.js} +2 -2
- package/chunks/{chunk-ZRYQMWEP.js → chunk-BWORX6FA.js} +2 -2
- package/chunks/{chunk-AP3B7LKD.js → chunk-BXDAPVQU.js} +2 -2
- package/chunks/{chunk-NUGZAFR2.js → chunk-C2X7KY45.js} +147 -6
- package/chunks/{chunk-MZKWFWVG.js → chunk-C3KURPP7.js} +6 -6
- package/chunks/{chunk-WZDM44SB.js → chunk-CAJTKR6W.js} +7 -7
- package/chunks/{chunk-DB2OKNTU.js → chunk-CFJY4DGX.js} +2 -2
- package/chunks/{chunk-QKBYFU2Q.js → chunk-CFKIH3D3.js} +21 -1
- package/chunks/{chunk-I432KXWD.js → chunk-CMHFCLBU.js} +1 -1
- package/chunks/{create-sub-session-XBCVGNFU.js → chunk-CQH5KTKC.js} +4 -6
- package/chunks/{chunk-5HJUPACR.js → chunk-CRKKHXTI.js} +185 -174
- package/chunks/{chunk-L4HVF7LM.js → chunk-CYAUBK46.js} +3 -3
- package/chunks/{chunk-AZF6SME3.js → chunk-D5LUXLUH.js} +3 -3
- package/chunks/{chunk-RPJQ3O4M.js → chunk-DFDWJE6Z.js} +60 -53
- package/chunks/{chunk-KSPRQSB4.js → chunk-DIMEPKCW.js} +52 -12
- package/chunks/chunk-DJBQCO2E.js +842 -0
- package/chunks/{chunk-OVH5Y7KS.js → chunk-DP4MWIM3.js} +19 -3
- package/chunks/{chunk-LI4YHTQK.js → chunk-DYXFD5RO.js} +182 -3
- package/chunks/{chunk-NW35NVFN.js → chunk-E3XVSVKK.js} +26 -4
- package/chunks/{chunk-VSNPOSDN.js → chunk-EB6QRGHM.js} +108 -13
- package/chunks/{chunk-FVBVJEBG.js → chunk-EKNBU2X7.js} +10 -8
- package/chunks/{chunk-DJEHYM4H.js → chunk-EKSCLBBF.js} +3 -3
- package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
- package/chunks/chunk-EW5VVLJT.js +3525 -0
- package/chunks/{chunk-T6XLJRQY.js → chunk-EWIQ3NAE.js} +38774 -6955
- package/chunks/{chunk-4XPSVIED.js → chunk-FALBWZF4.js} +6 -6
- package/chunks/chunk-FBX2SDQ4.js +48 -0
- package/chunks/{chunk-VMJL7RH6.js → chunk-FEHMA4RO.js} +539 -651
- package/chunks/{chunk-PXOJLJ5W.js → chunk-FMFBLTLY.js} +606 -223
- package/chunks/{chunk-ZLCT4C5A.js → chunk-FTF2YIZ5.js} +1 -1
- package/chunks/{chunk-IOSEW6KP.js → chunk-G6FECKTJ.js} +9 -6
- package/chunks/{chunk-RDG44S5I.js → chunk-GGNE3JAW.js} +2 -2
- package/chunks/chunk-GYTKQYDB.js +23 -0
- package/chunks/{chunk-B6UBOIFE.js → chunk-H33EQVMG.js} +14 -11
- package/chunks/chunk-H72BQNM3.js +645 -0
- package/chunks/{chunk-YZBDKFRQ.js → chunk-HGIMWQVT.js} +995 -892
- package/chunks/chunk-HOCJDUFY.js +20 -0
- package/chunks/{chunk-6UQSU7CQ.js → chunk-HPXV655A.js} +60 -107
- package/chunks/{chunk-45NQKMYB.js → chunk-HVC3PNVC.js} +1 -1
- package/chunks/{chunk-QJHPWLZC.js → chunk-HYDJDQGJ.js} +1 -1
- package/chunks/{chunk-7DMTAQJ6.js → chunk-IB7FQJRY.js} +163 -57
- package/chunks/{chunk-AW27A43Y.js → chunk-ICURCKIU.js} +1428 -120
- package/chunks/{chunk-4F5WV4RF.js → chunk-ISKH4QX3.js} +288 -15
- package/chunks/{chunk-SE55HQGF.js → chunk-J6S24ZJE.js} +92 -70
- package/chunks/{chunk-7DYNJFES.js → chunk-JB4JIVTJ.js} +6 -1
- package/chunks/{chunk-OARZJFZX.js → chunk-JN4IWWMN.js} +4 -4
- package/chunks/{chunk-6PCOVQO2.js → chunk-JUUBLSZU.js} +8 -8
- package/chunks/{chunk-FEMQ6Y7W.js → chunk-JWALNCLT.js} +47 -126
- package/chunks/{chunk-TBVSALA3.js → chunk-K5KXUXWC.js} +3 -3
- package/chunks/{chunk-XYQHT3AW.js → chunk-KTJFDCX4.js} +2 -2
- package/chunks/{chunk-6FRJEE2S.js → chunk-LEFCFTEX.js} +6 -6
- package/chunks/{chunk-BUGYW6FB.js → chunk-LEGTMYAE.js} +1 -1
- package/chunks/{chunk-MPHLIJYL.js → chunk-LLZA2IK3.js} +20 -8
- package/chunks/{chunk-BEGIBJAZ.js → chunk-LNETQKBE.js} +4 -4
- package/chunks/{chunk-KVGR4MCF.js → chunk-LUEHOUHM.js} +3 -3
- package/chunks/{chunk-2A4C2MEG.js → chunk-LVPZO674.js} +35 -12
- package/chunks/{chunk-25NESM4G.js → chunk-M4ORUPYI.js} +29 -5
- package/chunks/{chunk-VFACN2CE.js → chunk-M6FOJXW3.js} +1 -1
- package/chunks/{chunk-FYZMB6DB.js → chunk-MAYHGRP4.js} +12 -12
- package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
- package/chunks/{chunk-ZRFUT5VV.js → chunk-MTJN7FOT.js} +7 -7
- package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
- package/chunks/{chunk-2TRNCJK4.js → chunk-NIFYWDYN.js} +1 -1
- package/chunks/{chunk-SQS55KR4.js → chunk-NU7RKEZR.js} +2 -2
- package/chunks/{chunk-U2UYQMM6.js → chunk-NXMBRVMQ.js} +3 -3
- package/chunks/chunk-OI4NY7RA.js +346 -0
- package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
- package/chunks/{chunk-K52PZNU4.js → chunk-PDQGMSZK.js} +2 -2
- package/chunks/{chunk-PZRUV52H.js → chunk-PPKZ7JOE.js} +20 -2
- package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
- package/chunks/{chunk-AO4M6NMD.js → chunk-PWIGAMA4.js} +146 -27
- package/chunks/{chunk-S3G6YFQC.js → chunk-QFCDF5PL.js} +1 -1
- package/chunks/chunk-QHMLYMMS.js +32 -0
- package/chunks/{chunk-5XUTPXQU.js → chunk-QPTRRPZU.js} +47 -13
- package/chunks/{chunk-UUQFJILB.js → chunk-RFI4YGMR.js} +34 -267
- package/chunks/{chunk-A6NRNRKE.js → chunk-RFIDDFAL.js} +1 -1
- package/chunks/chunk-RKFGE7JH.js +93 -0
- package/chunks/chunk-RNVFRIOO.js +275 -0
- package/chunks/{chunk-WU5E4HMO.js → chunk-RU7BK6B3.js} +1 -1
- package/chunks/{chunk-J5ZDDUKM.js → chunk-RVXDXY6I.js} +4 -4
- package/chunks/{chunk-OE52YHCZ.js → chunk-RWZB422L.js} +11 -11
- package/chunks/chunk-RXFQM6FQ.js +42 -0
- package/chunks/{chunk-MHG6NDS6.js → chunk-RYNZQGXN.js} +19 -2
- package/chunks/{chunk-4CWDWDL6.js → chunk-SJ5ERAW3.js} +1 -1
- package/chunks/{chunk-Q54XG7IX.js → chunk-SMPR7SPO.js} +1 -1
- package/chunks/{chunk-UIRLQ3N7.js → chunk-SRZZY4IY.js} +3 -3
- package/chunks/{chunk-ND7NOI4P.js → chunk-STUJ7IMZ.js} +0 -92
- package/chunks/{chunk-VYC7XFYV.js → chunk-SUX7HDNA.js} +5 -5
- package/chunks/{chunk-ZZUVC6RI.js → chunk-SVNO44PF.js} +3 -3
- package/chunks/{chunk-FDD2IUEL.js → chunk-SZLBBZH4.js} +370 -35
- package/chunks/{chunk-GHY5OIYP.js → chunk-T2NKRHZZ.js} +13 -13
- package/chunks/chunk-T4EFG2P5.js +113 -0
- package/chunks/{chunk-BMCSKS37.js → chunk-TLHUNMO7.js} +6 -6
- package/chunks/{chunk-JOLJTKIG.js → chunk-TPI7O7HR.js} +1 -1
- package/chunks/{chunk-6QSA4JHL.js → chunk-TQHGJYR3.js} +4492 -1121
- package/chunks/{chunk-ISJMN3ML.js → chunk-TTX2JUE6.js} +1 -1
- package/chunks/{chunk-EFB657PR.js → chunk-TW3E6YNO.js} +3 -3
- package/chunks/{chunk-LD5VIJ7S.js → chunk-TWSKM647.js} +1 -1
- package/chunks/chunk-U54AYGEC.js +337 -0
- package/chunks/{chunk-A5F2YNO6.js → chunk-UHQFIS7N.js} +260 -10
- package/chunks/{chunk-6NFAEG54.js → chunk-UTLCH2FK.js} +24 -13
- package/chunks/{chunk-7JBHIQS2.js → chunk-UY3PBNY3.js} +19 -37
- package/chunks/{chunk-DWCKACFL.js → chunk-V2NDP3I4.js} +2 -2
- package/chunks/{chunk-2GXYDNXP.js → chunk-V2QDDC5J.js} +19 -9
- package/chunks/{chunk-VLRBJ24J.js → chunk-V5J4J5TP.js} +2 -2
- package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
- package/chunks/{chunk-RDQ7QB4Y.js → chunk-VTHREBQM.js} +2 -2
- package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
- package/chunks/{chunk-62JOGZL5.js → chunk-W6DUQ5GA.js} +11497 -10502
- package/chunks/{chunk-P47E4SJC.js → chunk-WALC5VJH.js} +4 -4
- package/chunks/{chunk-3ZFJUBTP.js → chunk-WAOIHTJS.js} +1 -1
- package/chunks/{chunk-KIVGVFMM.js → chunk-WBHKK3CU.js} +16 -4
- package/chunks/{chunk-XZJKSETB.js → chunk-WXEA74YB.js} +3 -3
- package/chunks/{chunk-VEND4KA4.js → chunk-X3ZRTCJD.js} +1 -1
- package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
- package/chunks/{chunk-XL5K4SVK.js → chunk-XF63PKEN.js} +1 -1
- package/chunks/{chunk-LDGWX737.js → chunk-XLLQJRAH.js} +323 -510
- package/chunks/{chunk-2Z6LSQMF.js → chunk-XQFT3QUF.js} +1 -1
- package/chunks/{chunk-P3QQPMQA.js → chunk-XZA32HII.js} +4 -4
- package/chunks/{chunk-C72BXMJ5.js → chunk-Y3QL45LS.js} +1 -1
- package/chunks/{chunk-QS4ENGVF.js → chunk-Y4TPOUEV.js} +17 -8
- package/chunks/{chunk-AVCCKIZ6.js → chunk-YRZX2PHA.js} +1 -1
- package/chunks/{chunk-Z3JMO2CH.js → chunk-YTDVNSUQ.js} +1 -1
- package/chunks/{chunk-WS7PAXXR.js → chunk-YWQ237GX.js} +15 -199
- package/chunks/chunk-ZELCTN6Y.js +29 -0
- package/chunks/{chunk-TQOF5KBL.js → chunk-ZEZKIS2K.js} +0 -31
- package/chunks/{chunk-IIWGSX4L.js → chunk-ZTP35P4B.js} +1 -1
- package/chunks/{chunk-K623ENWT.js → chunk-ZU4UDIWX.js} +23 -1
- package/chunks/chunk-ZYNTSXWK.js +32 -0
- package/chunks/config-utils-JVGAP34H.js +113 -0
- package/chunks/contextCommand-XDB7OSO7.js +106 -0
- package/chunks/{core-runtime-CES6JSVV.js → core-runtime-XHYA2RH7.js} +66 -63
- package/chunks/create-sub-session-23ITIELI.js +17 -0
- package/chunks/{create-sub-session-UJTPMVOG.js → create-sub-session-MHYCFNCM.js} +168 -87
- package/chunks/{cron-create-IKA56DAF.js → cron-create-KJ4IY6PP.js} +57 -10
- package/chunks/{cron-delete-K5Q62EGH.js → cron-delete-MBLQCAYY.js} +4 -4
- package/chunks/{cron-list-QBFGAMP7.js → cron-list-DWH2PQ47.js} +4 -4
- package/chunks/{daemon-RZZUPGOJ.js → daemon-K5XS42ID.js} +567 -27
- package/chunks/{daemon-git-worktree-guard-3QY2BQYB.js → daemon-git-worktree-guard-V3P5XLHB.js} +339 -95
- package/chunks/daemon-status-provider-KKU7ZTLM.js +117 -0
- package/chunks/daemon-trust-policy-TZGK34DW.js +112 -0
- package/chunks/{daemon-trust-policy-monitor-TK4K7M63.js → daemon-trust-policy-monitor-F23DD2M4.js} +69 -69
- package/chunks/{de-RYUHH2C6.js → de-X6HLSIFE.js} +1 -0
- package/chunks/deferred-core-runtime-LKLGBCGZ.js +114 -0
- package/chunks/{display-image-OEJMJV3S.js → display-image-BE7I6ZB6.js} +5 -5
- package/chunks/{dist-5EV2G6MC.js → dist-4WXLCBDR.js} +1 -1
- package/chunks/{dist-ES6HNUW2.js → dist-5VXFRTWU.js} +525 -64
- package/chunks/{dist-ESS34DHC.js → dist-6BPYWHVD.js} +89 -65
- package/chunks/{dist-2OG3PGKO.js → dist-GFN5DCBX.js} +76 -67
- package/chunks/{dist-K7IQB53U.js → dist-HZNT6GQS.js} +1 -1
- package/chunks/{dist-J6P3C52Z.js → dist-LVZCXVPF.js} +99 -26
- package/chunks/{dist-LZO24N3E.js → dist-N6W6E753.js} +71 -64
- package/chunks/dist-QDLFKWOL.js +2512 -0
- package/chunks/{dist-VVQBOKDH.js → dist-SWQMYP2Q.js} +18 -16
- package/chunks/earlyInputCapture-NERYFYTR.js +107 -0
- package/chunks/{edit-A2633SLR.js → edit-ACCATIXB.js} +49 -51
- package/chunks/{en-3RHLPITS.js → en-YLXBXM4Z.js} +5 -1
- package/chunks/{enter-worktree-OIAHE2TB.js → enter-worktree-35QCAAFP.js} +7 -8
- package/chunks/{enterPlanMode-SUGIKLR7.js → enterPlanMode-NEN6EPVM.js} +48 -50
- package/chunks/environment-CKWHBC5T.js +129 -0
- package/chunks/errors-XTZPNQ77.js +113 -0
- package/chunks/{exit-worktree-3UT3SSWT.js → exit-worktree-XQD6D543.js} +7 -8
- package/chunks/exitPlanMode-CY344X5J.js +83 -0
- package/chunks/{fast-path-3AVP3G35.js → fast-path-YSOX4PAM.js} +31 -10
- package/chunks/{fast-path-settings-WHX3J3ZI.js → fast-path-settings-XMFBYFUH.js} +2 -2
- package/chunks/{fr-4PL5GHG4.js → fr-FTZWF462.js} +1 -0
- package/chunks/{gemini-7PVQWHTH.js → gemini-VQY2YCPH.js} +137 -129
- package/chunks/{geminiContentGenerator-B2FOJJDJ.js → geminiContentGenerator-PAPXNIGU.js} +16 -13
- package/chunks/{glob-7YGXE6OV.js → glob-GVCUSBBF.js} +48 -50
- package/chunks/{goal-tools-TLJCE7YZ.js → goal-tools-5STK6OXW.js} +77 -31
- package/chunks/{grep-6DV6LTON.js → grep-5GPICQBU.js} +6 -6
- package/chunks/handleAutoUpdate-ZJPJN42W.js +109 -0
- package/chunks/i18n-BZYKOST7.js +124 -0
- package/chunks/{image-gen-7CSCJ73T.js → image-gen-J6FDGUZP.js} +8 -12
- package/chunks/initializer-GO2C5HE3.js +113 -0
- package/chunks/installationInfo-WM2GXQZ6.js +107 -0
- package/chunks/{ja-HZ7X7PQO.js → ja-2GL5FKYJ.js} +1 -0
- package/chunks/{keychain-token-storage-MTFTAESK.js → keychain-token-storage-37XPR34V.js} +2 -2
- package/chunks/list-ERDJB7PQ.js +116 -0
- package/chunks/{list-agents-43XUEXJV.js → list-agents-DI3YFTDT.js} +2 -2
- package/chunks/loadedSettingsAdapter-7JOCVOKV.js +110 -0
- package/chunks/{loggingContentGenerator-RNE66CKK.js → loggingContentGenerator-3ONLU3BS.js} +327 -39
- package/chunks/{loop-wakeup-E54KDUXC.js → loop-wakeup-XJFONSQ7.js} +5 -5
- package/chunks/{ls-CGL2UC3H.js → ls-3VAT2J7A.js} +4 -4
- package/chunks/{lsp-5IKUO5DX.js → lsp-5W7IRUBH.js} +2 -2
- package/chunks/{managed-npm-update-Y3SC3GLJ.js → managed-npm-update-TLRCC2GE.js} +62 -62
- package/chunks/mcp-2LH3QXR2.js +110 -0
- package/chunks/{monitor-PXYSGSUN.js → monitor-P7LDAL4W.js} +48 -50
- package/chunks/nonInteractiveCli-E5T7PZ27.js +184 -0
- package/chunks/{notebook-edit-ISIBJVBR.js → notebook-edit-F7KSG4WQ.js} +49 -51
- package/chunks/open-with-auth-4UI3KHUR.js +55 -0
- package/chunks/{openaiContentGenerator-6TBOPEGT.js → openaiContentGenerator-2EXCZUGN.js} +29 -32
- package/chunks/pidfile-P25DWA5Q.js +111 -0
- package/chunks/process-registry-OAEG6WGC.js +662 -0
- package/chunks/{processUtils-YK2TDTTU.js → processUtils-PVDKBL35.js} +2 -2
- package/chunks/prompt-terminal-ledger-AJ7T7OIV.js +105 -0
- package/chunks/{pt-QT5N2Q6Q.js → pt-XN2YWJVM.js} +1 -0
- package/chunks/{qwenContentGenerator-CLDMA2Y4.js → qwenContentGenerator-TBBRLWIT.js} +54 -62
- package/chunks/{qwenOAuth2-DLDR6UC5.js → qwenOAuth2-OF5WRBQT.js} +7 -11
- package/chunks/read-file-6IIY4RLJ.js +32 -0
- package/chunks/{read-mcp-resource-XYES2B42.js → read-mcp-resource-XD257PGJ.js} +2 -2
- package/chunks/read-package-up-6T6ICKR7.js +13 -0
- package/chunks/{record-artifact-W3IBTGL7.js → record-artifact-VW23GS4F.js} +4 -5
- package/chunks/report-findings-XA3FJG3N.js +33 -0
- package/chunks/request-shutdown-BCLA3JV2.js +133 -0
- package/chunks/resumeHistoryUtils-44IETXDY.js +118 -0
- package/chunks/ripGrep-E7ESZ7SS.js +39 -0
- package/chunks/{ru-STMG5BPD.js → ru-OLTMFJEW.js} +1 -0
- package/chunks/{run-qwen-serve-XJHOW2NY.js → run-qwen-serve-DXBCYW7V.js} +924 -356
- package/chunks/runtime-RUSPD35D.js +148 -0
- package/chunks/scheduled-tasks-DVRJZO6I.js +127 -0
- package/chunks/scheduler-TDRB2NSY.js +122 -0
- package/chunks/{sdk-exporters-http-RSIOP3G2.js → sdk-exporters-http-TTU2CHBU.js} +5 -5
- package/chunks/{sdk-impl-CB3KARSK.js → sdk-impl-UUMVYMAL.js} +12 -6
- package/chunks/{send-message-J4VT46OI.js → send-message-AJ4OCUBV.js} +24 -29
- package/chunks/serve-KITOM7OR.js +118 -0
- package/chunks/{server-74ONDK62.js → server-THCOMUC2.js} +5814 -4549
- package/chunks/{session-BO6VBWJP.js → session-XKR5MPXE.js} +152 -142
- package/chunks/session-pr-refresh-KRBH7KDA.js +278 -0
- package/chunks/{settings-35QZNFDG.js → settings-YXZ4XBKK.js} +72 -72
- package/chunks/shell-5FJ2DZ3W.js +93 -0
- package/chunks/{skill-DKEMQSNJ.js → skill-VMMJZ6CJ.js} +161 -33
- package/chunks/skill-settings-7SG4YA2W.js +118 -0
- package/chunks/spawnChannel-BPMIXRBI.js +112 -0
- package/chunks/standalone-update-QN5HFRIC.js +118 -0
- package/chunks/{startInteractiveUI-J2QSGWPU.js → startInteractiveUI-5A7RQFRP.js} +3139 -2438
- package/chunks/{syntheticOutput-JAXMIMZP.js → syntheticOutput-ML43GEFN.js} +3 -3
- package/chunks/{task-create-I2H322E4.js → task-create-QN4LYRSE.js} +11 -11
- package/chunks/{task-list-3OLIWFTQ.js → task-list-JPLGK45U.js} +5 -5
- package/chunks/{task-stop-JAUY6MSY.js → task-stop-CXEH5L2D.js} +2 -2
- package/chunks/{task-update-B3XO4CPI.js → task-update-IWEOJFV2.js} +11 -11
- package/chunks/{team-create-W534PMGX.js → team-create-HVGVUL2L.js} +49 -51
- package/chunks/{team-delete-Q7GE7RRI.js → team-delete-RZVVSGCY.js} +5 -5
- package/chunks/{team-plan-approval-WNV6P6NG.js → team-plan-approval-S5A5FQWU.js} +48 -50
- package/chunks/terminal-image-renderer-SIVPPXDI.js +114 -0
- package/chunks/theme-manager-TA33UZZX.js +102 -0
- package/chunks/{todoWrite-FJJTY2TI.js → todoWrite-WDJNQEMW.js} +43 -25
- package/chunks/{tool-search-Y4KL3LRE.js → tool-search-NX7IPDKP.js} +19 -20
- package/chunks/total-session-admission-PWXZBOVX.js +114 -0
- package/chunks/trustedFolders-V6Y4CU3F.js +122 -0
- package/chunks/{update-relaunch-OHVFN6KF.js → update-relaunch-CGSX3R37.js} +6 -6
- package/chunks/updateCheck-T5O2WGIB.js +118 -0
- package/chunks/useAutoAcceptIndicator-ULBJJWPY.js +120 -0
- package/chunks/{validateNonInterActiveAuth-WJXH426F.js → validateNonInterActiveAuth-E5S2JSRC.js} +114 -108
- package/chunks/{version-QMDRADXM.js → version-LS5JPU36.js} +2 -2
- package/chunks/{web-fetch-ROS6P4LP.js → web-fetch-RLMFZTS3.js} +25 -244
- package/chunks/{web-search-JS3E76O6.js → web-search-LMCIC4N5.js} +11 -13
- package/chunks/{web-shell-static-3NUTRHAH.js → web-shell-static-A6QMUNNV.js} +11 -4
- package/chunks/webapi-Z5OM224P.js +4118 -0
- package/chunks/{workflow-2FCMBTBZ.js → workflow-JBXU3IGA.js} +713 -138
- package/chunks/workspace-providers-status-525ORQBH.js +114 -0
- package/chunks/{workspace-registration-store-SU4EJKSD.js → workspace-registration-store-7Y44R4LV.js} +1 -1
- package/chunks/workspace-registry-HS4RWUSQ.js +123 -0
- package/chunks/workspace-service-7PXDM6EB.js +129 -0
- package/chunks/workspace-skills-status-FMJGC2XI.js +113 -0
- package/chunks/{workspace-trust-reconciler-4Y4F7XIX.js → workspace-trust-reconciler-3YTWSQBY.js} +78 -77
- package/chunks/write-file-BVQRYQQO.js +88 -0
- package/chunks/{zh-TW-NX43Z2S2.js → zh-TW-RPTMRTHG.js} +5 -1
- package/chunks/{zh-3JQ75KFU.js → zh-UNY63FR3.js} +5 -1
- package/chunks/{zoom-image-DNBKCGGF.js → zoom-image-FGCELNS4.js} +14 -15
- package/cli.js +13 -13
- package/locales/ca.js +3 -0
- package/locales/de.js +1 -0
- package/locales/en.js +5 -0
- package/locales/fr.js +1 -0
- package/locales/ja.js +1 -0
- package/locales/pt.js +1 -0
- package/locales/ru.js +1 -0
- package/locales/zh-TW.js +5 -0
- package/locales/zh.js +5 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-DWHXEVlf.js → abnfDiagram-VCTEODGH-2XZDeWYO.js} +1 -1
- package/web-shell/assets/{arc-CXKjm86V.js → arc-B6UgMh90.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-B_ynI0cX.js → architectureDiagram-5GKGNRK7-DZgNFeN1.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-DMebd9X0.js → blockDiagram-NRAW4CY4-DQ2wvBFN.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ5BlxS-.js → c4Diagram-UCG6FXSJ-DMmQMrc4.js} +1 -1
- package/web-shell/assets/channel-D_TyfiTx.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-CluJKopE.js → chunk-2Q5K7J3B-C8Zh2e9y.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-hzDAPFOo.js → chunk-5VM5RSS4-C3LTenP8.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-6vHioKJe.js → chunk-F27PBJKO-CxABOc8n.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-B_5hKTGo.js → chunk-G27WJ6UU-CD_JxHDC.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-CO9VoFCH.js → chunk-JWPE2WC7-BdmZPmce.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-7L5JpxYu.js → chunk-LCL6LL3I-80bcHmfK.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-DHLJMAqj.js → chunk-POPQ4Y6H-CNpLZyQF.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-Dt-4Cqdl.js → chunk-SVP7TREG-CXlKgMv3.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-QlSQ3ssG.js → chunk-XXDRQBXY-CivyYyvL.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-Bw_H3xMd.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-Bw_H3xMd.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-DMw3EOxl.js → cose-bilkent-JH36ORCC-COAjRH3w.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-s6vEA7RQ.js → cynefin-OW5HDTMX-DqU1JHO6.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-AOKsvYLt.js → cynefinDiagram-5FMLGOSQ-BCLI1Bvj.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-9QAZn3m7.js → dagre-3AP2YEHR-DmAz8nqF.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-CWpnu4FN.js → diagram-S7CK7UJ4-Ck-5QLT5.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-9l0jXD8q.js → diagram-UQ7AKVKN-C0ljX0mW.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-BMUHroj4.js → diagram-VSXAHHWV-DPgvT24v.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-Co9x27vm.js → diagram-VX7I27RA-D7hWr1LR.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-BKnTeOER.js → diagram-Z3DM3KII-D59tlOta.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-QBZD9CKG.js → ebnfDiagram-PWID7BFC-CY2DDx00.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-dKWAEGun.js → erDiagram-SSCWMZ5O-AR4h8Q8k.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-CR_UgVqj.js → flowDiagram-A5DVABFB-DbF0HqBz.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DQUnjWO6.js → ganttDiagram-EL5Y4UJY-J52mrIhc.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C4j59wPL.js → gitGraphDiagram-WWUBYQGX-CcgMY5EV.js} +1 -1
- package/web-shell/assets/index-BjUg3vPr.css +5 -0
- package/web-shell/assets/index-CFwYYVFU.js +1873 -0
- package/web-shell/assets/{index-tYXRIPz4.js → index-MQs7l15A.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-mzqbt50w.js → infoDiagram-RXCK75RN-Buu3ibp2.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-ChLOqhGl.js → ishikawaDiagram-5VMMS53U-CoKQxnF3.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-SifZE-R8.js → journeyDiagram-EYS64GPL-CxK35mTC.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-Sft2qlbc.js → kanban-definition-3QL26DDD-tk2CHTQ1.js} +1 -1
- package/web-shell/assets/{layout-O2uHVkPd.js → layout-DEpMwb4u.js} +1 -1
- package/web-shell/assets/{linear-BVqYgjSc.js → linear-DSQsLh53.js} +1 -1
- package/web-shell/assets/{mermaid.core-CZ9MQaJ6.js → mermaid.core-DIZuPBQT.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-BNQYjBqM.js → mindmap-definition-FBJOCRG2-CCAvk8r_.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-rh1J8uv6.js → pegDiagram-XKGWAZYB-CpJ28jxz.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BQHR5mn9.js → pieDiagram-E7YTZNPT-ziJR2R32.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CLCbP7mK.js → quadrantDiagram-AXDQQJYC-B60zE3Mh.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-CDQhrkbm.js → railroadDiagram-O6MQD6OU-M3GqQ_g1.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BdP9uswg.js → requirementDiagram-EFPCY7ZU-ntCtYqTk.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CFZDFBXF.js → sankeyDiagram-P5KCCOFB-AYLoItcZ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BW9WOJXI.js → sequenceDiagram-WJ2MYXX4-DEWk4Mlj.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-CPMia32z.js → sizeCapture-X5ZJPWSS-OOWvzPay.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BANp9p7F.js → stateDiagram-HBIQ2CUA-BcMmvxem.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DRLLqPWO.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-JroXksK-.js → swimlanes-XN3QIQJK-DuZTWWvh.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DOfLQQYt.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-DfuVIfYY.js → timeline-definition-24CTP7MA-CjqtZXEd.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-BZXoSjRB.js → vennDiagram-4TSXK5OY-knVCVkQ4.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-BdiY8avC.js → wardleyDiagram-VM6X3IG4-yoWhw0a2.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DcXh_U4H.js → xychartDiagram-S5SC5T6Z-ue14E_gL.js} +1 -1
- package/web-shell/index.html +20 -5
- package/chunks/MaxSizedBox-3OZJCC3J.js +0 -110
- package/chunks/agent-BFE3DQM3.js +0 -93
- package/chunks/agent-headless-LLVKZZ4P.js +0 -87
- package/chunks/bridge-EBYO4SYM.js +0 -118
- package/chunks/channel-settings-store-5VP2Y2YM.js +0 -115
- package/chunks/chunk-2J3OJGTL.js +0 -98
- package/chunks/chunk-7IV52LTO.js +0 -202
- package/chunks/chunk-AXMWHKXA.js +0 -42
- package/chunks/chunk-F6WFNA7U.js +0 -22
- package/chunks/chunk-IO257NUD.js +0 -623
- package/chunks/chunk-JS73NNWF.js +0 -30
- package/chunks/chunk-SJ4HB27T.js +0 -945
- package/chunks/chunk-VGHZT6JR.js +0 -51
- package/chunks/chunk-YHC2EYYG.js +0 -125
- package/chunks/computer-use-EGPWFEX6.js +0 -2142
- package/chunks/config-utils-WZ43VOBS.js +0 -25
- package/chunks/contextCommand-5DSEQI6S.js +0 -106
- package/chunks/daemon-status-provider-EYMLPYJU.js +0 -116
- package/chunks/daemon-trust-policy-CQYKZ7VO.js +0 -112
- package/chunks/deferred-core-runtime-WFEPUXZR.js +0 -114
- package/chunks/earlyInputCapture-PN4PP7V5.js +0 -107
- package/chunks/environment-WUPHLPKZ.js +0 -127
- package/chunks/errors-WPMPVIAT.js +0 -113
- package/chunks/exitPlanMode-MLFHYZNB.js +0 -85
- package/chunks/handleAutoUpdate-F5OTWUT5.js +0 -109
- package/chunks/i18n-C562S6KN.js +0 -124
- package/chunks/initializer-7YPGOFP4.js +0 -113
- package/chunks/installationInfo-ARU5Q2H7.js +0 -107
- package/chunks/list-KTSK275C.js +0 -116
- package/chunks/loadedSettingsAdapter-F3T2EQ5J.js +0 -110
- package/chunks/mcp-6ONTVPAY.js +0 -110
- package/chunks/nonInteractiveCli-KZDWFAN6.js +0 -178
- package/chunks/pidfile-IO7ALSZF.js +0 -111
- package/chunks/process-registry-PMJOA5CO.js +0 -172
- package/chunks/prompt-terminal-ledger-TCE7PMCE.js +0 -105
- package/chunks/read-file-2HOD2ATO.js +0 -33
- package/chunks/resumeHistoryUtils-DDSBAQJS.js +0 -118
- package/chunks/ripGrep-E7P6K4QR.js +0 -40
- package/chunks/runtime-J4SPTJRQ.js +0 -148
- package/chunks/scheduler-VRAEZZ4E.js +0 -122
- package/chunks/serve-KEAWV4TI.js +0 -118
- package/chunks/shell-H6K63WG3.js +0 -95
- package/chunks/skill-settings-TCKLXIXM.js +0 -118
- package/chunks/spawnChannel-2K6NKWM5.js +0 -111
- package/chunks/standalone-update-LSCGOEFP.js +0 -118
- package/chunks/terminal-image-renderer-UHX3UD66.js +0 -114
- package/chunks/theme-manager-6B47ZPIF.js +0 -102
- package/chunks/total-session-admission-NSCFWGJH.js +0 -113
- package/chunks/trustedFolders-7XMJWGQ3.js +0 -122
- package/chunks/updateCheck-EOVLHD4T.js +0 -118
- package/chunks/useAutoAcceptIndicator-ZNMIGBTN.js +0 -120
- package/chunks/workspace-providers-status-GPGU5YMT.js +0 -113
- package/chunks/workspace-registry-BQISXT6Y.js +0 -122
- package/chunks/workspace-service-LLY6HCUC.js +0 -129
- package/chunks/workspace-skills-status-L5N2Y3ZP.js +0 -113
- package/chunks/write-file-EJHU2Z3E.js +0 -90
- package/web-shell/assets/channel-Zg3WHgq_.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-C16l9jQz.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-C16l9jQz.js +0 -1
- package/web-shell/assets/index-BN_m_uHJ.css +0 -5
- package/web-shell/assets/index-DrlJu79f.js +0 -1792
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-NZYAoQLU.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-3YdVX3vj.js +0 -8
|
@@ -181,7 +181,7 @@ function isDaemonSessionPrInfo(value) {
|
|
|
181
181
|
const v = value;
|
|
182
182
|
return typeof v["number"] === "number" && Number.isInteger(v["number"]) && v["number"] > 0 && typeof v["url"] === "string" && v["url"].length <= MAX_SESSION_PR_URL_LENGTH && /^https?:\/\//i.test(v["url"]) && // The daemon interpolates the url into a stderr audit line — control
|
|
183
183
|
// characters would forge log lines downstream of this gate.
|
|
184
|
-
!hasControlCharacter(v["url"]);
|
|
184
|
+
!hasControlCharacter(v["url"]) && (v["state"] === void 0 || v["state"] === "open" || v["state"] === "merged" || v["state"] === "closed");
|
|
185
185
|
}
|
|
186
186
|
__name(isDaemonSessionPrInfo, "isDaemonSessionPrInfo");
|
|
187
187
|
|
|
@@ -556,6 +556,18 @@ __name(composeAbortSignals, "composeAbortSignals");
|
|
|
556
556
|
|
|
557
557
|
// packages/sdk-typescript/src/daemon/types.ts
|
|
558
558
|
init_esbuild_shims();
|
|
559
|
+
|
|
560
|
+
// packages/sdk-typescript/src/types/permission-mode.ts
|
|
561
|
+
init_esbuild_shims();
|
|
562
|
+
var PERMISSION_MODES = [
|
|
563
|
+
"plan",
|
|
564
|
+
"default",
|
|
565
|
+
"auto-edit",
|
|
566
|
+
"auto",
|
|
567
|
+
"yolo"
|
|
568
|
+
];
|
|
569
|
+
|
|
570
|
+
// packages/sdk-typescript/src/daemon/types.ts
|
|
559
571
|
var DaemonCapabilityMissingError = class extends Error {
|
|
560
572
|
static {
|
|
561
573
|
__name(this, "DaemonCapabilityMissingError");
|
|
@@ -610,13 +622,233 @@ function isDaemonContentHash(value) {
|
|
|
610
622
|
return typeof value === "string" && DAEMON_CONTENT_HASH_RE.test(value);
|
|
611
623
|
}
|
|
612
624
|
__name(isDaemonContentHash, "isDaemonContentHash");
|
|
613
|
-
var DAEMON_APPROVAL_MODES =
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
625
|
+
var DAEMON_APPROVAL_MODES = PERMISSION_MODES;
|
|
626
|
+
|
|
627
|
+
// packages/sdk-typescript/src/daemon/standalone-sessions.ts
|
|
628
|
+
init_esbuild_shims();
|
|
629
|
+
var STANDALONE_SESSIONS_CAPABILITY = "standalone_sessions_v1";
|
|
630
|
+
var DaemonStandaloneProtocolError = class extends Error {
|
|
631
|
+
constructor(route, detail) {
|
|
632
|
+
super(`${route}: malformed standalone-session response (${detail})`);
|
|
633
|
+
this.route = route;
|
|
634
|
+
this.name = "DaemonStandaloneProtocolError";
|
|
635
|
+
}
|
|
636
|
+
static {
|
|
637
|
+
__name(this, "DaemonStandaloneProtocolError");
|
|
638
|
+
}
|
|
639
|
+
};
|
|
640
|
+
var DaemonStandaloneCreationOutcomeUnknownError = class extends Error {
|
|
641
|
+
constructor(sessionId, recovery, originalError) {
|
|
642
|
+
super(
|
|
643
|
+
`Standalone session creation outcome is unknown for ${sessionId}; inspect recovery before retrying.`
|
|
644
|
+
);
|
|
645
|
+
this.sessionId = sessionId;
|
|
646
|
+
this.recovery = recovery;
|
|
647
|
+
this.originalError = originalError;
|
|
648
|
+
this.name = "DaemonStandaloneCreationOutcomeUnknownError";
|
|
649
|
+
}
|
|
650
|
+
static {
|
|
651
|
+
__name(this, "DaemonStandaloneCreationOutcomeUnknownError");
|
|
652
|
+
}
|
|
653
|
+
};
|
|
654
|
+
function asRecord(value, route, field = "response") {
|
|
655
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
656
|
+
throw new DaemonStandaloneProtocolError(route, `expected ${field} object`);
|
|
657
|
+
}
|
|
658
|
+
return value;
|
|
659
|
+
}
|
|
660
|
+
__name(asRecord, "asRecord");
|
|
661
|
+
function requireString(value, field, route, allowEmpty = false) {
|
|
662
|
+
const result = value[field];
|
|
663
|
+
if (typeof result !== "string" || !allowEmpty && result.length === 0) {
|
|
664
|
+
throw new DaemonStandaloneProtocolError(route, `expected ${field} string`);
|
|
665
|
+
}
|
|
666
|
+
return result;
|
|
667
|
+
}
|
|
668
|
+
__name(requireString, "requireString");
|
|
669
|
+
function requireStringArray(value, field, route) {
|
|
670
|
+
const result = value[field];
|
|
671
|
+
if (!Array.isArray(result) || !result.every((item) => typeof item === "string")) {
|
|
672
|
+
throw new DaemonStandaloneProtocolError(route, `expected ${field}[]`);
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
__name(requireStringArray, "requireStringArray");
|
|
676
|
+
function requireSessionId(value, route, expected) {
|
|
677
|
+
const sessionId = requireString(value, "sessionId", route);
|
|
678
|
+
if (expected !== void 0 && sessionId !== expected) {
|
|
679
|
+
throw new DaemonStandaloneProtocolError(
|
|
680
|
+
route,
|
|
681
|
+
`expected sessionId ${expected}, received ${sessionId}`
|
|
682
|
+
);
|
|
683
|
+
}
|
|
684
|
+
return sessionId;
|
|
685
|
+
}
|
|
686
|
+
__name(requireSessionId, "requireSessionId");
|
|
687
|
+
function validateContext(value, route) {
|
|
688
|
+
if (asRecord(value["context"], route, "context")["kind"] !== "standalone") {
|
|
689
|
+
throw new DaemonStandaloneProtocolError(
|
|
690
|
+
route,
|
|
691
|
+
"expected standalone context"
|
|
692
|
+
);
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
__name(validateContext, "validateContext");
|
|
696
|
+
function validateWorkingDirectory(value, route) {
|
|
697
|
+
const directory = asRecord(value, route, "workingDirectory");
|
|
698
|
+
if (directory["state"] !== "ready" && directory["state"] !== "recreated") {
|
|
699
|
+
throw new DaemonStandaloneProtocolError(
|
|
700
|
+
route,
|
|
701
|
+
"invalid workingDirectory.state"
|
|
702
|
+
);
|
|
703
|
+
}
|
|
704
|
+
if (directory["warnings"] !== void 0) {
|
|
705
|
+
requireStringArray(directory, "warnings", route);
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
__name(validateWorkingDirectory, "validateWorkingDirectory");
|
|
709
|
+
function validateStandaloneFields(value, route) {
|
|
710
|
+
if (value["sourceType"] !== "standalone") {
|
|
711
|
+
throw new DaemonStandaloneProtocolError(
|
|
712
|
+
route,
|
|
713
|
+
"expected standalone sourceType"
|
|
714
|
+
);
|
|
715
|
+
}
|
|
716
|
+
validateContext(value, route);
|
|
717
|
+
requireString(value, "projectlessOutputDirectory", route);
|
|
718
|
+
validateWorkingDirectory(value["workingDirectory"], route);
|
|
719
|
+
}
|
|
720
|
+
__name(validateStandaloneFields, "validateStandaloneFields");
|
|
721
|
+
function parseStandaloneSession(value, route, expectedSessionId) {
|
|
722
|
+
const session = asRecord(value, route);
|
|
723
|
+
requireSessionId(session, route, expectedSessionId);
|
|
724
|
+
requireString(session, "workspaceCwd", route);
|
|
725
|
+
if (typeof session["attached"] !== "boolean") {
|
|
726
|
+
throw new DaemonStandaloneProtocolError(route, "expected attached boolean");
|
|
727
|
+
}
|
|
728
|
+
validateStandaloneFields(session, route);
|
|
729
|
+
return session;
|
|
730
|
+
}
|
|
731
|
+
__name(parseStandaloneSession, "parseStandaloneSession");
|
|
732
|
+
function parseRestoredStandaloneSession(value, route, expectedSessionId) {
|
|
733
|
+
const raw = asRecord(value, route);
|
|
734
|
+
parseStandaloneSession(raw, route, expectedSessionId);
|
|
735
|
+
asRecord(raw["state"], route, "state");
|
|
736
|
+
return raw;
|
|
737
|
+
}
|
|
738
|
+
__name(parseRestoredStandaloneSession, "parseRestoredStandaloneSession");
|
|
739
|
+
function parseStandaloneSummary(value, route, expectedSessionId) {
|
|
740
|
+
const summary = asRecord(value, route);
|
|
741
|
+
requireSessionId(summary, route, expectedSessionId);
|
|
742
|
+
requireString(summary, "workspaceCwd", route);
|
|
743
|
+
if (summary["sourceType"] !== "standalone") {
|
|
744
|
+
throw new DaemonStandaloneProtocolError(
|
|
745
|
+
route,
|
|
746
|
+
"expected standalone sourceType"
|
|
747
|
+
);
|
|
748
|
+
}
|
|
749
|
+
validateContext(summary, route);
|
|
750
|
+
return summary;
|
|
751
|
+
}
|
|
752
|
+
__name(parseStandaloneSummary, "parseStandaloneSummary");
|
|
753
|
+
function parseStandaloneLookup(value, route, expectedSessionId) {
|
|
754
|
+
const lookup = asRecord(value, route);
|
|
755
|
+
if (lookup["state"] === "creating") {
|
|
756
|
+
const sessionId = requireSessionId(lookup, route, expectedSessionId);
|
|
757
|
+
return { sessionId, state: "creating" };
|
|
758
|
+
}
|
|
759
|
+
return parseStandaloneSummary(lookup, route, expectedSessionId);
|
|
760
|
+
}
|
|
761
|
+
__name(parseStandaloneLookup, "parseStandaloneLookup");
|
|
762
|
+
function parseStandaloneListPage(value, route) {
|
|
763
|
+
const page = asRecord(value, route);
|
|
764
|
+
if (!Array.isArray(page["sessions"])) {
|
|
765
|
+
throw new DaemonStandaloneProtocolError(route, "expected sessions[]");
|
|
766
|
+
}
|
|
767
|
+
if (page["nextCursor"] !== void 0 && typeof page["nextCursor"] !== "string") {
|
|
768
|
+
throw new DaemonStandaloneProtocolError(
|
|
769
|
+
route,
|
|
770
|
+
"expected nextCursor string"
|
|
771
|
+
);
|
|
772
|
+
}
|
|
773
|
+
for (const field of ["liveMergeFailed", "truncated"]) {
|
|
774
|
+
if (page[field] !== void 0 && typeof page[field] !== "boolean") {
|
|
775
|
+
throw new DaemonStandaloneProtocolError(
|
|
776
|
+
route,
|
|
777
|
+
`expected ${field} boolean`
|
|
778
|
+
);
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
for (const session of page["sessions"])
|
|
782
|
+
parseStandaloneSummary(session, route);
|
|
783
|
+
return page;
|
|
784
|
+
}
|
|
785
|
+
__name(parseStandaloneListPage, "parseStandaloneListPage");
|
|
786
|
+
function parseStandaloneDirectoryResult(value, route, expectedSessionId) {
|
|
787
|
+
const result = asRecord(value, route);
|
|
788
|
+
requireSessionId(result, route, expectedSessionId);
|
|
789
|
+
requireString(result, "projectlessOutputDirectory", route);
|
|
790
|
+
validateWorkingDirectory(result["workingDirectory"], route);
|
|
791
|
+
return result;
|
|
792
|
+
}
|
|
793
|
+
__name(parseStandaloneDirectoryResult, "parseStandaloneDirectoryResult");
|
|
794
|
+
function parseStandaloneMetadataResult(value, route, expectedSessionId) {
|
|
795
|
+
const result = asRecord(value, route);
|
|
796
|
+
requireSessionId(result, route, expectedSessionId);
|
|
797
|
+
requireString(result, "displayName", route, true);
|
|
798
|
+
return result;
|
|
799
|
+
}
|
|
800
|
+
__name(parseStandaloneMetadataResult, "parseStandaloneMetadataResult");
|
|
801
|
+
function validateBatch(value, route, fields) {
|
|
802
|
+
const result = asRecord(value, route);
|
|
803
|
+
for (const field of fields) requireStringArray(result, field, route);
|
|
804
|
+
if (!Array.isArray(result["errors"])) {
|
|
805
|
+
throw new DaemonStandaloneProtocolError(route, "expected errors[]");
|
|
806
|
+
}
|
|
807
|
+
for (const item of result["errors"]) {
|
|
808
|
+
const error = asRecord(item, route, "batch error");
|
|
809
|
+
for (const field of ["sessionId", "code", "message"]) {
|
|
810
|
+
requireString(error, field, route);
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
return result;
|
|
814
|
+
}
|
|
815
|
+
__name(validateBatch, "validateBatch");
|
|
816
|
+
function parseArchiveStandaloneSessionsResult(value, route) {
|
|
817
|
+
return validateBatch(value, route, [
|
|
818
|
+
"archived",
|
|
819
|
+
"alreadyArchived",
|
|
820
|
+
"notFound"
|
|
821
|
+
]);
|
|
822
|
+
}
|
|
823
|
+
__name(parseArchiveStandaloneSessionsResult, "parseArchiveStandaloneSessionsResult");
|
|
824
|
+
function parseUnarchiveStandaloneSessionsResult(value, route) {
|
|
825
|
+
return validateBatch(value, route, [
|
|
826
|
+
"unarchived",
|
|
827
|
+
"alreadyActive",
|
|
828
|
+
"notFound"
|
|
829
|
+
]);
|
|
830
|
+
}
|
|
831
|
+
__name(parseUnarchiveStandaloneSessionsResult, "parseUnarchiveStandaloneSessionsResult");
|
|
832
|
+
function parseDeleteStandaloneSessionsResult(value, route) {
|
|
833
|
+
return validateBatch(value, route, [
|
|
834
|
+
"removed",
|
|
835
|
+
"notFound",
|
|
836
|
+
"fileCleanupPending"
|
|
837
|
+
]);
|
|
838
|
+
}
|
|
839
|
+
__name(parseDeleteStandaloneSessionsResult, "parseDeleteStandaloneSessionsResult");
|
|
840
|
+
function isStandaloneSessionNotFoundError(error) {
|
|
841
|
+
return error instanceof DaemonHttpError && error.status === 404 && recordCode(error.body) === "standalone_session_not_found";
|
|
842
|
+
}
|
|
843
|
+
__name(isStandaloneSessionNotFoundError, "isStandaloneSessionNotFoundError");
|
|
844
|
+
function isStandaloneCreationOutcomeUnknown(error) {
|
|
845
|
+
return error instanceof DaemonStandaloneCreationOutcomeUnknownError || error instanceof DaemonHttpError && recordCode(error.body) === "standalone_creation_outcome_unknown";
|
|
846
|
+
}
|
|
847
|
+
__name(isStandaloneCreationOutcomeUnknown, "isStandaloneCreationOutcomeUnknown");
|
|
848
|
+
function recordCode(value) {
|
|
849
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) ? value["code"] : void 0;
|
|
850
|
+
}
|
|
851
|
+
__name(recordCode, "recordCode");
|
|
620
852
|
|
|
621
853
|
// packages/sdk-typescript/src/daemon/DaemonClient.ts
|
|
622
854
|
var WORKSPACE_MEMORY_REMEMBER_PATH = "/workspace/memory/remember";
|
|
@@ -1569,16 +1801,15 @@ var DaemonClient = class {
|
|
|
1569
1801
|
);
|
|
1570
1802
|
}
|
|
1571
1803
|
async readWorkspaceFileBytes(filePath, opts = {}, clientId) {
|
|
1572
|
-
const
|
|
1573
|
-
url.searchParams.set("path", filePath);
|
|
1804
|
+
const query = new URLSearchParams({ path: filePath });
|
|
1574
1805
|
if (opts.offset !== void 0) {
|
|
1575
|
-
|
|
1806
|
+
query.set("offset", String(opts.offset));
|
|
1576
1807
|
}
|
|
1577
1808
|
if (opts.maxBytes !== void 0) {
|
|
1578
|
-
|
|
1809
|
+
query.set("maxBytes", String(opts.maxBytes));
|
|
1579
1810
|
}
|
|
1580
1811
|
return await this.fetchWithTimeout(
|
|
1581
|
-
|
|
1812
|
+
`${this.baseUrl}/file/bytes?${query.toString()}`,
|
|
1582
1813
|
{ headers: this.headers({}, clientId) },
|
|
1583
1814
|
async (res) => {
|
|
1584
1815
|
if (!res.ok) throw await this.failOnError(res, "GET /file/bytes");
|
|
@@ -2137,6 +2368,185 @@ var DaemonClient = class {
|
|
|
2137
2368
|
);
|
|
2138
2369
|
}
|
|
2139
2370
|
// -- Sessions ----------------------------------------------------------
|
|
2371
|
+
async createStandaloneSession(options = {}) {
|
|
2372
|
+
await this.requireCapability(STANDALONE_SESSIONS_CAPABILITY);
|
|
2373
|
+
const { sessionId: requestedSessionId, ...request } = options;
|
|
2374
|
+
const sessionId = (requestedSessionId ?? globalThis.crypto.randomUUID()).toLowerCase();
|
|
2375
|
+
try {
|
|
2376
|
+
const response = await this.jsonRequest(
|
|
2377
|
+
"/standalone/sessions",
|
|
2378
|
+
"POST /standalone/sessions",
|
|
2379
|
+
{
|
|
2380
|
+
method: "POST",
|
|
2381
|
+
body: { sessionId, ...request },
|
|
2382
|
+
mode: "rest"
|
|
2383
|
+
}
|
|
2384
|
+
);
|
|
2385
|
+
return parseStandaloneSession(
|
|
2386
|
+
response,
|
|
2387
|
+
"POST /standalone/sessions",
|
|
2388
|
+
sessionId
|
|
2389
|
+
);
|
|
2390
|
+
} catch (error) {
|
|
2391
|
+
if (error instanceof DaemonHttpError && !isStandaloneCreationOutcomeUnknown(error)) {
|
|
2392
|
+
throw error;
|
|
2393
|
+
}
|
|
2394
|
+
const recovery = await this.recoverStandaloneCreation(sessionId);
|
|
2395
|
+
throw new DaemonStandaloneCreationOutcomeUnknownError(
|
|
2396
|
+
sessionId,
|
|
2397
|
+
recovery,
|
|
2398
|
+
error
|
|
2399
|
+
);
|
|
2400
|
+
}
|
|
2401
|
+
}
|
|
2402
|
+
async listStandaloneSessions(options = {}) {
|
|
2403
|
+
return (await this.listStandaloneSessionsPage(options)).sessions;
|
|
2404
|
+
}
|
|
2405
|
+
async listStandaloneSessionsPage(options = {}) {
|
|
2406
|
+
const query = new URLSearchParams();
|
|
2407
|
+
if (options.cursor !== void 0) query.set("cursor", options.cursor);
|
|
2408
|
+
if (options.pageSize !== void 0) {
|
|
2409
|
+
query.set("size", String(options.pageSize));
|
|
2410
|
+
}
|
|
2411
|
+
if (options.archiveState !== void 0) {
|
|
2412
|
+
query.set("archiveState", options.archiveState);
|
|
2413
|
+
}
|
|
2414
|
+
const queryString = query.toString();
|
|
2415
|
+
const suffix = queryString ? `?${queryString}` : "";
|
|
2416
|
+
return await this.standaloneJsonRequest(
|
|
2417
|
+
`/standalone/sessions${suffix}`,
|
|
2418
|
+
"GET /standalone/sessions",
|
|
2419
|
+
parseStandaloneListPage
|
|
2420
|
+
);
|
|
2421
|
+
}
|
|
2422
|
+
async getStandaloneSession(sessionId) {
|
|
2423
|
+
await this.requireCapability(STANDALONE_SESSIONS_CAPABILITY);
|
|
2424
|
+
return await this.getStandaloneSessionUnchecked(sessionId.toLowerCase());
|
|
2425
|
+
}
|
|
2426
|
+
async loadStandaloneSession(sessionId, request = {}, clientId) {
|
|
2427
|
+
return await this.restoreStandaloneSession(
|
|
2428
|
+
"load",
|
|
2429
|
+
sessionId,
|
|
2430
|
+
request,
|
|
2431
|
+
clientId
|
|
2432
|
+
);
|
|
2433
|
+
}
|
|
2434
|
+
async resumeStandaloneSession(sessionId, request = {}, clientId) {
|
|
2435
|
+
return await this.restoreStandaloneSession(
|
|
2436
|
+
"resume",
|
|
2437
|
+
sessionId,
|
|
2438
|
+
request,
|
|
2439
|
+
clientId
|
|
2440
|
+
);
|
|
2441
|
+
}
|
|
2442
|
+
async repairStandaloneSessionDirectory(sessionId) {
|
|
2443
|
+
const normalized = sessionId.toLowerCase();
|
|
2444
|
+
const route = "POST /standalone/sessions/:id/repair-directory";
|
|
2445
|
+
return await this.standaloneJsonRequest(
|
|
2446
|
+
`/standalone/sessions/${urlEncode(normalized)}/repair-directory`,
|
|
2447
|
+
route,
|
|
2448
|
+
(response) => parseStandaloneDirectoryResult(response, route, normalized),
|
|
2449
|
+
{ method: "POST", body: {} }
|
|
2450
|
+
);
|
|
2451
|
+
}
|
|
2452
|
+
async renameStandaloneSession(sessionId, displayName, clientId) {
|
|
2453
|
+
const normalized = sessionId.toLowerCase();
|
|
2454
|
+
const route = "PATCH /standalone/sessions/:id/metadata";
|
|
2455
|
+
return await this.standaloneJsonRequest(
|
|
2456
|
+
`/standalone/sessions/${urlEncode(normalized)}/metadata`,
|
|
2457
|
+
route,
|
|
2458
|
+
(response) => parseStandaloneMetadataResult(response, route, normalized),
|
|
2459
|
+
{
|
|
2460
|
+
method: "PATCH",
|
|
2461
|
+
body: { displayName },
|
|
2462
|
+
clientId
|
|
2463
|
+
}
|
|
2464
|
+
);
|
|
2465
|
+
}
|
|
2466
|
+
async exportStandaloneSession(sessionId, options = {}) {
|
|
2467
|
+
await this.requireCapability(STANDALONE_SESSIONS_CAPABILITY);
|
|
2468
|
+
return await this.sessionExportRequest(
|
|
2469
|
+
`/standalone/sessions/${urlEncode(sessionId.toLowerCase())}/export`,
|
|
2470
|
+
"GET /standalone/sessions/:id/export",
|
|
2471
|
+
options
|
|
2472
|
+
);
|
|
2473
|
+
}
|
|
2474
|
+
async archiveStandaloneSessions(sessionIds) {
|
|
2475
|
+
return await this.standaloneBatchRequest(
|
|
2476
|
+
"archive",
|
|
2477
|
+
sessionIds,
|
|
2478
|
+
parseArchiveStandaloneSessionsResult
|
|
2479
|
+
);
|
|
2480
|
+
}
|
|
2481
|
+
async unarchiveStandaloneSessions(sessionIds) {
|
|
2482
|
+
return await this.standaloneBatchRequest(
|
|
2483
|
+
"unarchive",
|
|
2484
|
+
sessionIds,
|
|
2485
|
+
parseUnarchiveStandaloneSessionsResult
|
|
2486
|
+
);
|
|
2487
|
+
}
|
|
2488
|
+
async deleteStandaloneSessions(sessionIds) {
|
|
2489
|
+
return await this.standaloneBatchRequest(
|
|
2490
|
+
"delete",
|
|
2491
|
+
sessionIds,
|
|
2492
|
+
parseDeleteStandaloneSessionsResult
|
|
2493
|
+
);
|
|
2494
|
+
}
|
|
2495
|
+
async standaloneJsonRequest(path, route, parse, options = {}) {
|
|
2496
|
+
await this.requireCapability(STANDALONE_SESSIONS_CAPABILITY);
|
|
2497
|
+
const response = await this.jsonRequest(path, route, {
|
|
2498
|
+
...options,
|
|
2499
|
+
mode: "rest"
|
|
2500
|
+
});
|
|
2501
|
+
return parse(response, route);
|
|
2502
|
+
}
|
|
2503
|
+
async standaloneBatchRequest(action, sessionIds, parse) {
|
|
2504
|
+
const route = `POST /standalone/sessions/${action}`;
|
|
2505
|
+
return await this.standaloneJsonRequest(
|
|
2506
|
+
`/standalone/sessions/${action}`,
|
|
2507
|
+
route,
|
|
2508
|
+
parse,
|
|
2509
|
+
{
|
|
2510
|
+
method: "POST",
|
|
2511
|
+
body: {
|
|
2512
|
+
sessionIds: sessionIds.map((sessionId) => sessionId.toLowerCase())
|
|
2513
|
+
}
|
|
2514
|
+
}
|
|
2515
|
+
);
|
|
2516
|
+
}
|
|
2517
|
+
async restoreStandaloneSession(action, sessionId, request, clientId) {
|
|
2518
|
+
const normalized = sessionId.toLowerCase();
|
|
2519
|
+
const route = `POST /standalone/sessions/:id/${action}`;
|
|
2520
|
+
const { timeoutMs, ...body } = request;
|
|
2521
|
+
return await this.standaloneJsonRequest(
|
|
2522
|
+
`/standalone/sessions/${urlEncode(normalized)}/${action}`,
|
|
2523
|
+
route,
|
|
2524
|
+
(response) => parseRestoredStandaloneSession(response, route, normalized),
|
|
2525
|
+
{
|
|
2526
|
+
method: "POST",
|
|
2527
|
+
body,
|
|
2528
|
+
clientId,
|
|
2529
|
+
timeoutMs: this.resolveRestoreTimeoutMs(timeoutMs)
|
|
2530
|
+
}
|
|
2531
|
+
);
|
|
2532
|
+
}
|
|
2533
|
+
async getStandaloneSessionUnchecked(sessionId) {
|
|
2534
|
+
const route = "GET /standalone/sessions/:id";
|
|
2535
|
+
const response = await this.jsonRequest(
|
|
2536
|
+
`/standalone/sessions/${urlEncode(sessionId)}`,
|
|
2537
|
+
route,
|
|
2538
|
+
{ mode: "rest" }
|
|
2539
|
+
);
|
|
2540
|
+
return parseStandaloneLookup(response, route, sessionId);
|
|
2541
|
+
}
|
|
2542
|
+
async recoverStandaloneCreation(sessionId) {
|
|
2543
|
+
try {
|
|
2544
|
+
const lookup = await this.getStandaloneSessionUnchecked(sessionId);
|
|
2545
|
+
return "state" in lookup ? { state: "creating", sessionId } : { state: "existing", session: lookup };
|
|
2546
|
+
} catch (error) {
|
|
2547
|
+
return isStandaloneSessionNotFoundError(error) ? { state: "absent", sessionId } : { state: "unknown", sessionId, error };
|
|
2548
|
+
}
|
|
2549
|
+
}
|
|
2140
2550
|
async createOrAttachSession(req, clientId) {
|
|
2141
2551
|
if (req.sessionId !== void 0 && req.sessionId !== null) {
|
|
2142
2552
|
await this.requireCapability("session_id_override");
|
|
@@ -4014,13 +4424,20 @@ var DaemonClient = class {
|
|
|
4014
4424
|
}
|
|
4015
4425
|
);
|
|
4016
4426
|
}
|
|
4017
|
-
async archiveSessionsData(sessionIds, clientId) {
|
|
4427
|
+
async archiveSessionsData(sessionIds, clientIdOrOptions, clientId) {
|
|
4428
|
+
const options = typeof clientIdOrOptions === "object" ? clientIdOrOptions : void 0;
|
|
4018
4429
|
return await this.fetchWithTimeout(
|
|
4019
4430
|
`${this.baseUrl}/sessions/archive`,
|
|
4020
4431
|
{
|
|
4021
4432
|
method: "POST",
|
|
4022
|
-
headers: this.headers(
|
|
4023
|
-
|
|
4433
|
+
headers: this.headers(
|
|
4434
|
+
{ "Content-Type": "application/json" },
|
|
4435
|
+
typeof clientIdOrOptions === "string" ? clientIdOrOptions : clientId
|
|
4436
|
+
),
|
|
4437
|
+
body: JSON.stringify({
|
|
4438
|
+
sessionIds,
|
|
4439
|
+
...options?.resolveConflicts !== void 0 ? { resolveConflicts: options.resolveConflicts } : {}
|
|
4440
|
+
})
|
|
4024
4441
|
},
|
|
4025
4442
|
async (res) => {
|
|
4026
4443
|
if (res.ok) {
|
|
@@ -4030,13 +4447,20 @@ var DaemonClient = class {
|
|
|
4030
4447
|
}
|
|
4031
4448
|
);
|
|
4032
4449
|
}
|
|
4033
|
-
async unarchiveSessionsData(sessionIds, clientId) {
|
|
4450
|
+
async unarchiveSessionsData(sessionIds, clientIdOrOptions, clientId) {
|
|
4451
|
+
const options = typeof clientIdOrOptions === "object" ? clientIdOrOptions : void 0;
|
|
4034
4452
|
return await this.fetchWithTimeout(
|
|
4035
4453
|
`${this.baseUrl}/sessions/unarchive`,
|
|
4036
4454
|
{
|
|
4037
4455
|
method: "POST",
|
|
4038
|
-
headers: this.headers(
|
|
4039
|
-
|
|
4456
|
+
headers: this.headers(
|
|
4457
|
+
{ "Content-Type": "application/json" },
|
|
4458
|
+
typeof clientIdOrOptions === "string" ? clientIdOrOptions : clientId
|
|
4459
|
+
),
|
|
4460
|
+
body: JSON.stringify({
|
|
4461
|
+
sessionIds,
|
|
4462
|
+
...options?.resolveConflicts !== void 0 ? { resolveConflicts: options.resolveConflicts } : {}
|
|
4463
|
+
})
|
|
4040
4464
|
},
|
|
4041
4465
|
async (res) => {
|
|
4042
4466
|
if (res.ok) {
|
|
@@ -4832,20 +5256,28 @@ var WorkspaceDaemonClient = class {
|
|
|
4832
5256
|
clientId
|
|
4833
5257
|
);
|
|
4834
5258
|
}
|
|
4835
|
-
archiveSessionsData(sessionIds, clientId) {
|
|
5259
|
+
archiveSessionsData(sessionIds, clientIdOrOptions, clientId) {
|
|
5260
|
+
const options = typeof clientIdOrOptions === "object" ? clientIdOrOptions : void 0;
|
|
4836
5261
|
return this.post(
|
|
4837
5262
|
"/sessions/archive",
|
|
4838
5263
|
"POST /workspaces/:workspace/sessions/archive",
|
|
4839
|
-
{
|
|
4840
|
-
|
|
5264
|
+
{
|
|
5265
|
+
sessionIds,
|
|
5266
|
+
...options?.resolveConflicts !== void 0 ? { resolveConflicts: options.resolveConflicts } : {}
|
|
5267
|
+
},
|
|
5268
|
+
typeof clientIdOrOptions === "string" ? clientIdOrOptions : clientId
|
|
4841
5269
|
);
|
|
4842
5270
|
}
|
|
4843
|
-
unarchiveSessionsData(sessionIds, clientId) {
|
|
5271
|
+
unarchiveSessionsData(sessionIds, clientIdOrOptions, clientId) {
|
|
5272
|
+
const options = typeof clientIdOrOptions === "object" ? clientIdOrOptions : void 0;
|
|
4844
5273
|
return this.post(
|
|
4845
5274
|
"/sessions/unarchive",
|
|
4846
5275
|
"POST /workspaces/:workspace/sessions/unarchive",
|
|
4847
|
-
{
|
|
4848
|
-
|
|
5276
|
+
{
|
|
5277
|
+
sessionIds,
|
|
5278
|
+
...options?.resolveConflicts !== void 0 ? { resolveConflicts: options.resolveConflicts } : {}
|
|
5279
|
+
},
|
|
5280
|
+
typeof clientIdOrOptions === "string" ? clientIdOrOptions : clientId
|
|
4849
5281
|
);
|
|
4850
5282
|
}
|
|
4851
5283
|
readWorkspaceFile(filePath, opts = {}, clientId) {
|
|
@@ -5164,12 +5596,50 @@ function isSessionAttachmentReference(value) {
|
|
|
5164
5596
|
__name(isSessionAttachmentReference, "isSessionAttachmentReference");
|
|
5165
5597
|
var MAX_ATTACHMENT_CACHE_BYTES = 32 * 1024 * 1024;
|
|
5166
5598
|
var MAX_ATTACHMENT_CACHE_ENTRIES = 128;
|
|
5599
|
+
function createStandaloneRestoredClient(client, restored, includeReplay) {
|
|
5600
|
+
const {
|
|
5601
|
+
state,
|
|
5602
|
+
hasActivePrompt,
|
|
5603
|
+
compactedReplay,
|
|
5604
|
+
liveJournal,
|
|
5605
|
+
historyHasMore,
|
|
5606
|
+
historyAnchorRecordId,
|
|
5607
|
+
replayDegraded,
|
|
5608
|
+
partial,
|
|
5609
|
+
replayError,
|
|
5610
|
+
lastEventId,
|
|
5611
|
+
eventEpoch,
|
|
5612
|
+
...session
|
|
5613
|
+
} = restored;
|
|
5614
|
+
return new DaemonSessionClient({
|
|
5615
|
+
client,
|
|
5616
|
+
session,
|
|
5617
|
+
hasActivePrompt,
|
|
5618
|
+
state,
|
|
5619
|
+
lastEventId: lastEventId ?? 0,
|
|
5620
|
+
eventEpoch,
|
|
5621
|
+
...includeReplay ? {
|
|
5622
|
+
replaySnapshot: {
|
|
5623
|
+
compactedReplay: compactedReplay ?? [],
|
|
5624
|
+
liveJournal: liveJournal ?? []
|
|
5625
|
+
},
|
|
5626
|
+
replaySnapshotComplete: Array.isArray(compactedReplay) && Array.isArray(liveJournal),
|
|
5627
|
+
replayPartial: partial === true,
|
|
5628
|
+
replayError,
|
|
5629
|
+
historyHasMore,
|
|
5630
|
+
historyAnchorRecordId,
|
|
5631
|
+
replayDegraded
|
|
5632
|
+
} : {}
|
|
5633
|
+
});
|
|
5634
|
+
}
|
|
5635
|
+
__name(createStandaloneRestoredClient, "createStandaloneRestoredClient");
|
|
5167
5636
|
var DaemonSessionClient = class _DaemonSessionClient {
|
|
5168
5637
|
static {
|
|
5169
5638
|
__name(this, "DaemonSessionClient");
|
|
5170
5639
|
}
|
|
5171
5640
|
client;
|
|
5172
5641
|
session;
|
|
5642
|
+
restoreStrategy;
|
|
5173
5643
|
state;
|
|
5174
5644
|
/**
|
|
5175
5645
|
* Not `readonly`: {@link consumeReplaySnapshot} swaps it for an empty
|
|
@@ -5217,6 +5687,8 @@ var DaemonSessionClient = class _DaemonSessionClient {
|
|
|
5217
5687
|
constructor(opts) {
|
|
5218
5688
|
this.client = opts.client;
|
|
5219
5689
|
this.session = { ...opts.session };
|
|
5690
|
+
const context = opts.session.context;
|
|
5691
|
+
this.restoreStrategy = opts.session.sourceType === "standalone" && context?.kind === "standalone" ? { kind: "standalone" } : { kind: "workspace", workspaceCwd: opts.session.workspaceCwd };
|
|
5220
5692
|
this.state = { ...opts.state ?? {} };
|
|
5221
5693
|
this.hasActivePrompt = opts.hasActivePrompt ?? false;
|
|
5222
5694
|
this.historyHasMore = opts.historyHasMore ?? false;
|
|
@@ -5316,6 +5788,34 @@ var DaemonSessionClient = class _DaemonSessionClient {
|
|
|
5316
5788
|
eventEpoch
|
|
5317
5789
|
});
|
|
5318
5790
|
}
|
|
5791
|
+
static async createStandalone(client, options = {}) {
|
|
5792
|
+
const session = await client.createStandaloneSession(options);
|
|
5793
|
+
return new _DaemonSessionClient({
|
|
5794
|
+
client,
|
|
5795
|
+
session,
|
|
5796
|
+
hasActivePrompt: session.hasActivePrompt,
|
|
5797
|
+
lastEventId: 0,
|
|
5798
|
+
eventEpoch: session.eventEpoch
|
|
5799
|
+
});
|
|
5800
|
+
}
|
|
5801
|
+
static async loadStandalone(client, sessionId, request = {}, clientId) {
|
|
5802
|
+
const restored = await client.loadStandaloneSession(
|
|
5803
|
+
sessionId,
|
|
5804
|
+
request,
|
|
5805
|
+
clientId
|
|
5806
|
+
);
|
|
5807
|
+
const result = createStandaloneRestoredClient(client, restored, true);
|
|
5808
|
+
await result.hydrateReplaySnapshot();
|
|
5809
|
+
return result;
|
|
5810
|
+
}
|
|
5811
|
+
static async resumeStandalone(client, sessionId, request = {}, clientId) {
|
|
5812
|
+
const restored = await client.resumeStandaloneSession(
|
|
5813
|
+
sessionId,
|
|
5814
|
+
request,
|
|
5815
|
+
clientId
|
|
5816
|
+
);
|
|
5817
|
+
return createStandaloneRestoredClient(client, restored, false);
|
|
5818
|
+
}
|
|
5319
5819
|
get sessionId() {
|
|
5320
5820
|
return this.session.sessionId;
|
|
5321
5821
|
}
|
|
@@ -5499,7 +5999,10 @@ var DaemonSessionClient = class _DaemonSessionClient {
|
|
|
5499
5999
|
*/
|
|
5500
6000
|
async reattach() {
|
|
5501
6001
|
if (this.reattaching) return this.reattaching;
|
|
5502
|
-
this.
|
|
6002
|
+
const resume = this.restoreStrategy.kind === "standalone" ? this.client.resumeStandaloneSession(this.sessionId) : this.client.resumeSession(this.sessionId, {
|
|
6003
|
+
workspaceCwd: this.restoreStrategy.workspaceCwd
|
|
6004
|
+
});
|
|
6005
|
+
this.reattaching = resume.then((session) => {
|
|
5503
6006
|
this.session.clientId = session.clientId;
|
|
5504
6007
|
});
|
|
5505
6008
|
try {
|
|
@@ -9723,7 +10226,9 @@ function clearActiveAssistant(state, event) {
|
|
|
9723
10226
|
}
|
|
9724
10227
|
__name(clearActiveAssistant, "clearActiveAssistant");
|
|
9725
10228
|
function applyAssistantUsage(state, event) {
|
|
9726
|
-
|
|
10229
|
+
if (isLegacySubagentUsageDuplicate(state, event)) return;
|
|
10230
|
+
const activeBlockId = state.activeAssistantBlockId ?? (event.parentToolCallId ? void 0 : latestTopLevelAssistantBlockIdInCurrentTurn(state));
|
|
10231
|
+
const block = getWritableBlockById(state, activeBlockId);
|
|
9727
10232
|
if (!block || block.kind !== "assistant") return;
|
|
9728
10233
|
const prev = block.usage;
|
|
9729
10234
|
block.usage = {
|
|
@@ -9734,6 +10239,31 @@ function applyAssistantUsage(state, event) {
|
|
|
9734
10239
|
block.updatedAt = state.now;
|
|
9735
10240
|
}
|
|
9736
10241
|
__name(applyAssistantUsage, "applyAssistantUsage");
|
|
10242
|
+
function isLegacySubagentUsageDuplicate(state, event) {
|
|
10243
|
+
if (event.parentToolCallId || !event.sourceRecordIds?.length) return false;
|
|
10244
|
+
const sourceRecordIds = new Set(event.sourceRecordIds);
|
|
10245
|
+
for (let i = state.blocks.length - 1; i >= 0; i -= 1) {
|
|
10246
|
+
const block = state.blocks[i];
|
|
10247
|
+
if (block.kind === "user" && !block.parentToolCallId) return false;
|
|
10248
|
+
if (block.kind !== "tool" || !block.sourceRecordIds?.some((id) => sourceRecordIds.has(id))) {
|
|
10249
|
+
continue;
|
|
10250
|
+
}
|
|
10251
|
+
const rawOutput = isRecord2(block.rawOutput) ? block.rawOutput : void 0;
|
|
10252
|
+
const summary = rawOutput && isRecord2(rawOutput["executionSummary"]) ? rawOutput["executionSummary"] : void 0;
|
|
10253
|
+
return summary?.["inputTokens"] === event.usage.inputTokens && summary["outputTokens"] === event.usage.outputTokens && (summary["cachedTokens"] ?? 0) === (event.usage.cachedTokens ?? 0);
|
|
10254
|
+
}
|
|
10255
|
+
return false;
|
|
10256
|
+
}
|
|
10257
|
+
__name(isLegacySubagentUsageDuplicate, "isLegacySubagentUsageDuplicate");
|
|
10258
|
+
function latestTopLevelAssistantBlockIdInCurrentTurn(state) {
|
|
10259
|
+
for (let i = state.blocks.length - 1; i >= 0; i -= 1) {
|
|
10260
|
+
const block = state.blocks[i];
|
|
10261
|
+
if (block.kind === "user" && !block.parentToolCallId) return void 0;
|
|
10262
|
+
if (block.kind === "assistant" && !block.parentToolCallId) return block.id;
|
|
10263
|
+
}
|
|
10264
|
+
return void 0;
|
|
10265
|
+
}
|
|
10266
|
+
__name(latestTopLevelAssistantBlockIdInCurrentTurn, "latestTopLevelAssistantBlockIdInCurrentTurn");
|
|
9737
10267
|
function applySubagentUsageToParentTool(state, event) {
|
|
9738
10268
|
if (!event.parentToolCallId) return;
|
|
9739
10269
|
const block = getWritableBlockById(
|
|
@@ -12279,12 +12809,15 @@ export {
|
|
|
12279
12809
|
DaemonPendingPromptLimitError,
|
|
12280
12810
|
DaemonSessionClient,
|
|
12281
12811
|
DaemonSessionIdProtocolError,
|
|
12812
|
+
DaemonStandaloneCreationOutcomeUnknownError,
|
|
12813
|
+
DaemonStandaloneProtocolError,
|
|
12282
12814
|
DaemonTransportClosedError,
|
|
12283
12815
|
EXTENSION_ARCHIVE_UPLOAD_TIMEOUT_MS,
|
|
12284
12816
|
MID_TURN_MESSAGE_INJECTED_EVENT,
|
|
12285
12817
|
PENDING_PROMPT_ADDED_EVENT,
|
|
12286
12818
|
PENDING_PROMPT_COMPLETED_EVENT,
|
|
12287
12819
|
PENDING_PROMPT_STARTED_EVENT,
|
|
12820
|
+
STANDALONE_SESSIONS_CAPABILITY,
|
|
12288
12821
|
SseFramingError,
|
|
12289
12822
|
UNRECOGNIZED_DIAGNOSTICS_LIMIT,
|
|
12290
12823
|
WorkspaceDaemonClient,
|
|
@@ -12314,6 +12847,8 @@ export {
|
|
|
12314
12847
|
isNonBlockingAccepted,
|
|
12315
12848
|
isSessionLevelNotFound,
|
|
12316
12849
|
isStaleBranchPointError,
|
|
12850
|
+
isStandaloneCreationOutcomeUnknown,
|
|
12851
|
+
isStandaloneSessionNotFoundError,
|
|
12317
12852
|
isSubagentChildBlock,
|
|
12318
12853
|
isSubagentSessionNotFound,
|
|
12319
12854
|
isTrimmedPermissionBlockId,
|
|
@@ -12356,3 +12891,8 @@ export {
|
|
|
12356
12891
|
* Copyright 2025 Alibaba Group Holding Limited. All Rights Reserved.
|
|
12357
12892
|
* Licensed under the Apache License, Version 2.0
|
|
12358
12893
|
*/
|
|
12894
|
+
/**
|
|
12895
|
+
* @license
|
|
12896
|
+
* Copyright 2026 Qwen Team
|
|
12897
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
12898
|
+
*/
|