@qwen-code/qwen-code 0.22.1 → 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/goal-draft/SKILL.md +109 -0
- package/bundled/qc-helper/docs/configuration/settings.md +13 -13
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +34 -3
- package/bundled/qc-helper/docs/features/code-review.md +3 -3
- package/bundled/qc-helper/docs/features/commands.md +2 -1
- 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/status-line.md +3 -3
- package/bundled/review/SKILL.md +70 -22
- package/bundled/review/references/persistence.md +7 -3
- package/bundled/review/references/posting.md +2 -0
- package/chunks/MaxSizedBox-LMWXCLDV.js +110 -0
- package/chunks/{StandaloneSessionPicker-XF2TVJFK.js → StandaloneSessionPicker-W3F7U3JL.js} +79 -81
- package/chunks/{acpAgent-GY53MJIW.js → acpAgent-EYZ6EEHD.js} +1132 -339
- package/chunks/{agent-7U6CC5KF.js → agent-RBLGBY65.js} +44 -46
- package/chunks/agent-headless-L5T4Y4OZ.js +85 -0
- package/chunks/{anthropicContentGenerator-U76GTVB6.js → anthropicContentGenerator-GMHML35Q.js} +10 -11
- package/chunks/{artifact-tool-XDJCZZCF.js → artifact-tool-XSMPHZBT.js} +11 -3
- package/chunks/{askUserQuestion-ZXXERLEV.js → askUserQuestion-4SWJY65V.js} +2 -2
- package/chunks/bridge-5LR2F2ND.js +119 -0
- package/chunks/{channel-management-service-HXXS3HOZ.js → channel-management-service-KHR3N6CH.js} +6 -6
- package/chunks/channel-settings-store-4FOAZW72.js +120 -0
- package/chunks/{channel-worker-group-EVDC2P4K.js → channel-worker-group-6NA6BBZV.js} +8 -7
- package/chunks/{channel-worker-manager-IJJZHGEI.js → channel-worker-manager-NEZ2J6RK.js} +10 -8
- package/chunks/{channel-worker-supervisor-YSKB5GVB.js → channel-worker-supervisor-FKU7DIHJ.js} +6 -5
- package/chunks/{chunk-7QGEJI7M.js → chunk-23RFD54N.js} +1 -1
- package/chunks/{chunk-LJP2BBMK.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-ZWKGZB2K.js → chunk-3JXM2CVW.js} +3 -3
- package/chunks/{chunk-ICWGPK23.js → chunk-3K6TUZHS.js} +7 -7
- package/chunks/{chunk-43C2II2G.js → chunk-3OOXT6CR.js} +5 -5
- package/chunks/{chunk-ILPXSKGQ.js → chunk-3WK3QDNV.js} +2 -2
- package/chunks/{chunk-2YDYDDE2.js → chunk-3XOKEVII.js} +3 -3
- package/chunks/chunk-3Y34Q3JV.js +1584 -0
- package/chunks/{chunk-ZLTEQYNC.js → chunk-42IDLQWS.js} +26 -20
- package/chunks/{chunk-5MK32KJV.js → chunk-454XFGH4.js} +3 -3
- package/chunks/chunk-4CMJKUND.js +95 -0
- package/chunks/{chunk-77TOMRBG.js → chunk-4K7KNVWH.js} +3 -3
- package/chunks/{chunk-V3GINY6K.js → chunk-4QHPPXK2.js} +16 -8
- package/chunks/{chunk-UCSV2IZW.js → chunk-62GQFYID.js} +3 -3
- package/chunks/{chunk-SLEWBQWM.js → chunk-6DIGWMGT.js} +2 -2
- package/chunks/{chunk-I6YW3T3W.js → chunk-6JCGO55P.js} +723 -3399
- package/chunks/{chunk-PVBT5QPD.js → chunk-6PJOTWAN.js} +1 -1
- package/chunks/{chunk-5Y2JCJAH.js → chunk-6W2IK5KC.js} +956 -17
- package/chunks/{chunk-A7X32SCT.js → chunk-6ZZBRRKQ.js} +5 -5
- package/chunks/{chunk-ELY4QVIB.js → chunk-7EQQR46F.js} +1 -1
- package/chunks/{chunk-4DCP3362.js → chunk-7GWQW5ID.js} +4 -4
- package/chunks/chunk-7J6OTNGO.js +424 -0
- package/chunks/{chunk-CITGRGCM.js → chunk-7TUBJBBJ.js} +4 -1
- package/chunks/{chunk-L436XFLJ.js → chunk-7VD6IPQM.js} +1 -1
- package/chunks/{chunk-E4I5MVBR.js → chunk-ABS25QER.js} +1 -1
- package/chunks/{chunk-2ZV3CZKI.js → chunk-AJGR6E6Z.js} +49 -32
- package/chunks/{chunk-HJOWQUE2.js → chunk-AU3MMVJF.js} +31 -14
- package/chunks/{chunk-I32QCIK7.js → chunk-AXC26UCQ.js} +1 -1
- package/chunks/{chunk-7AS7QX72.js → chunk-AY3BNYEQ.js} +1 -1
- package/chunks/{chunk-FVDQ5E67.js → chunk-B466ZSHZ.js} +3 -3
- package/chunks/{chunk-OI2DR6QB.js → chunk-B5OUL5EL.js} +2 -2
- package/chunks/{chunk-6US7BF3G.js → chunk-B5PHIJGI.js} +183 -5
- package/chunks/{chunk-5T4LWWNX.js → chunk-B7CDU2SL.js} +2 -2
- package/chunks/{chunk-4TPAG3O7.js → chunk-BFPESSTR.js} +1 -1
- package/chunks/{chunk-WBT3STGU.js → chunk-BKWNKLZB.js} +20 -20
- package/chunks/{chunk-73WFGVIZ.js → chunk-BOWFGCEU.js} +3 -3
- package/chunks/{chunk-EMGAVCBZ.js → chunk-BPAKYXQ3.js} +2 -2
- package/chunks/{chunk-IPQA4SR5.js → chunk-BWORX6FA.js} +1 -1
- package/chunks/{chunk-BKDAF7ES.js → chunk-BXDAPVQU.js} +2 -2
- package/chunks/{chunk-ZEADBZLO.js → chunk-C2X7KY45.js} +3 -3
- package/chunks/{chunk-T2HMXHYA.js → chunk-C3KURPP7.js} +6 -6
- package/chunks/{chunk-JUIJ3FXC.js → chunk-CAJTKR6W.js} +5 -5
- package/chunks/{chunk-2FN2HNTI.js → chunk-CFJY4DGX.js} +2 -2
- package/chunks/{chunk-DP7LABIB.js → chunk-CMHFCLBU.js} +1 -1
- package/chunks/{chunk-LRKMQPMD.js → chunk-CQH5KTKC.js} +1 -1
- package/chunks/{chunk-J7MLXFC5.js → chunk-CRKKHXTI.js} +185 -174
- package/chunks/{chunk-XNXWEGKB.js → chunk-CYAUBK46.js} +3 -3
- package/chunks/{chunk-JECO75XD.js → chunk-D5LUXLUH.js} +2 -2
- package/chunks/{chunk-SRGENTPF.js → chunk-DFDWJE6Z.js} +48 -31
- package/chunks/chunk-DJBQCO2E.js +842 -0
- package/chunks/{chunk-2CRNTW2B.js → chunk-DP4MWIM3.js} +2 -2
- package/chunks/{chunk-EB4VDXNI.js → chunk-DYXFD5RO.js} +182 -3
- package/chunks/{chunk-ODXCSIH5.js → chunk-E3XVSVKK.js} +26 -4
- package/chunks/{chunk-ZKAZP2ZG.js → chunk-EB6QRGHM.js} +3 -3
- package/chunks/{chunk-GNRVKN76.js → chunk-EKNBU2X7.js} +4 -4
- package/chunks/{chunk-3UZCLCXR.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-XYX474JQ.js → chunk-EWIQ3NAE.js} +2522 -2030
- package/chunks/{chunk-O5YGAEQS.js → chunk-FALBWZF4.js} +6 -6
- package/chunks/{chunk-GZJUCMH4.js → chunk-FEHMA4RO.js} +542 -654
- package/chunks/{chunk-2YEZNBSD.js → chunk-FMFBLTLY.js} +320 -86
- package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
- package/chunks/{chunk-ZJG323IA.js → chunk-G6FECKTJ.js} +7 -5
- package/chunks/{chunk-6KS24S3X.js → chunk-GGNE3JAW.js} +1 -1
- package/chunks/{chunk-BQBUZDDH.js → chunk-H33EQVMG.js} +4 -4
- package/chunks/chunk-H72BQNM3.js +645 -0
- package/chunks/{chunk-5ZYZPDDF.js → chunk-HGIMWQVT.js} +30 -25
- package/chunks/{chunk-DCSAVGDJ.js → chunk-HOCJDUFY.js} +2 -2
- package/chunks/{chunk-MDZO5V2O.js → chunk-HPXV655A.js} +9 -7
- package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
- package/chunks/{chunk-2MHGD7EE.js → chunk-HYDJDQGJ.js} +1 -1
- package/chunks/{chunk-BDHLBR46.js → chunk-IB7FQJRY.js} +34 -11
- package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
- package/chunks/{chunk-PAJGKZAA.js → chunk-ISKH4QX3.js} +14 -12
- package/chunks/{chunk-3B5DCAQU.js → chunk-J6S24ZJE.js} +34 -34
- package/chunks/{chunk-AYVIGUUK.js → chunk-JB4JIVTJ.js} +1 -1
- package/chunks/{chunk-C4WBKZJT.js → chunk-JN4IWWMN.js} +4 -4
- package/chunks/{chunk-6HTMIKXZ.js → chunk-JUUBLSZU.js} +4 -4
- package/chunks/{chunk-T6OODF2U.js → chunk-JWALNCLT.js} +1 -1
- package/chunks/{chunk-SKNVVYIJ.js → chunk-K5KXUXWC.js} +3 -3
- package/chunks/{chunk-IRIX323G.js → chunk-KTJFDCX4.js} +2 -2
- package/chunks/{chunk-FK4H3V6S.js → chunk-LEFCFTEX.js} +6 -6
- package/chunks/{chunk-OQ6LTSX3.js → chunk-LEGTMYAE.js} +1 -1
- package/chunks/{chunk-NY3IJYAV.js → chunk-LLZA2IK3.js} +15 -9
- package/chunks/{chunk-5CI4AXDD.js → chunk-LNETQKBE.js} +4 -4
- package/chunks/{chunk-TOF4UZHH.js → chunk-LUEHOUHM.js} +3 -3
- package/chunks/{chunk-62PXFOK4.js → chunk-LVPZO674.js} +4 -4
- package/chunks/{chunk-EEQYTWGU.js → chunk-M4ORUPYI.js} +5 -5
- package/chunks/{chunk-GNMJNDZE.js → chunk-M6FOJXW3.js} +1 -1
- package/chunks/{chunk-MYLXL7F6.js → chunk-MAYHGRP4.js} +9 -9
- package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
- package/chunks/{chunk-SM7ZVKTF.js → chunk-MTJN7FOT.js} +7 -7
- package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
- package/chunks/{chunk-27ONXAFY.js → chunk-NIFYWDYN.js} +1 -1
- package/chunks/{chunk-IJVDHPKD.js → chunk-NU7RKEZR.js} +2 -2
- package/chunks/{chunk-R2ZJH3FV.js → chunk-NXMBRVMQ.js} +3 -3
- package/chunks/{chunk-JLGFGPZJ.js → chunk-OI4NY7RA.js} +2 -2
- package/chunks/{chunk-RRKNX553.js → chunk-PDQGMSZK.js} +1 -1
- package/chunks/{chunk-GTUKW3I6.js → chunk-PPKZ7JOE.js} +1 -1
- package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
- package/chunks/{chunk-MW5AHWOZ.js → chunk-PWIGAMA4.js} +93 -14
- package/chunks/{chunk-WEGXPP5E.js → chunk-QFCDF5PL.js} +1 -1
- package/chunks/{chunk-EAV3TENS.js → chunk-QPTRRPZU.js} +44 -7
- package/chunks/{chunk-SQPOJ4ZI.js → chunk-RFI4YGMR.js} +21 -266
- package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
- package/chunks/chunk-RKFGE7JH.js +93 -0
- package/chunks/chunk-RNVFRIOO.js +275 -0
- package/chunks/{chunk-CPPYZHBN.js → chunk-RU7BK6B3.js} +1 -1
- package/chunks/{chunk-OT26ITEY.js → chunk-RVXDXY6I.js} +3 -3
- package/chunks/{chunk-W2WRNJKX.js → chunk-RWZB422L.js} +5 -5
- package/chunks/{chunk-6YAR6ZU3.js → chunk-RYNZQGXN.js} +19 -2
- package/chunks/{chunk-EKP3M4RF.js → chunk-SJ5ERAW3.js} +1 -1
- package/chunks/{chunk-DEYPMJPD.js → chunk-SMPR7SPO.js} +1 -1
- package/chunks/{chunk-3BV7TZNQ.js → chunk-SRZZY4IY.js} +3 -3
- package/chunks/{chunk-7CWEZQ6T.js → chunk-STUJ7IMZ.js} +0 -77
- package/chunks/{chunk-TKO4TLT6.js → chunk-SUX7HDNA.js} +3 -3
- package/chunks/{chunk-76WGY6LW.js → chunk-SVNO44PF.js} +3 -3
- package/chunks/{chunk-UX3IFLJM.js → chunk-SZLBBZH4.js} +150 -23
- package/chunks/{chunk-K63NK3KL.js → chunk-T2NKRHZZ.js} +13 -13
- package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
- package/chunks/{chunk-2NCVUT3C.js → chunk-TLHUNMO7.js} +4 -4
- package/chunks/{chunk-EC5BONC3.js → chunk-TPI7O7HR.js} +1 -1
- package/chunks/{chunk-ZXDM7DYV.js → chunk-TQHGJYR3.js} +2029 -616
- package/chunks/{chunk-T2CRBIDJ.js → chunk-TTX2JUE6.js} +1 -1
- package/chunks/{chunk-OX44MOAN.js → chunk-TW3E6YNO.js} +3 -3
- package/chunks/chunk-U54AYGEC.js +337 -0
- package/chunks/{chunk-2NNTE2ED.js → chunk-UHQFIS7N.js} +15 -0
- package/chunks/{chunk-KOJ6MHD5.js → chunk-UTLCH2FK.js} +1 -1
- package/chunks/{chunk-KCOXDRQL.js → chunk-UY3PBNY3.js} +17 -29
- package/chunks/{chunk-7DPKPBOQ.js → chunk-V2NDP3I4.js} +2 -2
- package/chunks/{chunk-47SIHHPL.js → chunk-V2QDDC5J.js} +19 -9
- package/chunks/{chunk-BVE5EMIG.js → chunk-V5J4J5TP.js} +2 -2
- package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
- package/chunks/{chunk-XJS54K4A.js → chunk-VTHREBQM.js} +2 -2
- package/chunks/{chunk-VMDURMFY.js → chunk-W6DUQ5GA.js} +11307 -10424
- package/chunks/{chunk-BX2BZPFJ.js → chunk-WALC5VJH.js} +4 -4
- package/chunks/{chunk-FPH6TXD3.js → chunk-WAOIHTJS.js} +1 -1
- package/chunks/{chunk-LI2HEMKO.js → chunk-WBHKK3CU.js} +4 -4
- package/chunks/{chunk-O3BUXIPM.js → chunk-WXEA74YB.js} +3 -3
- package/chunks/{chunk-NER3H7PI.js → chunk-X3ZRTCJD.js} +1 -1
- package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
- package/chunks/{chunk-VL4YX3FH.js → chunk-XF63PKEN.js} +1 -1
- package/chunks/{chunk-FN5C6C7G.js → chunk-XLLQJRAH.js} +190 -478
- package/chunks/{chunk-3FSBMAYD.js → chunk-XQFT3QUF.js} +1 -1
- package/chunks/{chunk-FJWICLG7.js → chunk-Y3QL45LS.js} +1 -1
- package/chunks/{chunk-IKN3IUJP.js → chunk-Y4TPOUEV.js} +17 -9
- package/chunks/{chunk-NVK4HJYQ.js → chunk-YRZX2PHA.js} +1 -1
- package/chunks/{chunk-2SERYG4T.js → chunk-YTDVNSUQ.js} +1 -1
- package/chunks/{chunk-KWFP3WV6.js → chunk-YWQ237GX.js} +4 -193
- package/chunks/{chunk-6E4WHQJV.js → chunk-ZTP35P4B.js} +1 -1
- package/chunks/{chunk-E6FGMDFQ.js → chunk-ZU4UDIWX.js} +19 -1
- package/chunks/config-utils-JVGAP34H.js +113 -0
- package/chunks/contextCommand-XDB7OSO7.js +106 -0
- package/chunks/{core-runtime-PKNQ63VL.js → core-runtime-XHYA2RH7.js} +59 -61
- package/chunks/{create-sub-session-RVHSWVAP.js → create-sub-session-23ITIELI.js} +3 -3
- package/chunks/{create-sub-session-PLGPY6TV.js → create-sub-session-MHYCFNCM.js} +163 -84
- package/chunks/{cron-create-IJGVR5R2.js → cron-create-KJ4IY6PP.js} +57 -10
- package/chunks/{cron-delete-4N5BI6GL.js → cron-delete-MBLQCAYY.js} +4 -4
- package/chunks/{cron-list-2CATIPUX.js → cron-list-DWH2PQ47.js} +4 -4
- package/chunks/{daemon-NAYK4XXU.js → daemon-K5XS42ID.js} +516 -3
- package/chunks/{daemon-git-worktree-guard-LDBJXH2U.js → daemon-git-worktree-guard-V3P5XLHB.js} +56 -58
- package/chunks/daemon-status-provider-KKU7ZTLM.js +117 -0
- package/chunks/daemon-trust-policy-TZGK34DW.js +112 -0
- package/chunks/{daemon-trust-policy-monitor-IGEJPHQ4.js → daemon-trust-policy-monitor-F23DD2M4.js} +62 -64
- package/chunks/deferred-core-runtime-LKLGBCGZ.js +114 -0
- package/chunks/{display-image-DR55LL6M.js → display-image-BE7I6ZB6.js} +5 -5
- package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
- package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
- package/chunks/{dist-6H6RZ5H6.js → dist-6BPYWHVD.js} +89 -65
- package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
- package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
- package/chunks/{dist-FVJZSIO4.js → dist-LVZCXVPF.js} +72 -20
- package/chunks/{dist-7CKN54NL.js → dist-N6W6E753.js} +71 -64
- package/chunks/{dist-4Q7NTUNB.js → dist-QDLFKWOL.js} +2 -2
- package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
- package/chunks/earlyInputCapture-NERYFYTR.js +107 -0
- package/chunks/{edit-KSPVUEAS.js → edit-ACCATIXB.js} +45 -47
- package/chunks/{en-6MDBWMTG.js → en-YLXBXM4Z.js} +2 -1
- package/chunks/{enter-worktree-UOZ6ZTP7.js → enter-worktree-35QCAAFP.js} +7 -7
- package/chunks/{enterPlanMode-DZTABSKN.js → enterPlanMode-NEN6EPVM.js} +44 -46
- package/chunks/{environment-JXOSW25V.js → environment-CKWHBC5T.js} +58 -60
- package/chunks/errors-XTZPNQ77.js +113 -0
- package/chunks/{exit-worktree-G2QATUCV.js → exit-worktree-XQD6D543.js} +7 -7
- package/chunks/exitPlanMode-CY344X5J.js +83 -0
- package/chunks/{fast-path-EBS7NAVL.js → fast-path-YSOX4PAM.js} +5 -5
- package/chunks/{gemini-JELEKOVS.js → gemini-VQY2YCPH.js} +110 -108
- package/chunks/{geminiContentGenerator-I2CKP7XI.js → geminiContentGenerator-PAPXNIGU.js} +8 -8
- package/chunks/{glob-TDVEVPQZ.js → glob-GVCUSBBF.js} +44 -46
- package/chunks/{goal-tools-CNVXMSZD.js → goal-tools-5STK6OXW.js} +10 -8
- package/chunks/{grep-3NLSS32D.js → grep-5GPICQBU.js} +6 -6
- package/chunks/handleAutoUpdate-ZJPJN42W.js +109 -0
- package/chunks/i18n-BZYKOST7.js +124 -0
- package/chunks/{image-gen-63NN2H5N.js → image-gen-J6FDGUZP.js} +8 -10
- package/chunks/initializer-GO2C5HE3.js +113 -0
- package/chunks/installationInfo-WM2GXQZ6.js +107 -0
- package/chunks/{keychain-token-storage-3MGFRYGM.js → keychain-token-storage-37XPR34V.js} +2 -2
- package/chunks/list-ERDJB7PQ.js +116 -0
- package/chunks/{list-agents-EXRSHIDJ.js → list-agents-DI3YFTDT.js} +2 -2
- package/chunks/loadedSettingsAdapter-7JOCVOKV.js +110 -0
- package/chunks/{loggingContentGenerator-CZWUAHAI.js → loggingContentGenerator-3ONLU3BS.js} +321 -30
- package/chunks/{loop-wakeup-XBPB2BRO.js → loop-wakeup-XJFONSQ7.js} +5 -5
- package/chunks/{ls-WFONAND2.js → ls-3VAT2J7A.js} +4 -4
- package/chunks/{lsp-DUKPDUXN.js → lsp-5W7IRUBH.js} +2 -2
- package/chunks/{managed-npm-update-54W23SP5.js → managed-npm-update-TLRCC2GE.js} +57 -59
- package/chunks/mcp-2LH3QXR2.js +110 -0
- package/chunks/{monitor-A4J5QRGJ.js → monitor-P7LDAL4W.js} +44 -46
- package/chunks/nonInteractiveCli-E5T7PZ27.js +184 -0
- package/chunks/{notebook-edit-4ANFZON5.js → notebook-edit-F7KSG4WQ.js} +45 -47
- package/chunks/{openaiContentGenerator-JCCJJQZC.js → openaiContentGenerator-2EXCZUGN.js} +26 -28
- package/chunks/pidfile-P25DWA5Q.js +111 -0
- package/chunks/process-registry-OAEG6WGC.js +662 -0
- package/chunks/{processUtils-JJAR56SO.js → processUtils-PVDKBL35.js} +2 -2
- package/chunks/prompt-terminal-ledger-AJ7T7OIV.js +105 -0
- package/chunks/{qwenContentGenerator-5JM44ZSA.js → qwenContentGenerator-TBBRLWIT.js} +49 -51
- package/chunks/{qwenOAuth2-JIYAWXTW.js → qwenOAuth2-OF5WRBQT.js} +7 -9
- package/chunks/{read-file-N3E5DY7N.js → read-file-6IIY4RLJ.js} +13 -13
- package/chunks/{read-mcp-resource-7A7NFSFL.js → read-mcp-resource-XD257PGJ.js} +2 -2
- package/chunks/{record-artifact-CPJ4IJSD.js → record-artifact-VW23GS4F.js} +4 -4
- package/chunks/{report-findings-VFM5DENC.js → report-findings-XA3FJG3N.js} +5 -5
- package/chunks/{request-shutdown-AXVOFN5C.js → request-shutdown-BCLA3JV2.js} +7 -7
- package/chunks/resumeHistoryUtils-44IETXDY.js +118 -0
- package/chunks/ripGrep-E7ESZ7SS.js +39 -0
- package/chunks/{run-qwen-serve-IWGPZADI.js → run-qwen-serve-DXBCYW7V.js} +356 -331
- package/chunks/{runtime-I76HPFUE.js → runtime-RUSPD35D.js} +67 -69
- package/chunks/scheduled-tasks-DVRJZO6I.js +127 -0
- package/chunks/{scheduler-M6YL4K4I.js → scheduler-TDRB2NSY.js} +58 -60
- package/chunks/{sdk-exporters-http-XXSKBD2C.js → sdk-exporters-http-TTU2CHBU.js} +2 -2
- package/chunks/{sdk-impl-VPNBLV7I.js → sdk-impl-UUMVYMAL.js} +11 -5
- package/chunks/{send-message-A2GXDX3B.js → send-message-AJ4OCUBV.js} +25 -9
- package/chunks/serve-KITOM7OR.js +118 -0
- package/chunks/{server-TWXRRREO.js → server-THCOMUC2.js} +5476 -4771
- package/chunks/{session-IT5ZXU7A.js → session-XKR5MPXE.js} +105 -106
- package/chunks/session-pr-refresh-KRBH7KDA.js +278 -0
- package/chunks/{settings-IX5HOOCG.js → settings-YXZ4XBKK.js} +61 -63
- package/chunks/{shell-LZ55AAJB.js → shell-5FJ2DZ3W.js} +44 -46
- package/chunks/{skill-WSZ53D2R.js → skill-VMMJZ6CJ.js} +71 -26
- 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-O6BI2OSA.js → startInteractiveUI-5A7RQFRP.js} +2902 -2289
- package/chunks/{syntheticOutput-5AJ444QT.js → syntheticOutput-ML43GEFN.js} +3 -3
- package/chunks/{task-create-CDJSOEQD.js → task-create-QN4LYRSE.js} +11 -11
- package/chunks/{task-list-BELMPA75.js → task-list-JPLGK45U.js} +5 -5
- package/chunks/{task-stop-U3S3KZG2.js → task-stop-CXEH5L2D.js} +2 -2
- package/chunks/{task-update-77VCFDDZ.js → task-update-IWEOJFV2.js} +11 -11
- package/chunks/{team-create-UF4TMQEH.js → team-create-HVGVUL2L.js} +44 -46
- package/chunks/{team-delete-YWFXX77L.js → team-delete-RZVVSGCY.js} +5 -5
- package/chunks/{team-plan-approval-U57NSR6C.js → team-plan-approval-S5A5FQWU.js} +44 -46
- package/chunks/terminal-image-renderer-SIVPPXDI.js +114 -0
- package/chunks/theme-manager-TA33UZZX.js +102 -0
- package/chunks/{todoWrite-435EO2CS.js → todoWrite-WDJNQEMW.js} +43 -25
- package/chunks/{tool-search-SV35UV72.js → tool-search-NX7IPDKP.js} +18 -18
- package/chunks/total-session-admission-PWXZBOVX.js +114 -0
- package/chunks/{trustedFolders-YKK67IP3.js → trustedFolders-V6Y4CU3F.js} +57 -59
- package/chunks/{update-relaunch-DX7LVA4P.js → update-relaunch-CGSX3R37.js} +5 -5
- package/chunks/updateCheck-T5O2WGIB.js +118 -0
- package/chunks/useAutoAcceptIndicator-ULBJJWPY.js +120 -0
- package/chunks/{validateNonInterActiveAuth-B26O4YJP.js → validateNonInterActiveAuth-E5S2JSRC.js} +101 -102
- package/chunks/{version-K5D7VJ4B.js → version-LS5JPU36.js} +1 -1
- package/chunks/{web-fetch-VFHZLLNZ.js → web-fetch-RLMFZTS3.js} +16 -18
- package/chunks/{web-search-AQE5A4J5.js → web-search-LMCIC4N5.js} +9 -11
- package/chunks/{workflow-XL6AEUZ7.js → workflow-JBXU3IGA.js} +128 -94
- package/chunks/workspace-providers-status-525ORQBH.js +114 -0
- package/chunks/{workspace-registration-store-I4U3V5LL.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-GJ466KCE.js → workspace-trust-reconciler-3YTWSQBY.js} +70 -70
- package/chunks/write-file-BVQRYQQO.js +88 -0
- package/chunks/{zh-TW-MV4FWFB6.js → zh-TW-RPTMRTHG.js} +2 -1
- package/chunks/{zh-X3WGU6SI.js → zh-UNY63FR3.js} +2 -1
- package/chunks/{zoom-image-NYJPC3NI.js → zoom-image-FGCELNS4.js} +13 -13
- package/cli.js +14 -14
- package/locales/en.js +2 -0
- package/locales/zh-TW.js +2 -0
- package/locales/zh.js +2 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-yq7z7Anb.js → abnfDiagram-VCTEODGH-2XZDeWYO.js} +1 -1
- package/web-shell/assets/{arc-CbJO0xnT.js → arc-B6UgMh90.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-CRh89421.js → architectureDiagram-5GKGNRK7-DZgNFeN1.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-C75KAhKv.js → blockDiagram-NRAW4CY4-DQ2wvBFN.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BzlMveFB.js → c4Diagram-UCG6FXSJ-DMmQMrc4.js} +1 -1
- package/web-shell/assets/channel-D_TyfiTx.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DA8QDX3a.js → chunk-2Q5K7J3B-C8Zh2e9y.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-Bgu7gQ7Y.js → chunk-5VM5RSS4-C3LTenP8.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-BOew7pIK.js → chunk-F27PBJKO-CxABOc8n.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-DHx1I-hO.js → chunk-G27WJ6UU-CD_JxHDC.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-SarFW0WU.js → chunk-JWPE2WC7-BdmZPmce.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-BLzP083Z.js → chunk-LCL6LL3I-80bcHmfK.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-Bmkv_iKm.js → chunk-POPQ4Y6H-CNpLZyQF.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-MPx9r1N2.js → chunk-SVP7TREG-CXlKgMv3.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-Ck-09rKG.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-DWm6lfOG.js → cose-bilkent-JH36ORCC-COAjRH3w.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-DcBUyr5R.js → cynefin-OW5HDTMX-DqU1JHO6.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Df8qmd_p.js → cynefinDiagram-5FMLGOSQ-BCLI1Bvj.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-DDmGspD7.js → dagre-3AP2YEHR-DmAz8nqF.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-BK_qFvbi.js → diagram-S7CK7UJ4-Ck-5QLT5.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-Uw3AP_bi.js → diagram-UQ7AKVKN-C0ljX0mW.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-CJOQKxY7.js → diagram-VSXAHHWV-DPgvT24v.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-DhdvZna5.js → diagram-VX7I27RA-D7hWr1LR.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-edQU0nlP.js → diagram-Z3DM3KII-D59tlOta.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-4kugBEsO.js → ebnfDiagram-PWID7BFC-CY2DDx00.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-BMkFivWO.js → erDiagram-SSCWMZ5O-AR4h8Q8k.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-BM1ea8g-.js → flowDiagram-A5DVABFB-DbF0HqBz.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CXj_cKRf.js → ganttDiagram-EL5Y4UJY-J52mrIhc.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-D0nEqwqu.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-B6JN54Pd.js → index-MQs7l15A.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-DF7aGGbQ.js → infoDiagram-RXCK75RN-Buu3ibp2.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CZYNX1lL.js → ishikawaDiagram-5VMMS53U-CoKQxnF3.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-CvrqMUz1.js → journeyDiagram-EYS64GPL-CxK35mTC.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-BZNJQZBj.js → kanban-definition-3QL26DDD-tk2CHTQ1.js} +1 -1
- package/web-shell/assets/{layout-Bf83x7D6.js → layout-DEpMwb4u.js} +1 -1
- package/web-shell/assets/{linear-Bkc3ES2f.js → linear-DSQsLh53.js} +1 -1
- package/web-shell/assets/{mermaid.core-C6xuovwz.js → mermaid.core-DIZuPBQT.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-DzH6gVRg.js → mindmap-definition-FBJOCRG2-CCAvk8r_.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-DCvLh2fa.js → pegDiagram-XKGWAZYB-CpJ28jxz.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BtjVlx_6.js → pieDiagram-E7YTZNPT-ziJR2R32.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-IbroqxFe.js → quadrantDiagram-AXDQQJYC-B60zE3Mh.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-BvMykiWW.js → railroadDiagram-O6MQD6OU-M3GqQ_g1.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-D-HHMyrh.js → requirementDiagram-EFPCY7ZU-ntCtYqTk.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C0XXhB6d.js → sankeyDiagram-P5KCCOFB-AYLoItcZ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DseAXj5d.js → sequenceDiagram-WJ2MYXX4-DEWk4Mlj.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-Cek2EweK.js → sizeCapture-X5ZJPWSS-OOWvzPay.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-yLv8wafW.js → stateDiagram-HBIQ2CUA-BcMmvxem.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DRLLqPWO.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-Cwz-opvE.js → swimlanes-XN3QIQJK-DuZTWWvh.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DOfLQQYt.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-BJuFD7OG.js → timeline-definition-24CTP7MA-CjqtZXEd.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-CNAavdoV.js → vennDiagram-4TSXK5OY-knVCVkQ4.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-DaIjAidq.js → wardleyDiagram-VM6X3IG4-yoWhw0a2.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DkcQXjTy.js → xychartDiagram-S5SC5T6Z-ue14E_gL.js} +1 -1
- package/web-shell/index.html +3 -3
- package/chunks/MaxSizedBox-UUTUE42J.js +0 -112
- package/chunks/agent-headless-32O4L2CT.js +0 -87
- package/chunks/bridge-DFX2FFH4.js +0 -119
- package/chunks/channel-settings-store-ELLH2M4M.js +0 -117
- package/chunks/chunk-I6VVOZDK.js +0 -202
- package/chunks/chunk-JS73NNWF.js +0 -30
- package/chunks/chunk-K2OJUPOE.js +0 -78
- package/chunks/chunk-P3QQPMQA.js +0 -19
- package/chunks/chunk-SDVF6A42.js +0 -945
- package/chunks/chunk-VGHZT6JR.js +0 -51
- package/chunks/config-utils-7M6PCTLT.js +0 -113
- package/chunks/contextCommand-G4QG3TW6.js +0 -108
- package/chunks/daemon-status-provider-F5FEHVVG.js +0 -118
- package/chunks/daemon-trust-policy-C6YTU5CQ.js +0 -114
- package/chunks/deferred-core-runtime-GHT3GDOR.js +0 -116
- package/chunks/earlyInputCapture-HOSJTLWP.js +0 -109
- package/chunks/errors-IOXFDE4J.js +0 -115
- package/chunks/exitPlanMode-PZG4FXRB.js +0 -85
- package/chunks/handleAutoUpdate-AWAGHKOX.js +0 -111
- package/chunks/i18n-CYA25C5F.js +0 -126
- package/chunks/initializer-JD2FLNLO.js +0 -115
- package/chunks/installationInfo-N3DCWVWR.js +0 -109
- package/chunks/list-XDQAUET5.js +0 -118
- package/chunks/loadedSettingsAdapter-IK7H5JRK.js +0 -112
- package/chunks/mcp-2E7ZLMEE.js +0 -112
- package/chunks/nonInteractiveCli-ZNDXB62Y.js +0 -185
- package/chunks/pidfile-DHV2Y7UD.js +0 -113
- package/chunks/process-registry-PMJOA5CO.js +0 -172
- package/chunks/prompt-terminal-ledger-LDZ6QVYA.js +0 -107
- package/chunks/resumeHistoryUtils-YQRITQAG.js +0 -120
- package/chunks/ripGrep-NEIHKBKB.js +0 -39
- package/chunks/serve-XY5S63GN.js +0 -120
- package/chunks/skill-settings-5U7FTJIK.js +0 -120
- package/chunks/spawnChannel-TMC6VXGN.js +0 -113
- package/chunks/standalone-update-CUYGWTR4.js +0 -120
- package/chunks/terminal-image-renderer-DRL3BROJ.js +0 -116
- package/chunks/theme-manager-HHJPUDRN.js +0 -104
- package/chunks/total-session-admission-TQI7TCTL.js +0 -114
- package/chunks/updateCheck-6JRTKTUF.js +0 -120
- package/chunks/useAutoAcceptIndicator-MYXYSKSL.js +0 -122
- package/chunks/workspace-providers-status-H6TG34YV.js +0 -116
- package/chunks/workspace-registry-2PWNIYNI.js +0 -123
- package/chunks/workspace-service-4FGTUJLA.js +0 -131
- package/chunks/workspace-skills-status-7VOLUDT6.js +0 -115
- package/chunks/write-file-PWOYCT2K.js +0 -90
- package/web-shell/assets/channel-B3sGR79J.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-sTGo0K3v.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-sTGo0K3v.js +0 -1
- package/web-shell/assets/index-C-XlQn24.css +0 -5
- package/web-shell/assets/index-DLjXM0dn.js +0 -1860
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DeThXnol.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-GW0R1ZSv.js +0 -8
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
import {
|
|
4
4
|
CRON_TASKS_DISPLAY_PATH,
|
|
5
5
|
removeCronTasks
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-D5LUXLUH.js";
|
|
7
7
|
import "./chunk-VGC4I5JJ.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-23RFD54N.js";
|
|
9
9
|
import {
|
|
10
10
|
BaseDeclarativeTool,
|
|
11
11
|
BaseToolInvocation,
|
|
12
12
|
ToolDisplayNames,
|
|
13
13
|
ToolNames
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-UTLCH2FK.js";
|
|
15
15
|
import {
|
|
16
16
|
getErrorMessage
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-UHQFIS7N.js";
|
|
18
18
|
import "./chunk-TBWQLLFO.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
@@ -7,16 +7,16 @@ import {
|
|
|
7
7
|
CRON_TASKS_DISPLAY_PATH,
|
|
8
8
|
readCronTasks,
|
|
9
9
|
taskHasLegacyCondition
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-D5LUXLUH.js";
|
|
11
11
|
import "./chunk-VGC4I5JJ.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-23RFD54N.js";
|
|
13
13
|
import {
|
|
14
14
|
BaseDeclarativeTool,
|
|
15
15
|
BaseToolInvocation,
|
|
16
16
|
ToolDisplayNames,
|
|
17
17
|
ToolNames
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-UTLCH2FK.js";
|
|
19
|
+
import "./chunk-UHQFIS7N.js";
|
|
20
20
|
import "./chunk-TBWQLLFO.js";
|
|
21
21
|
import {
|
|
22
22
|
init_esbuild_shims
|
|
@@ -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
|
|
|
@@ -624,6 +624,232 @@ function isDaemonContentHash(value) {
|
|
|
624
624
|
__name(isDaemonContentHash, "isDaemonContentHash");
|
|
625
625
|
var DAEMON_APPROVAL_MODES = PERMISSION_MODES;
|
|
626
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");
|
|
852
|
+
|
|
627
853
|
// packages/sdk-typescript/src/daemon/DaemonClient.ts
|
|
628
854
|
var WORKSPACE_MEMORY_REMEMBER_PATH = "/workspace/memory/remember";
|
|
629
855
|
var WORKSPACE_MEMORY_FORGET_PATH = "/workspace/memory/forget";
|
|
@@ -2142,6 +2368,185 @@ var DaemonClient = class {
|
|
|
2142
2368
|
);
|
|
2143
2369
|
}
|
|
2144
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
|
+
}
|
|
2145
2550
|
async createOrAttachSession(req, clientId) {
|
|
2146
2551
|
if (req.sessionId !== void 0 && req.sessionId !== null) {
|
|
2147
2552
|
await this.requireCapability("session_id_override");
|
|
@@ -5191,12 +5596,50 @@ function isSessionAttachmentReference(value) {
|
|
|
5191
5596
|
__name(isSessionAttachmentReference, "isSessionAttachmentReference");
|
|
5192
5597
|
var MAX_ATTACHMENT_CACHE_BYTES = 32 * 1024 * 1024;
|
|
5193
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");
|
|
5194
5636
|
var DaemonSessionClient = class _DaemonSessionClient {
|
|
5195
5637
|
static {
|
|
5196
5638
|
__name(this, "DaemonSessionClient");
|
|
5197
5639
|
}
|
|
5198
5640
|
client;
|
|
5199
5641
|
session;
|
|
5642
|
+
restoreStrategy;
|
|
5200
5643
|
state;
|
|
5201
5644
|
/**
|
|
5202
5645
|
* Not `readonly`: {@link consumeReplaySnapshot} swaps it for an empty
|
|
@@ -5244,6 +5687,8 @@ var DaemonSessionClient = class _DaemonSessionClient {
|
|
|
5244
5687
|
constructor(opts) {
|
|
5245
5688
|
this.client = opts.client;
|
|
5246
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 };
|
|
5247
5692
|
this.state = { ...opts.state ?? {} };
|
|
5248
5693
|
this.hasActivePrompt = opts.hasActivePrompt ?? false;
|
|
5249
5694
|
this.historyHasMore = opts.historyHasMore ?? false;
|
|
@@ -5343,6 +5788,34 @@ var DaemonSessionClient = class _DaemonSessionClient {
|
|
|
5343
5788
|
eventEpoch
|
|
5344
5789
|
});
|
|
5345
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
|
+
}
|
|
5346
5819
|
get sessionId() {
|
|
5347
5820
|
return this.session.sessionId;
|
|
5348
5821
|
}
|
|
@@ -5526,7 +5999,10 @@ var DaemonSessionClient = class _DaemonSessionClient {
|
|
|
5526
5999
|
*/
|
|
5527
6000
|
async reattach() {
|
|
5528
6001
|
if (this.reattaching) return this.reattaching;
|
|
5529
|
-
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) => {
|
|
5530
6006
|
this.session.clientId = session.clientId;
|
|
5531
6007
|
});
|
|
5532
6008
|
try {
|
|
@@ -9750,7 +10226,9 @@ function clearActiveAssistant(state, event) {
|
|
|
9750
10226
|
}
|
|
9751
10227
|
__name(clearActiveAssistant, "clearActiveAssistant");
|
|
9752
10228
|
function applyAssistantUsage(state, event) {
|
|
9753
|
-
|
|
10229
|
+
if (isLegacySubagentUsageDuplicate(state, event)) return;
|
|
10230
|
+
const activeBlockId = state.activeAssistantBlockId ?? (event.parentToolCallId ? void 0 : latestTopLevelAssistantBlockIdInCurrentTurn(state));
|
|
10231
|
+
const block = getWritableBlockById(state, activeBlockId);
|
|
9754
10232
|
if (!block || block.kind !== "assistant") return;
|
|
9755
10233
|
const prev = block.usage;
|
|
9756
10234
|
block.usage = {
|
|
@@ -9761,6 +10239,31 @@ function applyAssistantUsage(state, event) {
|
|
|
9761
10239
|
block.updatedAt = state.now;
|
|
9762
10240
|
}
|
|
9763
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");
|
|
9764
10267
|
function applySubagentUsageToParentTool(state, event) {
|
|
9765
10268
|
if (!event.parentToolCallId) return;
|
|
9766
10269
|
const block = getWritableBlockById(
|
|
@@ -12306,12 +12809,15 @@ export {
|
|
|
12306
12809
|
DaemonPendingPromptLimitError,
|
|
12307
12810
|
DaemonSessionClient,
|
|
12308
12811
|
DaemonSessionIdProtocolError,
|
|
12812
|
+
DaemonStandaloneCreationOutcomeUnknownError,
|
|
12813
|
+
DaemonStandaloneProtocolError,
|
|
12309
12814
|
DaemonTransportClosedError,
|
|
12310
12815
|
EXTENSION_ARCHIVE_UPLOAD_TIMEOUT_MS,
|
|
12311
12816
|
MID_TURN_MESSAGE_INJECTED_EVENT,
|
|
12312
12817
|
PENDING_PROMPT_ADDED_EVENT,
|
|
12313
12818
|
PENDING_PROMPT_COMPLETED_EVENT,
|
|
12314
12819
|
PENDING_PROMPT_STARTED_EVENT,
|
|
12820
|
+
STANDALONE_SESSIONS_CAPABILITY,
|
|
12315
12821
|
SseFramingError,
|
|
12316
12822
|
UNRECOGNIZED_DIAGNOSTICS_LIMIT,
|
|
12317
12823
|
WorkspaceDaemonClient,
|
|
@@ -12341,6 +12847,8 @@ export {
|
|
|
12341
12847
|
isNonBlockingAccepted,
|
|
12342
12848
|
isSessionLevelNotFound,
|
|
12343
12849
|
isStaleBranchPointError,
|
|
12850
|
+
isStandaloneCreationOutcomeUnknown,
|
|
12851
|
+
isStandaloneSessionNotFoundError,
|
|
12344
12852
|
isSubagentChildBlock,
|
|
12345
12853
|
isSubagentSessionNotFound,
|
|
12346
12854
|
isTrimmedPermissionBlockId,
|
|
@@ -12383,3 +12891,8 @@ export {
|
|
|
12383
12891
|
* Copyright 2025 Alibaba Group Holding Limited. All Rights Reserved.
|
|
12384
12892
|
* Licensed under the Apache License, Version 2.0
|
|
12385
12893
|
*/
|
|
12894
|
+
/**
|
|
12895
|
+
* @license
|
|
12896
|
+
* Copyright 2026 Qwen Team
|
|
12897
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
12898
|
+
*/
|