@qwen-code/qwen-code 0.23.1-preview.2 → 0.23.2-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/computer-use/SKILL.md +189 -116
- package/bundled/goal-draft/SKILL.md +23 -13
- package/bundled/qc-helper/docs/_meta.ts +1 -0
- package/bundled/qc-helper/docs/configuration/model-providers.md +47 -1
- package/bundled/qc-helper/docs/configuration/settings.md +50 -0
- package/bundled/qc-helper/docs/conversations-recovery.md +102 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +1 -1
- package/bundled/qc-helper/docs/features/computer-use.md +9 -7
- package/bundled/qc-helper/docs/features/followup-suggestions.md +2 -2
- package/bundled/qc-helper/docs/features/goals.md +15 -3
- package/bundled/qc-helper/docs/qwen-serve.md +19 -1
- package/chunks/{MaxSizedBox-IYIQ43IZ.js → MaxSizedBox-ZZJT3PJF.js} +20 -20
- package/chunks/{StandaloneSessionPicker-AWB2OHX6.js → StandaloneSessionPicker-DIOSZTMX.js} +38 -38
- package/chunks/{acp-startup-profiler-BAL4LJTN.js → acp-startup-profiler-KEU6VAYR.js} +2 -2
- package/chunks/{acpAgent-ZC57OLS4.js → acpAgent-62JUP5A7.js} +118 -91
- package/chunks/{agent-GEBPAEJS.js → agent-NLPEQQDZ.js} +13 -13
- package/chunks/{agent-headless-63ZEYAJK.js → agent-headless-Y2GR5F2Q.js} +13 -13
- package/chunks/{anthropicContentGenerator-6XDHXIII.js → anthropicContentGenerator-I7LQZH26.js} +30 -7
- package/chunks/{askUserQuestion-3KAYLLMM.js → askUserQuestion-I5W5S3D6.js} +1 -1
- package/chunks/{bridge-MHWO5I5T.js → bridge-Q66BD62H.js} +23 -23
- package/chunks/{channel-management-service-NFRZXQFO.js → channel-management-service-TRTLQTSV.js} +4 -4
- package/chunks/{channel-settings-store-T7PMIHKC.js → channel-settings-store-R5STFWUW.js} +31 -31
- package/chunks/{channel-worker-group-O2BWK5F7.js → channel-worker-group-PIYPVCTF.js} +6 -6
- package/chunks/{channel-worker-manager-4WP7VJOD.js → channel-worker-manager-FQHEDTD2.js} +6 -6
- package/chunks/{channel-worker-supervisor-CCUXD6J5.js → channel-worker-supervisor-XJPZZ3VK.js} +3 -3
- package/chunks/{chunk-ZJ2LM2SI.js → chunk-2OR32P5M.js} +104 -33
- package/chunks/chunk-2Z3T52OC.js +82 -0
- package/chunks/{chunk-5FYGZ7E3.js → chunk-33MLFMCL.js} +2 -2
- package/chunks/{chunk-RH344FKI.js → chunk-3BTHHXXE.js} +1 -1
- package/chunks/{chunk-OFB36ZBA.js → chunk-3LPJ776W.js} +1 -1
- package/chunks/{chunk-TSLRORQR.js → chunk-43CI6YWJ.js} +1467 -1323
- package/chunks/{chunk-LTCI6ZOJ.js → chunk-45ROPFQY.js} +1 -1
- package/chunks/{chunk-W4LL5RZO.js → chunk-4ALNJDHL.js} +52 -13
- package/chunks/{chunk-RRCNEW2A.js → chunk-4BLTSTF6.js} +58 -4
- package/chunks/{chunk-3RMVM33U.js → chunk-4JKLPTV6.js} +5 -5
- package/chunks/{chunk-ZRVFHLLK.js → chunk-5DQ4YTIZ.js} +1 -1
- package/chunks/{chunk-AWDF462I.js → chunk-5GD7LYOH.js} +2 -2
- package/chunks/{chunk-HZS3JRQW.js → chunk-5VZFJTL2.js} +40 -2
- package/chunks/{chunk-537SQ2AI.js → chunk-5WC2ECUK.js} +104 -16
- package/chunks/{chunk-ZT3XUGSU.js → chunk-63ACHB2H.js} +86 -9
- package/chunks/{chunk-3K65MUKD.js → chunk-65I7S4Z3.js} +2 -1
- package/chunks/{chunk-REDVV5NC.js → chunk-6GRDHIVI.js} +7 -7
- package/chunks/{chunk-2LD5U7Q3.js → chunk-6YEOCHSE.js} +29 -1
- package/chunks/{chunk-C4NXRR7T.js → chunk-743XE7N7.js} +2 -2
- package/chunks/{chunk-I7UNCY24.js → chunk-7GZCCHJL.js} +3 -3
- package/chunks/{chunk-XX4MBBFW.js → chunk-7L35FKPF.js} +3 -3
- package/chunks/{chunk-GEV66YGE.js → chunk-7RXOEUFF.js} +1 -1
- package/chunks/{chunk-TXAEXF2B.js → chunk-BL6B2QS2.js} +21 -8
- package/chunks/{chunk-KAZWXVI3.js → chunk-CABDNUJ4.js} +2 -2
- package/chunks/{chunk-R7TKFIQO.js → chunk-CALNF3Z3.js} +1 -1
- package/chunks/{chunk-22QOQKG4.js → chunk-CG2PDIGD.js} +1 -1
- package/chunks/{chunk-MFCWL4LI.js → chunk-CPJRFFPH.js} +451 -396
- package/chunks/{chunk-LD53HMPV.js → chunk-CRZBDVP2.js} +1 -0
- package/chunks/{chunk-RSU3I6UL.js → chunk-DCPRCDSR.js} +1 -1
- package/chunks/{chunk-PLUAIHZO.js → chunk-DTB5BXRG.js} +6 -6
- package/chunks/{chunk-FWH4736Q.js → chunk-EA4NFWVG.js} +3 -3
- package/chunks/{chunk-AX23QSX3.js → chunk-EHTKOO6W.js} +4 -4
- package/chunks/{chunk-37SOBIA3.js → chunk-ERXNTINK.js} +1 -1
- package/chunks/{chunk-EGRFCIXD.js → chunk-EUXF6URV.js} +79 -18
- package/chunks/{chunk-F47DITLZ.js → chunk-FAWTMDX7.js} +14 -0
- package/chunks/{chunk-5JLQWQK6.js → chunk-FV4DM2M4.js} +2 -2
- package/chunks/{chunk-C7M445SS.js → chunk-G5QLLD53.js} +1 -1
- package/chunks/{chunk-5V4B3EWA.js → chunk-GM44O6F7.js} +1 -1
- package/chunks/{chunk-Z6DDPSGJ.js → chunk-GNY7B3CA.js} +1 -1
- package/chunks/{chunk-7PMKXGRP.js → chunk-GXIHBIHC.js} +66 -9
- package/chunks/{chunk-ERMAXPXA.js → chunk-HIXUUCGY.js} +187 -12
- package/chunks/{chunk-EJNYBDYC.js → chunk-HNLMYDQE.js} +1 -1
- package/chunks/{chunk-RCUWMVN3.js → chunk-HZ2HUXX7.js} +1 -1
- package/chunks/{chunk-SHX2HIE7.js → chunk-ISPBBKJN.js} +1 -1
- package/chunks/{chunk-QQGAR64U.js → chunk-IUJLW6ZI.js} +4 -4
- package/chunks/{chunk-IMWCUWQT.js → chunk-J3TJH52D.js} +1 -1
- package/chunks/{chunk-AIMZIXZM.js → chunk-J4ECGDA3.js} +5 -7
- package/chunks/{chunk-HPE4LEWX.js → chunk-JDPBJIKI.js} +1 -1
- package/chunks/{chunk-Y3C5COGI.js → chunk-L6ZME3W7.js} +1 -1
- package/chunks/{chunk-EPZWBYQI.js → chunk-LBKYQ33T.js} +8 -6
- package/chunks/{chunk-KTLT7VCX.js → chunk-LN3WBOKU.js} +2 -2
- package/chunks/{chunk-FXYNIZPW.js → chunk-LUVXLLMS.js} +51 -10
- package/chunks/{chunk-RQNAO42A.js → chunk-M6YLOETP.js} +1 -1
- package/chunks/{chunk-6KYWU726.js → chunk-M73KHGNR.js} +13 -66
- package/chunks/{chunk-ADJD4LZF.js → chunk-MA5OUNN6.js} +1 -1
- package/chunks/{chunk-SI6Q52UI.js → chunk-MMMA36MN.js} +3 -3
- package/chunks/{chunk-QW7BUOSI.js → chunk-MWEF5MUK.js} +20 -3
- package/chunks/{chunk-JOV46WGX.js → chunk-NB3NDQQK.js} +1 -1
- package/chunks/chunk-NOO4QFXM.js +171 -0
- package/chunks/{chunk-UTVIIA7N.js → chunk-NVS4Z6GT.js} +1 -1
- package/chunks/{chunk-VMFPZXRT.js → chunk-ODBNTMZW.js} +43 -31
- package/chunks/{chunk-UKADFFL2.js → chunk-OFVAS4AR.js} +1 -1
- package/chunks/{chunk-WQBR7LN5.js → chunk-OIPUQE3S.js} +1 -1
- package/chunks/{chunk-2C3XDBGL.js → chunk-ORREXWOM.js} +4 -4
- package/chunks/{chunk-RD3VPM4E.js → chunk-PQWM4SX2.js} +2 -2
- package/chunks/{chunk-Z6KFLEG7.js → chunk-PSPAM24S.js} +1 -0
- package/chunks/{chunk-RUMSY4ES.js → chunk-Q2F43WTJ.js} +8 -7
- package/chunks/{chunk-VYCJITND.js → chunk-QJAFSFYA.js} +1 -1
- package/chunks/{chunk-L36LLVA5.js → chunk-QLM7D7W3.js} +3 -3
- package/chunks/{chunk-NUQFUXOG.js → chunk-QTNCGZHQ.js} +2 -0
- package/chunks/{chunk-XNC2TCUO.js → chunk-QXXBW2G4.js} +4 -4
- package/chunks/{chunk-TDHVOZ65.js → chunk-R2266LQ5.js} +2 -2
- package/chunks/{chunk-QJVZLILI.js → chunk-R7OO56VZ.js} +1 -1
- package/chunks/{chunk-LYHYXJJ3.js → chunk-RDV4NLI3.js} +3 -3
- package/chunks/{chunk-733KQL63.js → chunk-RN6V5HKE.js} +3 -3
- package/chunks/{chunk-WLZRMF3C.js → chunk-RX3FYFCN.js} +353 -11
- package/chunks/{chunk-NXWYCSPL.js → chunk-SOA4HKRJ.js} +1 -1
- package/chunks/{chunk-ZNI3V2XA.js → chunk-TK4XHPKW.js} +2 -2
- package/chunks/{chunk-RGAQDQ3Z.js → chunk-UHUT4IDM.js} +18 -9
- package/chunks/{chunk-T7TP5UQL.js → chunk-ULY4ISY2.js} +4 -4
- package/chunks/{chunk-PMGWY6ZP.js → chunk-UULHYZ4W.js} +13 -10
- package/chunks/{chunk-BNWIX6BM.js → chunk-UXDVUFKU.js} +3 -3
- package/chunks/{chunk-HY3DXYZK.js → chunk-UYDQYDW2.js} +1 -1
- package/chunks/{chunk-YLFICBYK.js → chunk-VEQBVJYH.js} +3 -3
- package/chunks/{chunk-3K456UJF.js → chunk-VF6D6EGV.js} +12 -4
- package/chunks/{chunk-KP5QK3FB.js → chunk-VH764G6B.js} +397 -54
- package/chunks/{chunk-IGOIYZBG.js → chunk-VHPG7BH6.js} +2 -2
- package/chunks/{chunk-I67KJGM6.js → chunk-W3ONSAYO.js} +3 -3
- package/chunks/{chunk-SHK2SIR5.js → chunk-W673V2H3.js} +4 -4
- package/chunks/{chunk-C55CR5I4.js → chunk-W7PXLIZJ.js} +6 -6
- package/chunks/{chunk-OHOO527W.js → chunk-WG7BL3FY.js} +52 -2
- package/chunks/{chunk-B5FF3LRF.js → chunk-WIRYFL2L.js} +22 -15
- package/chunks/{chunk-P5Z7VD23.js → chunk-WZ4YULVF.js} +106 -39
- package/chunks/{chunk-WFXD5OZH.js → chunk-WZS3X663.js} +1 -1
- package/chunks/{chunk-HWZOOSEB.js → chunk-XAXTQURR.js} +3 -3
- package/chunks/{chunk-ANVC5CSK.js → chunk-XBLG564H.js} +10 -10
- package/chunks/{chunk-VU7O7CGQ.js → chunk-XDNFODER.js} +1 -1
- package/chunks/{chunk-SD7Y2PMC.js → chunk-XI7RST4D.js} +2 -2
- package/chunks/{chunk-65GHQ4FX.js → chunk-XVTCSVBK.js} +514 -47
- package/chunks/{chunk-4OCYWXKF.js → chunk-Y6ZWXM44.js} +3 -3
- package/chunks/{chunk-7IKXTGZT.js → chunk-YI2YCNSP.js} +1 -1
- package/chunks/{chunk-E4VX6LXB.js → chunk-YZTGGCEE.js} +10 -2
- package/chunks/{chunk-75UQFGFE.js → chunk-ZIPYCXQP.js} +1 -1
- package/chunks/{chunk-AUJOWIT5.js → chunk-ZUNWKOAP.js} +3 -3
- package/chunks/{config-utils-F4CFJ4MW.js → config-utils-37FHWPTP.js} +24 -24
- package/chunks/{contextCommand-OIIGGOMU.js → contextCommand-R4JUBV5N.js} +22 -22
- package/chunks/{core-runtime-JEHLOGMB.js → core-runtime-6U4OXU5C.js} +20 -20
- package/chunks/{create-sub-session-MVFBE5RA.js → create-sub-session-LLUYAGZN.js} +21 -21
- package/chunks/{daemon-LCUELM6E.js → daemon-UI6SQSBV.js} +1 -1
- package/chunks/{daemon-git-worktree-guard-5FTKLJOU.js → daemon-git-worktree-guard-O2UTNFJC.js} +20 -20
- package/chunks/{daemon-status-provider-P6A5MPMW.js → daemon-status-provider-7GMAKSTX.js} +27 -27
- package/chunks/{daemon-trust-policy-ZJ3NFYUO.js → daemon-trust-policy-VNP76VMO.js} +27 -27
- package/chunks/{daemon-trust-policy-monitor-6SDLEW7S.js → daemon-trust-policy-monitor-TD5O3BZA.js} +27 -27
- package/chunks/{deferred-core-runtime-DWOXIU5S.js → deferred-core-runtime-NJM63YJS.js} +20 -20
- package/chunks/{discovery-TUM3ZQ6U.js → discovery-XP4RMDUM.js} +4 -2
- package/chunks/{dist-NXW4DUUX.js → dist-24TCWK5H.js} +1 -1
- package/chunks/{dist-I74QLLQS.js → dist-5I4HLUTO.js} +1 -1
- package/chunks/{dist-XINEKB5A.js → dist-FDISN4AK.js} +1 -1
- package/chunks/{dist-VCAS67N5.js → dist-M4CBX53H.js} +1 -1
- package/chunks/{dist-AI25RVRA.js → dist-NQ2636VT.js} +1 -1
- package/chunks/{dist-3H3WODVS.js → dist-OR2ZQTXZ.js} +1 -1
- package/chunks/{dist-P6YWBITG.js → dist-STAGIFNB.js} +430 -51
- package/chunks/{dist-YNQU4CKC.js → dist-WZTUKIDR.js} +2 -2
- package/chunks/{dist-T4PRA5EZ.js → dist-XJ25G6OH.js} +1 -1
- package/chunks/{edit-WPVXLL3T.js → edit-GL7OA6RV.js} +13 -13
- package/chunks/{enter-worktree-5A6VW6BN.js → enter-worktree-YFTKHXHZ.js} +2 -2
- package/chunks/{enterPlanMode-JSODW7E2.js → enterPlanMode-VC4BCSZE.js} +13 -13
- package/chunks/{environment-5LLJ3I3W.js → environment-BI6IBAZJ.js} +23 -23
- package/chunks/{errors-IQT3YZEP.js → errors-D6G2ZM2R.js} +22 -22
- package/chunks/{exit-worktree-QV7E7KP6.js → exit-worktree-NF2XEMES.js} +3 -3
- package/chunks/{exitPlanMode-DDVFYNW4.js → exitPlanMode-DX446CA6.js} +13 -13
- package/chunks/{fast-path-PAUQQEVU.js → fast-path-MAYDLJIP.js} +3 -3
- package/chunks/{fast-path-settings-ISEJPRYE.js → fast-path-settings-SATXY3PD.js} +3 -3
- package/chunks/{glob-SQ7CTZ7F.js → glob-TVKRFY36.js} +13 -13
- package/chunks/{goal-tools-UWZRCLQB.js → goal-tools-CA6YANRN.js} +13 -13
- package/chunks/{handleAutoUpdate-RUPZZTSG.js → handleAutoUpdate-AW4ZAHON.js} +23 -23
- package/chunks/{i18n-SF5MPWEB.js → i18n-IH5CRAY7.js} +23 -21
- package/chunks/{image-gen-Q3RUTVKR.js → image-gen-XP4NNIYG.js} +4 -4
- package/chunks/{initializer-CK4WPYZG.js → initializer-UBR37ZNM.js} +27 -27
- package/chunks/{installationInfo-IRPQEYRF.js → installationInfo-Y52756EC.js} +20 -20
- package/chunks/{list-E3PS3EBJ.js → list-7V5JDZPO.js} +30 -30
- package/chunks/{llm-JQKBOYAF.js → llm-QDB6JVF5.js} +62 -62
- package/chunks/{llm-content-generator-2QWGBW42.js → llm-content-generator-EO6MZCEO.js} +23 -8
- package/chunks/{loadedSettingsAdapter-DGXGVYZS.js → loadedSettingsAdapter-I3YQKMC4.js} +27 -27
- package/chunks/{loggingContentGenerator-ZYURLJKK.js → loggingContentGenerator-MNXYUGDG.js} +14 -14
- package/chunks/{managed-npm-update-HTHR63EA.js → managed-npm-update-EA3EXPTO.js} +20 -20
- package/chunks/{mcp-I7G2AEWS.js → mcp-QTAJ544Y.js} +27 -27
- package/chunks/{monitor-4R76BCRZ.js → monitor-6FQKQOTP.js} +13 -13
- package/chunks/{nonInteractiveCli-24OQ3VP2.js → nonInteractiveCli-MRCTZL5X.js} +64 -61
- package/chunks/{notebook-edit-PPSH7FEX.js → notebook-edit-BQQCKI7K.js} +13 -13
- package/chunks/{openaiContentGenerator-K7V5EO7F.js → openaiContentGenerator-TTSKXNVH.js} +8 -8
- package/chunks/{pidfile-TGIUY2GG.js → pidfile-KPIS6RIT.js} +20 -20
- package/chunks/{processUtils-3USXUQWX.js → processUtils-ZCASPKK4.js} +2 -2
- package/chunks/{prompt-terminal-ledger-XHVZRXJI.js → prompt-terminal-ledger-D6HM6TV7.js} +21 -21
- package/chunks/{qwenContentGenerator-MPBOQB64.js → qwenContentGenerator-GGZEFLBD.js} +16 -16
- package/chunks/{qwenOAuth2-BS5D2LYV.js → qwenOAuth2-KX6LVYQ3.js} +4 -4
- package/chunks/{read-file-R256LDWQ.js → read-file-VE5GDFLP.js} +2 -2
- package/chunks/{resumeHistoryUtils-S43LTFHD.js → resumeHistoryUtils-HSSGMYDC.js} +23 -23
- package/chunks/{ripGrep-L7HPZ75Y.js → ripGrep-SEJE7AA6.js} +3 -3
- package/chunks/{run-qwen-serve-CTFL5R6U.js → run-qwen-serve-OJYVH7N6.js} +58 -60
- package/chunks/{runtime-FS5TL6P7.js → runtime-KGMQQFJD.js} +32 -32
- package/chunks/{scheduled-tasks-QXPV3Q35.js → scheduled-tasks-7H5HWHYD.js} +25 -25
- package/chunks/{scheduler-EXU5HMVK.js → scheduler-BE42AKDG.js} +22 -22
- package/chunks/{send-message-GQKXGMPI.js → send-message-AWKUDJBH.js} +1 -1
- package/chunks/{serve-ITJC7WNN.js → serve-KZVKYMSL.js} +27 -27
- package/chunks/{server-6JQY3PTU.js → server-PJRALPJQ.js} +1296 -822
- package/chunks/{session-PJDEKXD4.js → session-IHITXU2S.js} +63 -62
- package/chunks/{session-attachments-root-L37ORSST.js → session-attachments-root-GQ2TUI3Y.js} +20 -20
- package/chunks/{session-pr-refresh-WIFD52YL.js → session-pr-refresh-H43LULTE.js} +24 -24
- package/chunks/{settings-LO6J5SAZ.js → settings-RKEQQDFC.js} +26 -26
- package/chunks/{shell-ANAFVYGR.js → shell-6PJ444U5.js} +13 -13
- package/chunks/{skill-SHJWKSPH.js → skill-Q3UP7B5V.js} +2 -2
- package/chunks/{skill-settings-GX3XHZ5Q.js → skill-settings-LZR5YRRW.js} +26 -26
- package/chunks/{spawnChannel-WE42VBKM.js → spawnChannel-WM3DT2BF.js} +20 -20
- package/chunks/{standalone-update-CWDIKJRP.js → standalone-update-E5474IBI.js} +22 -22
- package/chunks/{start-opentui-ui-BBHGFOTF.js → start-opentui-ui-WLWZNQ2I.js} +1991 -986
- package/chunks/{startInteractiveUI-FQX7LUYP.js → startInteractiveUI-FBQSGWGO.js} +1119 -1478
- package/chunks/{team-create-WKTPCH6D.js → team-create-VIGUFUT4.js} +13 -13
- package/chunks/{team-plan-approval-Y23DL7WR.js → team-plan-approval-HQVZA3MD.js} +13 -13
- package/chunks/{terminal-image-renderer-B646HBDW.js → terminal-image-renderer-LUKNCOVM.js} +20 -20
- package/chunks/{theme-manager-BNWESY26.js → theme-manager-LOENKYLY.js} +20 -20
- package/chunks/{tool-search-PVQ5O5Y2.js → tool-search-ZIFAQCE2.js} +2 -2
- package/chunks/{total-session-admission-P5Z43KNW.js → total-session-admission-FUUJH3QH.js} +24 -24
- package/chunks/{trustedFolders-FH2LT2MZ.js → trustedFolders-C76KYROP.js} +21 -21
- package/chunks/{update-relaunch-WOWTKJSN.js → update-relaunch-4G2SRXKX.js} +5 -5
- package/chunks/{updateCheck-3MYFMM35.js → updateCheck-EIZIO7HI.js} +22 -22
- package/chunks/{useAutoAcceptIndicator-Q7ZRRRKO.js → useAutoAcceptIndicator-EAA6KSY4.js} +29 -29
- package/chunks/{validateNonInterActiveAuth-MYEWJX3G.js → validateNonInterActiveAuth-BRX22QCN.js} +59 -58
- package/chunks/{version-RO2FPO76.js → version-E56RU7PR.js} +1 -1
- package/chunks/{web-fetch-QAKY2LUA.js → web-fetch-AAUCD7RM.js} +5 -5
- package/chunks/{web-search-XA5Z4ZCD.js → web-search-HFUQF44Q.js} +18 -7
- package/chunks/{workflow-QFIOCMDM.js → workflow-3MABM53N.js} +15 -15
- package/chunks/{workspace-providers-status-B2UD7RAG.js → workspace-providers-status-2FRLBZ5I.js} +29 -29
- package/chunks/{workspace-registration-store-VZLRTI3Q.js → workspace-registration-store-YL7HLYYI.js} +1 -1
- package/chunks/{workspace-registry-GYOGG6TM.js → workspace-registry-BNRP2ELW.js} +24 -24
- package/chunks/{workspace-runtime-coordinator-7KRXGQ4V.js → workspace-runtime-coordinator-WKGF7VHS.js} +24 -24
- package/chunks/{workspace-service-DJEYGJE4.js → workspace-service-4MYO72MM.js} +31 -31
- package/chunks/{workspace-skills-status-MOKNESUC.js → workspace-skills-status-SU66TJLZ.js} +27 -27
- package/chunks/{workspace-trust-reconciler-AXOSUTQW.js → workspace-trust-reconciler-D5QT7WQB.js} +31 -31
- package/chunks/{write-file-QOYVHAKK.js → write-file-NVPQE2AZ.js} +14 -14
- package/chunks/{zoom-image-UCCLGFNC.js → zoom-image-RJHC66WG.js} +2 -2
- package/cli.js +13 -13
- package/export-transcript-document.js +126 -122
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-CTstZpXw.js → abnfDiagram-VCTEODGH-DHc6plZn.js} +1 -1
- package/web-shell/assets/{arc-DKW0mbPo.js → arc-BQ9m8TDV.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-DkMpJ42t.js → architectureDiagram-5GKGNRK7-D5ap3oVB.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-7Cp1_4i3.js → blockDiagram-NRAW4CY4-BIbnyNph.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BfaoSlBK.js → c4Diagram-UCG6FXSJ-BRsdx_iG.js} +1 -1
- package/web-shell/assets/channel-uMMdTrYk.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-_n1qzAio.js → chunk-2Q5K7J3B-3lf1fNlx.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-0cira5ZV.js → chunk-5VM5RSS4-DP8VNRc4.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-DseRXSHC.js → chunk-F27PBJKO-DrohDmZ6.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-BehQWin0.js → chunk-G27WJ6UU-UZ2QhSx6.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-B5ftg1Bb.js → chunk-JWPE2WC7-BIMHVcZK.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-D7rnbVdk.js → chunk-LCL6LL3I-izRxdSDd.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-2Bp-Orju.js → chunk-POPQ4Y6H-CXADD4PP.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-CD2goGva.js → chunk-SVP7TREG-B96d8Y_1.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-DzQt-Rji.js → chunk-XXDRQBXY-CF2sVQpv.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DcY-26Ig.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DcY-26Ig.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-C-BZXSUn.js → cose-bilkent-JH36ORCC-CT6tXVAS.js} +1 -1
- package/web-shell/assets/csv-CX7rUNeC.svg +1 -0
- package/web-shell/assets/{cynefin-OW5HDTMX-BTcvowe1.js → cynefin-OW5HDTMX-X1NS4vtV.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BoUE6K81.js → cynefinDiagram-5FMLGOSQ-DNsKNOT4.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-BHxy9xeB.js → dagre-3AP2YEHR-9-AHKqsb.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-DMiJIvDT.js → diagram-S7CK7UJ4-Bjgms7j6.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-DXV09Aes.js → diagram-UQ7AKVKN-h6bCprbE.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-CocpRomV.js → diagram-VSXAHHWV-4SbQXVLt.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-DL7nqtb4.js → diagram-VX7I27RA-B5gPCzzB.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-CPZ2Jux_.js → diagram-Z3DM3KII-DFJXIA3A.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-BX-eVNsX.js → ebnfDiagram-PWID7BFC-FwyaU7VY.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-CPy_Ir6y.js → erDiagram-SSCWMZ5O-8vJQh2te.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-eknAOte9.js → flowDiagram-A5DVABFB-BzA_1gMN.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-crAxw_t7.js → ganttDiagram-EL5Y4UJY-Co-ABbVX.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-M29pa3Tc.js → gitGraphDiagram-WWUBYQGX-DW_FcyrX.js} +1 -1
- package/web-shell/assets/{index-C9R-iojE.js → index-BbMXfhNG.js} +1 -1
- package/web-shell/assets/{index-B4TLaxWs.js → index-Bu-rZoJ-.js} +462 -454
- package/web-shell/assets/index-CsPwZ1ut.css +36 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-XqspXdOU.js → infoDiagram-RXCK75RN-BEgfhUFN.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-C5KFS-7j.js → ishikawaDiagram-5VMMS53U-DCsMxQmc.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-Cc57LVRo.js → journeyDiagram-EYS64GPL-DyIEYoHz.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-C81OG-AI.js → kanban-definition-3QL26DDD-CkxjqCNr.js} +1 -1
- package/web-shell/assets/{layout-CFVu37BB.js → layout-BEWc0Al9.js} +1 -1
- package/web-shell/assets/{linear-ChBxdtWf.js → linear-CNuNxirL.js} +1 -1
- package/web-shell/assets/{mermaid.core-CMLfue0w.js → mermaid.core-DZBre674.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-DFsvJThp.js → mindmap-definition-FBJOCRG2-CpafFz_F.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-BzpRzM4F.js → pegDiagram-XKGWAZYB-DfZqk_dq.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-Cv0Kankl.js → pieDiagram-E7YTZNPT-S0UWXlgC.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-Bh2BJ3Ay.js → quadrantDiagram-AXDQQJYC-dd37_Ohj.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-y8rNDdDS.js → railroadDiagram-O6MQD6OU-CH8NJZ7u.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-C0m2DKJ_.js → requirementDiagram-EFPCY7ZU-CFdqWYih.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-BzdGnSF4.js → sankeyDiagram-P5KCCOFB-CsddcEGD.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DPzAVmzz.js → sequenceDiagram-WJ2MYXX4-BZ270mGw.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-LcHG28Zh.js → sizeCapture-X5ZJPWSS-CGaS4DBV.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-C1Bzy3IT.js → stateDiagram-HBIQ2CUA-COpIzMu6.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-D6qEVAji.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-Bftk8V64.js → swimlanes-XN3QIQJK-CMF889m3.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-mem5Jj4m.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-BfXHcN1A.js → timeline-definition-24CTP7MA-BelnxYz5.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-DRSlI9-V.js → vennDiagram-4TSXK5OY-CU-NRqIB.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CaLmqGau.js → wardleyDiagram-VM6X3IG4-CDNKqWh-.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-8lgUT6e8.js → xychartDiagram-S5SC5T6Z-CLqguL5D.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-3UMWOKJC.js +0 -78
- package/chunks/chunk-IQAFKVXS.js +0 -22
- package/web-shell/assets/channel-CQx7VSAp.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-C-Uz8hHk.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-C-Uz8hHk.js +0 -1
- package/web-shell/assets/index-CCrkEbzz.css +0 -36
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-LuuL5byY.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-COmnNq8s.js +0 -8
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Conversations writer locks and recovery
|
|
2
|
+
|
|
3
|
+
Updated daemons can share Conversations and use different sessions at the same
|
|
4
|
+
time. A loaded session still has one writer. Live activation belongs only to
|
|
5
|
+
the exact publisher of the stable Live locator; losing Live publication does
|
|
6
|
+
not disable standalone conversations.
|
|
7
|
+
|
|
8
|
+
## A conversation will not open
|
|
9
|
+
|
|
10
|
+
`session_writer_conflict` means the writer fence prevented access. It can mean
|
|
11
|
+
another process has the conversation open, or that a residual lock cannot be
|
|
12
|
+
safely reclaimed. It is not proof that another writer is currently alive.
|
|
13
|
+
`session_writer_unavailable` means ownership could not be verified; retrying
|
|
14
|
+
does not authorize bypassing it. Archive and delete can return HTTP 200 with a
|
|
15
|
+
writer error for an individual session. Check every result item.
|
|
16
|
+
|
|
17
|
+
Close the conversation in the owning Qwen process normally, then use **Try
|
|
18
|
+
again** in the affected conversation. You can continue using other sessions.
|
|
19
|
+
Do not create a replacement conversation merely to make the error disappear.
|
|
20
|
+
|
|
21
|
+
After an ungraceful shutdown, a Linux reboot or a container restart into a new
|
|
22
|
+
PID namespace can leave an unsealed active writer record fenced indefinitely.
|
|
23
|
+
There may be no surviving owner to close. Follow
|
|
24
|
+
[Operator recovery for a residual lock](#operator-recovery-for-a-residual-lock)
|
|
25
|
+
instead of repeatedly retrying; this release does not reclaim across those
|
|
26
|
+
identity boundaries automatically.
|
|
27
|
+
|
|
28
|
+
If it persists, enable local debug logging (`QWEN_DEBUG_LOG_FILE=1`) when
|
|
29
|
+
starting the affected daemon and inspect the daemon and ACP child's diagnostics.
|
|
30
|
+
Lease-acquisition diagnostics include the session ID, error kind, and exact
|
|
31
|
+
`lockPath` resolved from that writer's runtime storage. Do not guess a lock path
|
|
32
|
+
from the primary workspace or a default home directory. Public HTTP/ACP errors
|
|
33
|
+
intentionally omit paths and ownership records. Keep diagnostic files private;
|
|
34
|
+
do not publish owner tokens or unredacted lock contents.
|
|
35
|
+
|
|
36
|
+
## Which state can recover automatically?
|
|
37
|
+
|
|
38
|
+
These rules apply to session writer leases. Legacy global owner records use
|
|
39
|
+
the more limited compatibility check described below.
|
|
40
|
+
|
|
41
|
+
- Normal close releases the lease. A certified sealed handoff is accepted only
|
|
42
|
+
when its transcript proof is still valid.
|
|
43
|
+
- A dead active writer is reclaimable only when the existing identity checks
|
|
44
|
+
establish that its process belongs to the same verified liveness domain.
|
|
45
|
+
- Live or stalled writers remain fenced. Killing a daemon is insufficient if
|
|
46
|
+
its ACP writer child survives.
|
|
47
|
+
- Foreign or missing boot/process-namespace identity is not proof of death.
|
|
48
|
+
An absent PID in your namespace does not prove a foreign writer exited.
|
|
49
|
+
- Malformed records, uncertain transcript identity, and residual transition
|
|
50
|
+
claims fail closed. Elapsed time alone never authorizes takeover.
|
|
51
|
+
|
|
52
|
+
## Operator recovery for a residual lock
|
|
53
|
+
|
|
54
|
+
1. Identify the exact affected session and storage from local diagnostics.
|
|
55
|
+
Preserve the failure log and a private backup of its transcript and lock
|
|
56
|
+
artifacts. Record which binaries and hosts may access this storage.
|
|
57
|
+
2. Stop or otherwise fence **every possible writer**, including detached ACP
|
|
58
|
+
children, other daemons, containers, namespaces, and machines sharing the
|
|
59
|
+
filesystem. Verify the fence from the relevant host/namespace. If you cannot
|
|
60
|
+
establish this, stop here and ask an operator who can.
|
|
61
|
+
3. Inspect the exact record and any associated claim/retired artifacts with a
|
|
62
|
+
maintainer. Determine whether the last transcript and handoff proof are
|
|
63
|
+
authoritative. Do not edit ownership identity fields to manufacture a match.
|
|
64
|
+
4. Only after writers are fenced and evidence is backed up, move individually
|
|
65
|
+
verified residual artifacts to private recovery storage under operator
|
|
66
|
+
supervision. Never recursively delete a lock directory or remove all locks.
|
|
67
|
+
5. Start one updated daemon, restore the original session, and verify its last
|
|
68
|
+
recorded turn before appending. Retain the backups until continuity is
|
|
69
|
+
confirmed. Bring other updated daemons back only after that check.
|
|
70
|
+
|
|
71
|
+
There is no force-unlock API or automatic cross-boot/TTL takeover in this
|
|
72
|
+
release. When safe ownership cannot be established, retain the fence.
|
|
73
|
+
|
|
74
|
+
## Coordinated upgrade and rollback
|
|
75
|
+
|
|
76
|
+
The backend cutover and Web Shell local-error/retry changes must ship in the
|
|
77
|
+
same release. This is **not a mixed-version rolling upgrade**: older daemons
|
|
78
|
+
can create a global owner after an updated daemon has already started.
|
|
79
|
+
|
|
80
|
+
Before upgrading, drain all old sessions and scheduled work, stop all old
|
|
81
|
+
daemons and their ACP children, preserve runtime data, and only then start the
|
|
82
|
+
updated binaries. An updated daemon encountering a live legacy owner returns
|
|
83
|
+
`503 conversation_runtime_in_use`; after that owner exits, retry without
|
|
84
|
+
restarting. Only an exactly revalidated stale legacy record is retired.
|
|
85
|
+
Malformed or unsafe legacy state requires operator investigation.
|
|
86
|
+
|
|
87
|
+
The legacy `conversations/runtime-owner.json` record carries a PID and nonce,
|
|
88
|
+
but no hostname, boot ID, or PID-namespace identity. Its compatibility check
|
|
89
|
+
can only test whether that PID exists in the updated daemon's own host and
|
|
90
|
+
PID namespace. It cannot detect an old writer that is alive elsewhere on shared
|
|
91
|
+
storage. This is another reason to fence every possible writer before starting
|
|
92
|
+
an updated daemon; the check does not make mixed-host or mixed-namespace
|
|
93
|
+
upgrades safe.
|
|
94
|
+
|
|
95
|
+
Before rollback, drain and fence every updated daemon and writer too. Inventory
|
|
96
|
+
active, sealed, claim, retired, and extended-schema records. Confirm the target
|
|
97
|
+
binary understands each retained schema and handoff state; never feed an
|
|
98
|
+
unsupported schema to an older writer or delete its protective record to make
|
|
99
|
+
rollback proceed. If compatibility cannot be established, keep writers stopped
|
|
100
|
+
and use maintainer-guided recovery or the coherent pre-upgrade backup. Never
|
|
101
|
+
restore an old transcript over later authoritative turns without explicitly
|
|
102
|
+
accounting for those turns.
|
|
@@ -118,7 +118,7 @@ The catalog is private to the exact channel, chat, and sender. Task names use 1
|
|
|
118
118
|
|
|
119
119
|
Named results identify their originating task: direct chats use `[task]`, while group chats use `[sender · task]`. Named text permission prompts also show the exact request ID and the corresponding `/approve <id>`, `/approve-always <id>`, and `/deny <id>` commands. The label is presentation-only and is not stored in the model transcript.
|
|
120
120
|
|
|
121
|
-
One task remains selected to receive the next normal message, but other named tasks may keep running concurrently. `/session new <name>` shares the configured workspace, while `/session new <name> --worktree` creates an isolated checkout for that task under the daemon workspace's `.qwen/worktrees/` directory. The daemon verifies the persisted worktree owner before reopening the task after a restart; a missing, changed, or foreign ownership record fails closed instead of silently moving the task into the shared workspace. Creating or selecting another task does not cancel or retarget earlier work, and late results retain their originating task label. A busy task cannot be closed, but its active prompt can be cancelled with `/session cancel [<name>]` through the existing Channel cancellation behavior. Independently queued turns are not cancelled, but in `collect` dispatch mode any follow-ups buffered behind the cancelled prompt are discarded by that existing behavior. Media preparation is not targeted. Bare permission commands apply only to the selected task, while an explicit request ID can answer an owned inactive task. `/clear`, `/new`, and `/reset`
|
|
121
|
+
One task remains selected to receive the next normal message, but other named tasks may keep running concurrently. `/session new <name>` shares the configured workspace, while `/session new <name> --worktree` creates an isolated checkout for that task under the daemon workspace's `.qwen/worktrees/` directory. The daemon verifies the persisted worktree owner before reopening the task after a restart; a missing, changed, or foreign ownership record fails closed instead of silently moving the task into the shared workspace. Creating or selecting another task does not cancel or retarget earlier work, and late results retain their originating task label. A busy task cannot be closed, but its active prompt can be cancelled with `/session cancel [<name>]` through the existing Channel cancellation behavior. Independently queued turns are not cancelled, but in `collect` dispatch mode any follow-ups buffered behind the cancelled prompt are discarded by that existing behavior. Media preparation is not targeted. Bare permission commands apply only to the selected task, while an explicit request ID can answer an owned inactive task. `/clear`, `/new`, and `/reset` also work on a selected worktree task: the task gets a fresh conversation while its worktree and files are kept. A busy worktree task refuses the reset until its prompt finishes, and a task whose worktree record was damaged reports the failure without touching files. Channel memory remains scoped to the chat rather than to a named task.
|
|
122
122
|
|
|
123
123
|
This mode is unavailable in standalone `qwen channel start`, with webhooks, with non-zero channel or group `groupHistoryLimit`, or with Channel loops. If an enabled loop already exists for that channel, the daemon worker refuses to start until the loop is disabled.
|
|
124
124
|
|
|
@@ -25,8 +25,8 @@ Node.js 22 or later and npm are required.
|
|
|
25
25
|
When first used, the skill runs these commands itself:
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
qwen mcp add --scope user node-repl npx -y @qwen-code/node-repl-mcp@0.1.
|
|
29
|
-
npm install --no-save --package-lock=false @qwen-code/cua-sdk@0.20.
|
|
28
|
+
qwen mcp add --scope user node-repl npx -y @qwen-code/node-repl-mcp@0.1.3
|
|
29
|
+
npm install --no-save --package-lock=false @qwen-code/cua-sdk@0.20.4
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
Restart Qwen Code after the MCP server is first added. The skill then resumes
|
|
@@ -45,11 +45,13 @@ Ask Qwen Code to use `$computer-use` for the desktop task. After bootstrap, it
|
|
|
45
45
|
follows the standard Computer Use workflow:
|
|
46
46
|
|
|
47
47
|
1. discovers the exact application and window;
|
|
48
|
-
2. observes full accessibility state
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
2. observes full accessibility state, then accumulates automatic incremental
|
|
49
|
+
updates into the current state;
|
|
50
|
+
3. performs one or more actions through current semantic element tokens,
|
|
51
|
+
including unchanged tokens retained across compatible diffs;
|
|
52
|
+
4. fetches the latest state before deciding what to do next; and
|
|
53
|
+
5. closes the SDK client and resets the REPL only when no other persistent
|
|
54
|
+
state is needed.
|
|
53
55
|
|
|
54
56
|
The driver is the only component that computes observation diffs. Model code
|
|
55
57
|
uses the typed SDK methods and does not dispatch arbitrary driver tool names.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Qwen Code can predict what you want to type next and show it as placeholder text in the input area. This feature uses an LLM call to analyze the conversation context and generate a natural next step suggestion.
|
|
4
4
|
|
|
5
|
-
This feature works end-to-end in both the CLI and Web Shell. Generation is automatic and server-side: after each completed turn the daemon emits the suggestion on the session stream (on by default; set `ui.enableFollowupSuggestions` to `false` to opt out), and Web Shell's composer already wires the `useDaemonFollowupSuggestion` hook, so suggestions render and accept with no additional host wiring.
|
|
5
|
+
This feature works end-to-end in both the CLI and Web Shell. Generation is automatic and server-side: after each cleanly completed turn (the daemon's `end_turn` stop reason — a `cancelled`, `refusal`, `max_tokens`, or `max_turn_requests` turn gets none) the daemon emits the suggestion on the session stream (on by default; set `ui.enableFollowupSuggestions` to `false` to opt out), and Web Shell's composer already wires the `useDaemonFollowupSuggestion` hook, so suggestions render and accept with no additional host wiring.
|
|
6
6
|
|
|
7
7
|
## How It Works
|
|
8
8
|
|
|
@@ -36,7 +36,7 @@ Suggestions are generated when all of the following conditions are met:
|
|
|
36
36
|
- The approval mode is not set to `plan`
|
|
37
37
|
- The feature is enabled (on by default — set `ui.enableFollowupSuggestions` to `false` to turn it off)
|
|
38
38
|
|
|
39
|
-
Suggestions will not appear in non-interactive mode (e.g., headless/SDK mode).
|
|
39
|
+
Suggestions will not appear in the CLI's non-interactive mode (e.g., headless/SDK mode). In the daemon, generation is server-side and runs after every turn that meets the conditions above, so a headless or SDK client that cannot render the suggestion should set `ui.enableFollowupSuggestions` to `false` to avoid the per-turn LLM cost.
|
|
40
40
|
|
|
41
41
|
Suggestions are automatically dismissed when:
|
|
42
42
|
|
|
@@ -16,13 +16,17 @@ A Goal keeps Qwen Code working across turns until a stated condition is met. Set
|
|
|
16
16
|
|
|
17
17
|
Creating, editing, or resuming a Goal requires a trusted workspace (`/trust`). Headless usage is covered in [Headless Mode](./headless.md#run-a-persistent-goal).
|
|
18
18
|
|
|
19
|
+
Once a Goal has billed a turn, the footer pill and every status card show what it has spent against the window it is allowed, as `1.2k/30.0m`. The figure counts the model calls the Goal makes in its own turns; subagents and the verifier's own checks are not included. The window is set by [`model.goalTokenBudget`](../configuration/settings.md); resuming a Goal that has spent its window grants another one on top of what it has already spent, so the figure reads `30.0m/60.0m` rather than starting over. A Goal with no budget shows only what it has spent. A Goal that has not billed a turn yet shows no figures at all.
|
|
20
|
+
|
|
21
|
+
A long Goal periodically compresses the evidence it has recorded into checkpoint claims with a side model call, so later turns and the verifier still have it to cite. That call is bounded by [`model.goalCheckpointTimeoutSeconds`](../configuration/settings.md), 180 seconds by default; a checkpoint that does not finish in time is abandoned as an inconclusive check — the checkpoint stall streak is preserved rather than incremented — and a later turn retries it. The call is streamed, so the per-request transport timeout bounds only connect and first response, and the ceiling itself stops at the stream guards' 15-minute lifetime cap because past that the guard, not the setting, ends the call. That 15-minute limit on the setting is fixed, and raising the stream guard's own cap does not lift it.
|
|
22
|
+
|
|
19
23
|
## Interrupting a Goal
|
|
20
24
|
|
|
21
25
|
Cancelling a Goal turn pauses the Goal. Press Esc while the model is answering or while its tools are still running, and the turn stops, the Goal moves to `paused`, and the card and `/goal` both say why it stopped. Nothing continues until you run `/goal resume`.
|
|
22
26
|
|
|
23
27
|
Typing a message while a Goal is active does not pause it. Your message runs as the next Goal turn, so use it to steer the work; use `/goal pause` or `/goal clear` to stop it.
|
|
24
28
|
|
|
25
|
-
Every pause states its reason: that you interrupted it, that you ran `/goal pause`, that the session token limit blocked the next model request, or that the
|
|
29
|
+
Every pause states its reason: that you interrupted it, that you ran `/goal pause`, that the session token limit blocked the next model request, that the turn failed, or that three turns in a row recorded nothing the verifier could judge and no proposal — Goal bookkeeping reads (`get_goal`, `update_goal`) do not count as progress. A Goal stopped by a limit keeps the reason for that limit instead.
|
|
26
30
|
|
|
27
31
|
## How a Goal is judged
|
|
28
32
|
|
|
@@ -50,6 +54,8 @@ Put these into the objective, in this order:
|
|
|
50
54
|
|
|
51
55
|
Keep it to one objective. `/goal set` and `/goal edit` accept any length, but stay roughly under 1,200 characters: the objective is re-sent on every Goal turn. An objective the model proposes through `propose_goal` is capped at 1,500 characters. Both commands collapse newlines to spaces, so number the items rather than relying on line breaks.
|
|
52
56
|
|
|
57
|
+
`Budget` is an instruction to the model about when to stop and report a blocker. Writing a turn count or time limit in the objective does not configure a runtime timer or change the Goal's token budget.
|
|
58
|
+
|
|
53
59
|
| Weak | Why it fails | Stronger |
|
|
54
60
|
| -------------------------- | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
55
61
|
| make checkout faster | No threshold, no check. | `Outcome: checkout p95 is below 250 ms. Done when: 1) npm run bench:checkout exits 0 and prints p95 < 250 (paste the line); 2) npm test exits 0. Must not: change the benchmark or skip tests. Budget: stop as blocked after 20 turns.` |
|
|
@@ -59,9 +65,15 @@ Keep it to one objective. `/goal set` and `/goal edit` accept any length, but st
|
|
|
59
65
|
|
|
60
66
|
## Let `/goal-draft` write it
|
|
61
67
|
|
|
62
|
-
`/goal-draft <what you want done>` is a bundled skill that does the above for you. It
|
|
68
|
+
`/goal-draft <what you want done>` is a bundled skill that does the above for you. It reads only enough of the workspace to establish the scope and real verification commands, without running tests, building, installing dependencies, or starting services. It asks at most one round of questions when essential choices are unclear, then writes a compact objective, usually with 3–5 completion checks (fewer when enough). Explicit requirements are preserved; it does not add checks just to reach a count.
|
|
69
|
+
|
|
70
|
+
For an audit, completion means covering the agreed scenarios and reporting evidence, including reproduction steps for confirmed defects. Finding no defects is a valid result. The draft should not invent a minimum number of scenarios, evidence files, exploration rounds, or defects.
|
|
71
|
+
|
|
72
|
+
If a success criterion, command, input path, or essential decision cannot be established, the skill returns a draft marked "Needs clarification" with `<TODO: …>` items. It does not offer that draft for approval or print a runnable `/goal set` or `/goal edit` command. Nonessential defaults are marked `[ASSUMPTION]`; they do not stand in for missing success criteria.
|
|
73
|
+
|
|
74
|
+
Once the objective is ready, an interactive terminal session can show the `propose_goal` approval dialog described below. Web Shell and other ACP clients, headless runs, sessions with the tool disabled, and sessions with an active Goal receive a command to run manually instead. The hand-off says that the draft has not been applied. The skill never starts the work itself, and nothing is set without your approval.
|
|
63
75
|
|
|
64
|
-
Pass an existing objective to tighten it: `/goal-draft all tests pass and the lint is clean`.
|
|
76
|
+
Pass an existing objective to tighten it: `/goal-draft all tests pass and the lint is clean`. For an active Goal, an explicit request to tighten it produces `/goal edit`; a replacement uses `/goal set`. If the intended operation is unclear, the skill includes that choice in its single round of questions.
|
|
65
77
|
|
|
66
78
|
### Approve a Goal the model proposes
|
|
67
79
|
|
|
@@ -66,6 +66,12 @@ qwen serve
|
|
|
66
66
|
|
|
67
67
|
The default bind is `127.0.0.1:4170`. Bearer auth is **off** and the primary listener is trusted, so any local process that can reach the port can use the full operator API, including executing code as the daemon user. Route-specific workspace trust, session ownership, `X-Qwen-Client-Id`, permission, feature, validation, and resource checks still apply. The daemon registers the current working directory as its primary workspace; use an absolute `--workspace /path/to/dir` to override it, and repeat the flag to register additional isolated runtimes.
|
|
68
68
|
|
|
69
|
+
For an API-only daemon, disable the Web Shell without narrowing the daemon's REST or SSE API:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
qwen serve --no-web
|
|
73
|
+
```
|
|
74
|
+
|
|
69
75
|
**Open the Web Shell UI.** Browse to `http://127.0.0.1:4170/` (or start the daemon with `qwen serve --open` to launch it automatically) for the full browser terminal — chat, diffs, commit history, tool calls, and permission prompts. The UI is served at the daemon root on the same origin as the API. The rest of this guide uses raw HTTP so you can script against the API directly.
|
|
70
76
|
|
|
71
77
|
For an authenticated single-user launch without manually creating a token, opt in explicitly:
|
|
@@ -99,6 +105,18 @@ curl http://127.0.0.1:4170/daemon/status
|
|
|
99
105
|
The `workspaceCwd` field surfaces the primary compatibility workspace so clients can intentionally omit `cwd` on `POST /session`. Current clients should select a trusted entry from `workspaces[]` and send that entry's `cwd` when targeting a runtime explicitly.
|
|
100
106
|
The `limits.maxPendingPromptsPerSession` field advertises the active per-session prompt admission cap; `null` means the cap is disabled. `limits.maxTotalSessions` advertises the optional daemon-wide fresh-session cap; `null` means unlimited.
|
|
101
107
|
|
|
108
|
+
### Adjust session live-state polling
|
|
109
|
+
|
|
110
|
+
Web Shell refreshes workspace session live-state every **5 seconds** by default. To use a different interval, set the daemon environment variable before starting it:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
QWEN_SESSION_LIVE_STATE_POLL_INTERVAL_MS=10000 qwen serve --web
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The value is an integer in milliseconds, from `1000` to `2147483647`. Missing or invalid values fall back to `5000`. The interval applies to all workspaces served by that daemon; restart the daemon and reload any open Web Shell pages after changing it. Local session actions and returning to a visible tab can still refresh immediately. This only changes live-state polling, not full session-catalog polling.
|
|
117
|
+
|
|
118
|
+
The daemon publishes the effective interval as `sessionLiveStatePollIntervalMs` in `/capabilities`. Web Shell uses that value and falls back to five seconds when connecting to an older daemon that omits it. SDK consumers can read the value when choosing their own polling schedule.
|
|
119
|
+
|
|
102
120
|
### Run channels from the daemon
|
|
103
121
|
|
|
104
122
|
```bash
|
|
@@ -217,7 +235,7 @@ idle daemon returns `initialized: false` with an empty snapshot. Once a
|
|
|
217
235
|
session is alive they switch to `initialized: true` and surface the real
|
|
218
236
|
state.
|
|
219
237
|
|
|
220
|
-
To update workspace Skill settings by name, call `POST /workspace/skills/:name/enable` with `{ "enabled": true | false }` after checking the `workspace_skill_settings_toggle` capability. To change several names, check `workspace_skill_settings_batch_toggle` and call `POST /workspace/skills/enable` with `{ "skillNames": ["review", "deploy"], "enabled": false }`; it processes every structurally valid name together, persists all resulting declaration changes in at most one locked settings write, and refreshes active ACP sessions once when anything changed. These routes write workspace `skills.disabled` and `skills.enabled` without consulting the loaded Skill catalog, so names may be disabled before installation or while their Extension is inactive. Enabling removes a matching workspace disable and records an explicit `skills.enabled` opt-in, even before installation, so this entry can override an Extension's internal Skill disablement. Repeating the same declaration is a no-op (`changed: false`). Their paths and request bodies are unchanged; the settings-specific capabilities replace the retired catalog-validated Skill toggle tags. The batch `errors` array remains for wire compatibility and is empty for structurally valid names. A hard `skills.disabled` entry inherited from a higher scope remains authoritative for effective availability, but does not block the workspace from recording or removing its own declaration. Skill status cells expose `disabledReason` (`hard`, `default`, or `inactive_extension`) and an optional `lockedScope`. Untrusted workspace writes are still rejected. A `deferred` response means no child was live at the liveness check or a changed request lost its child/session during the required refresh; when `changed` is true, the persisted declaration applies when a child starts. Whether a declaration actually changed is reported by `changed` (on each result for a batch request). `skills.disabled` disables both manual and model use, unlike `disable-model-invocation: true`, which keeps direct `/skill-name` invocation available. For V2 Extension batches, check `extension_batch_activation_v2`: `PUT /extensions/activation` changes global defaults, while `PUT /workspaces/:workspace/extensions/activation` changes exact overrides for the selected workspace and accepts `"inherit"` to clear them. Both accept names in `extensionNames`; `enabled` and `disabled` may be declared before installation, while `inherit` for an unknown name is a no-op. Each request returns one operation to poll.
|
|
238
|
+
To update workspace Skill settings by name, call `POST /workspace/skills/:name/enable` with `{ "enabled": true | false }` after checking the `workspace_skill_settings_toggle` capability. To change several names, check `workspace_skill_settings_batch_toggle` and call `POST /workspace/skills/enable` with `{ "skillNames": ["review", "deploy"], "enabled": false }`; it processes every structurally valid name together, persists all resulting declaration changes in at most one locked settings write, and refreshes active ACP sessions once when anything changed. These routes write workspace `skills.disabled` and `skills.enabled` without consulting the loaded Skill catalog, so names may be disabled before installation or while their Extension is inactive. Enabling removes a matching workspace disable and records an explicit `skills.enabled` opt-in, even before installation, so this entry can override an Extension's internal Skill disablement. Repeating the same declaration is a no-op (`changed: false`). Their paths and request bodies are unchanged; the settings-specific capabilities replace the retired catalog-validated Skill toggle tags. The batch `errors` array remains for wire compatibility and is empty for structurally valid names. A hard `skills.disabled` entry inherited from a higher scope remains authoritative for effective availability, but does not block the workspace from recording or removing its own declaration. Skill status cells expose `disabledReason` (`hard`, `default`, or `inactive_extension`) and an optional `lockedScope`. Untrusted workspace writes are still rejected. A `deferred` response means no child was live at the liveness check or a changed request lost its child/session during the required refresh; when `changed` is true, the persisted declaration applies when a child starts. Whether a declaration actually changed is reported by `changed` (on each result for a batch request). `skills.disabled` disables both manual and model use, unlike `disable-model-invocation: true`, which keeps direct `/skill-name` invocation available. For V2 Extension batches, check `extension_batch_activation_v2`: `PUT /extensions/activation` changes global defaults, while `PUT /workspaces/:workspace/extensions/activation` changes exact overrides for the selected workspace and accepts `"inherit"` to clear them. Both accept names in `extensionNames`; `enabled` and `disabled` may be declared before installation, while `inherit` for an unknown name is a no-op. Each request returns one operation to poll. When `extension_activation_explicit_refresh` is advertised, that operation finishes after the activation policy is committed and does not directly refresh active sessions. To apply it immediately, submit the independent primary or workspace-qualified Extension refresh after activation succeeds. Without that explicit refresh, other workspaces can continue using the previous activation for up to the next 30-second generation-reconciler pass; failed reconciliation is retried by later passes.
|
|
221
239
|
|
|
222
240
|
`GET /workspace/env` and `GET /workspace/preflight` always answer with
|
|
223
241
|
`initialized: true` regardless of ACP state. `env` never consults ACP
|
|
@@ -14,34 +14,34 @@ import "./chunk-47ECGEJC.js";
|
|
|
14
14
|
import "./chunk-2MIN6GRR.js";
|
|
15
15
|
import "./chunk-QHTIBUWB.js";
|
|
16
16
|
import "./chunk-RKUWKYED.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-BL6B2QS2.js";
|
|
18
18
|
import "./chunk-GELRJXE2.js";
|
|
19
19
|
import "./chunk-32CM56LO.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-G5QLLD53.js";
|
|
21
21
|
import "./chunk-2EKVPSIJ.js";
|
|
22
22
|
import "./chunk-LJZSMWOH.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-YZTGGCEE.js";
|
|
24
|
+
import "./chunk-DCPRCDSR.js";
|
|
25
25
|
import "./chunk-DJXSOEFB.js";
|
|
26
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-LN3WBOKU.js";
|
|
27
27
|
import "./chunk-J3VZF2AL.js";
|
|
28
28
|
import "./chunk-OWCFKIFQ.js";
|
|
29
29
|
import "./chunk-ZPJWUGCS.js";
|
|
30
30
|
import "./chunk-5Z4FCEPY.js";
|
|
31
31
|
import "./chunk-BUQN5LTI.js";
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-XDNFODER.js";
|
|
33
|
+
import "./chunk-XI7RST4D.js";
|
|
34
34
|
import "./chunk-VNOVK4I7.js";
|
|
35
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-43CI6YWJ.js";
|
|
36
36
|
import "./chunk-GOFAQQZA.js";
|
|
37
|
-
import "./chunk-
|
|
37
|
+
import "./chunk-65I7S4Z3.js";
|
|
38
38
|
import "./chunk-6HUXPLB5.js";
|
|
39
39
|
import "./chunk-TWPJO254.js";
|
|
40
40
|
import "./chunk-CQ35AJ4Z.js";
|
|
41
41
|
import "./chunk-YHDGABDC.js";
|
|
42
42
|
import "./chunk-LYT2OU7D.js";
|
|
43
43
|
import "./chunk-B54PFQS5.js";
|
|
44
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-HIXUUCGY.js";
|
|
45
45
|
import "./chunk-6PVPNMXU.js";
|
|
46
46
|
import "./chunk-565U2ANU.js";
|
|
47
47
|
import "./chunk-FDOGGKAA.js";
|
|
@@ -59,26 +59,26 @@ import "./chunk-BF3RUIVP.js";
|
|
|
59
59
|
import "./chunk-JX6XHPTX.js";
|
|
60
60
|
import "./chunk-CLKE4IY3.js";
|
|
61
61
|
import "./chunk-ZSTCM3MX.js";
|
|
62
|
-
import "./chunk-
|
|
62
|
+
import "./chunk-SOA4HKRJ.js";
|
|
63
63
|
import "./chunk-MLXTMF7H.js";
|
|
64
|
-
import "./chunk-
|
|
64
|
+
import "./chunk-3LPJ776W.js";
|
|
65
65
|
import "./chunk-3CZ2BQV6.js";
|
|
66
66
|
import "./chunk-PQEISIKS.js";
|
|
67
|
-
import "./chunk-
|
|
67
|
+
import "./chunk-VF6D6EGV.js";
|
|
68
68
|
import "./chunk-H3Q3RSKZ.js";
|
|
69
69
|
import "./chunk-S6LOFUVP.js";
|
|
70
70
|
import "./chunk-NAVJD2PQ.js";
|
|
71
|
-
import "./chunk-
|
|
72
|
-
import "./chunk-
|
|
71
|
+
import "./chunk-OFVAS4AR.js";
|
|
72
|
+
import "./chunk-HNLMYDQE.js";
|
|
73
73
|
import "./chunk-QHMLYMMS.js";
|
|
74
74
|
import "./chunk-CFKIH3D3.js";
|
|
75
|
-
import "./chunk-
|
|
75
|
+
import "./chunk-6YEOCHSE.js";
|
|
76
76
|
import "./chunk-DJ2GSRLV.js";
|
|
77
|
-
import "./chunk-
|
|
78
|
-
import "./chunk-
|
|
77
|
+
import "./chunk-4ALNJDHL.js";
|
|
78
|
+
import "./chunk-NOO4QFXM.js";
|
|
79
79
|
import "./chunk-KFFCDLKV.js";
|
|
80
80
|
import "./chunk-7OCIQNKX.js";
|
|
81
|
-
import "./chunk-
|
|
81
|
+
import "./chunk-OIPUQE3S.js";
|
|
82
82
|
import "./chunk-5ETULJLP.js";
|
|
83
83
|
import "./chunk-XBVNNDPK.js";
|
|
84
84
|
import "./chunk-VGC4I5JJ.js";
|
|
@@ -88,7 +88,7 @@ import "./chunk-HD7O6WLV.js";
|
|
|
88
88
|
import "./chunk-WZAD4ZNJ.js";
|
|
89
89
|
import "./chunk-FPGTNKCP.js";
|
|
90
90
|
import "./chunk-TIGXX4PA.js";
|
|
91
|
-
import "./chunk-
|
|
91
|
+
import "./chunk-DTB5BXRG.js";
|
|
92
92
|
import "./chunk-XFFRI3WM.js";
|
|
93
93
|
import "./chunk-4HOEU2OR.js";
|
|
94
94
|
import "./chunk-HHJLM3WQ.js";
|
|
@@ -4,16 +4,16 @@ import {
|
|
|
4
4
|
ConfigContext,
|
|
5
5
|
SessionPicker,
|
|
6
6
|
SettingsContext
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-WIRYFL2L.js";
|
|
8
|
+
import "./chunk-VH764G6B.js";
|
|
9
|
+
import "./chunk-ULY4ISY2.js";
|
|
10
10
|
import {
|
|
11
11
|
KeypressProvider
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-5GD7LYOH.js";
|
|
13
|
+
import "./chunk-QJAFSFYA.js";
|
|
14
|
+
import "./chunk-W3ONSAYO.js";
|
|
15
15
|
import "./chunk-3SH53ANB.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-UYDQYDW2.js";
|
|
17
17
|
import "./chunk-4WGODMVR.js";
|
|
18
18
|
import "./chunk-KW7NOTN6.js";
|
|
19
19
|
import "./chunk-2UWQX4FP.js";
|
|
@@ -30,59 +30,59 @@ import {
|
|
|
30
30
|
import {
|
|
31
31
|
require_react
|
|
32
32
|
} from "./chunk-5QWWOFGG.js";
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-VEQBVJYH.js";
|
|
34
|
+
import "./chunk-CG2PDIGD.js";
|
|
35
35
|
import "./chunk-WXFCI3O5.js";
|
|
36
36
|
import "./chunk-XQ4RDO5B.js";
|
|
37
37
|
import "./chunk-EKTCKZV5.js";
|
|
38
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-ERXNTINK.js";
|
|
39
39
|
import "./chunk-47ECGEJC.js";
|
|
40
40
|
import "./chunk-2MIN6GRR.js";
|
|
41
41
|
import "./chunk-QHTIBUWB.js";
|
|
42
42
|
import "./chunk-57OAHC2Y.js";
|
|
43
|
-
import "./chunk-
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
43
|
+
import "./chunk-NVS4Z6GT.js";
|
|
44
|
+
import "./chunk-Q2F43WTJ.js";
|
|
45
|
+
import "./chunk-MWEF5MUK.js";
|
|
46
46
|
import "./chunk-RKUWKYED.js";
|
|
47
47
|
import "./chunk-BW4333PP.js";
|
|
48
48
|
import "./chunk-IDS7MSUP.js";
|
|
49
|
-
import "./chunk-
|
|
49
|
+
import "./chunk-CRZBDVP2.js";
|
|
50
50
|
import "./chunk-5EJZE3FP.js";
|
|
51
|
-
import "./chunk-
|
|
52
|
-
import "./chunk-
|
|
53
|
-
import "./chunk-
|
|
51
|
+
import "./chunk-Y6ZWXM44.js";
|
|
52
|
+
import "./chunk-QTNCGZHQ.js";
|
|
53
|
+
import "./chunk-7RXOEUFF.js";
|
|
54
54
|
import "./chunk-NPQ5ZKRP.js";
|
|
55
55
|
import "./chunk-MR3PXB6E.js";
|
|
56
|
-
import "./chunk-
|
|
56
|
+
import "./chunk-BL6B2QS2.js";
|
|
57
57
|
import "./chunk-GELRJXE2.js";
|
|
58
58
|
import "./chunk-32CM56LO.js";
|
|
59
|
-
import "./chunk-
|
|
59
|
+
import "./chunk-G5QLLD53.js";
|
|
60
60
|
import "./chunk-2EKVPSIJ.js";
|
|
61
61
|
import "./chunk-LJZSMWOH.js";
|
|
62
|
-
import "./chunk-
|
|
63
|
-
import "./chunk-
|
|
62
|
+
import "./chunk-YZTGGCEE.js";
|
|
63
|
+
import "./chunk-DCPRCDSR.js";
|
|
64
64
|
import "./chunk-DJXSOEFB.js";
|
|
65
|
-
import "./chunk-
|
|
65
|
+
import "./chunk-LN3WBOKU.js";
|
|
66
66
|
import "./chunk-J3VZF2AL.js";
|
|
67
67
|
import "./chunk-OWCFKIFQ.js";
|
|
68
68
|
import "./chunk-ZPJWUGCS.js";
|
|
69
69
|
import "./chunk-5Z4FCEPY.js";
|
|
70
70
|
import "./chunk-BUQN5LTI.js";
|
|
71
|
-
import "./chunk-
|
|
72
|
-
import "./chunk-
|
|
71
|
+
import "./chunk-XDNFODER.js";
|
|
72
|
+
import "./chunk-XI7RST4D.js";
|
|
73
73
|
import "./chunk-VNOVK4I7.js";
|
|
74
74
|
import {
|
|
75
75
|
SessionService
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-43CI6YWJ.js";
|
|
77
77
|
import "./chunk-GOFAQQZA.js";
|
|
78
|
-
import "./chunk-
|
|
78
|
+
import "./chunk-65I7S4Z3.js";
|
|
79
79
|
import "./chunk-6HUXPLB5.js";
|
|
80
80
|
import "./chunk-TWPJO254.js";
|
|
81
81
|
import "./chunk-CQ35AJ4Z.js";
|
|
82
82
|
import "./chunk-YHDGABDC.js";
|
|
83
83
|
import "./chunk-LYT2OU7D.js";
|
|
84
84
|
import "./chunk-B54PFQS5.js";
|
|
85
|
-
import "./chunk-
|
|
85
|
+
import "./chunk-HIXUUCGY.js";
|
|
86
86
|
import "./chunk-6PVPNMXU.js";
|
|
87
87
|
import "./chunk-565U2ANU.js";
|
|
88
88
|
import "./chunk-FDOGGKAA.js";
|
|
@@ -100,28 +100,28 @@ import "./chunk-BF3RUIVP.js";
|
|
|
100
100
|
import "./chunk-JX6XHPTX.js";
|
|
101
101
|
import "./chunk-CLKE4IY3.js";
|
|
102
102
|
import "./chunk-ZSTCM3MX.js";
|
|
103
|
-
import "./chunk-
|
|
103
|
+
import "./chunk-SOA4HKRJ.js";
|
|
104
104
|
import "./chunk-MLXTMF7H.js";
|
|
105
|
-
import "./chunk-
|
|
105
|
+
import "./chunk-3LPJ776W.js";
|
|
106
106
|
import {
|
|
107
107
|
getGitBranch
|
|
108
108
|
} from "./chunk-3CZ2BQV6.js";
|
|
109
109
|
import "./chunk-PQEISIKS.js";
|
|
110
|
-
import "./chunk-
|
|
110
|
+
import "./chunk-VF6D6EGV.js";
|
|
111
111
|
import "./chunk-H3Q3RSKZ.js";
|
|
112
112
|
import "./chunk-S6LOFUVP.js";
|
|
113
113
|
import "./chunk-NAVJD2PQ.js";
|
|
114
|
-
import "./chunk-
|
|
115
|
-
import "./chunk-
|
|
114
|
+
import "./chunk-OFVAS4AR.js";
|
|
115
|
+
import "./chunk-HNLMYDQE.js";
|
|
116
116
|
import "./chunk-QHMLYMMS.js";
|
|
117
117
|
import "./chunk-CFKIH3D3.js";
|
|
118
|
-
import "./chunk-
|
|
118
|
+
import "./chunk-6YEOCHSE.js";
|
|
119
119
|
import "./chunk-DJ2GSRLV.js";
|
|
120
|
-
import "./chunk-
|
|
121
|
-
import "./chunk-
|
|
120
|
+
import "./chunk-4ALNJDHL.js";
|
|
121
|
+
import "./chunk-NOO4QFXM.js";
|
|
122
122
|
import "./chunk-KFFCDLKV.js";
|
|
123
123
|
import "./chunk-7OCIQNKX.js";
|
|
124
|
-
import "./chunk-
|
|
124
|
+
import "./chunk-OIPUQE3S.js";
|
|
125
125
|
import "./chunk-5ETULJLP.js";
|
|
126
126
|
import "./chunk-XBVNNDPK.js";
|
|
127
127
|
import "./chunk-VGC4I5JJ.js";
|
|
@@ -131,7 +131,7 @@ import "./chunk-HD7O6WLV.js";
|
|
|
131
131
|
import "./chunk-WZAD4ZNJ.js";
|
|
132
132
|
import "./chunk-FPGTNKCP.js";
|
|
133
133
|
import "./chunk-TIGXX4PA.js";
|
|
134
|
-
import "./chunk-
|
|
134
|
+
import "./chunk-DTB5BXRG.js";
|
|
135
135
|
import "./chunk-XFFRI3WM.js";
|
|
136
136
|
import "./chunk-4HOEU2OR.js";
|
|
137
137
|
import "./chunk-HHJLM3WQ.js";
|
|
@@ -144,7 +144,7 @@ import "./chunk-G6UUOCUT.js";
|
|
|
144
144
|
import "./chunk-IZ2U57NY.js";
|
|
145
145
|
import "./chunk-MWIO7MF6.js";
|
|
146
146
|
import "./chunk-ZAFYHRVY.js";
|
|
147
|
-
import "./chunk-
|
|
147
|
+
import "./chunk-JDPBJIKI.js";
|
|
148
148
|
import {
|
|
149
149
|
writeStdoutLine
|
|
150
150
|
} from "./chunk-7FA2II6K.js";
|
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
markAcpStartup,
|
|
10
10
|
recordAcpConfigStartupEvent,
|
|
11
11
|
resetAcpStartupProfilerForTesting
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-J3TJH52D.js";
|
|
13
|
+
import "./chunk-PSPAM24S.js";
|
|
14
14
|
import "./chunk-5O2XNYP6.js";
|
|
15
15
|
import "./chunk-J2S4EL5Y.js";
|
|
16
16
|
export {
|