@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
|
@@ -146,12 +146,49 @@ init_esbuild_shims();
|
|
|
146
146
|
var RATE_LIMIT_ERROR_CODES = /* @__PURE__ */ new Set([429, 503, 1302, 1305]);
|
|
147
147
|
function isRateLimitError(error, extraCodes) {
|
|
148
148
|
const code = getErrorCode(error);
|
|
149
|
-
if (code === null) return
|
|
149
|
+
if (code === null) return isStatuslessThrottle(error);
|
|
150
150
|
if (RATE_LIMIT_ERROR_CODES.has(code)) return true;
|
|
151
151
|
if (extraCodes && extraCodes.includes(code)) return true;
|
|
152
152
|
return false;
|
|
153
153
|
}
|
|
154
154
|
__name(isRateLimitError, "isRateLimitError");
|
|
155
|
+
function isStatuslessThrottle(error) {
|
|
156
|
+
for (const payload of [error, ...getJsonPayloads(error)]) {
|
|
157
|
+
const selected = providerErrorSource(payload);
|
|
158
|
+
if (!selected) continue;
|
|
159
|
+
const { source } = selected;
|
|
160
|
+
const { type, message } = source;
|
|
161
|
+
if (type === "rate_limit_error" || type === "overloaded_error") return true;
|
|
162
|
+
if (type !== "invalid_request_error" || typeof message !== "string")
|
|
163
|
+
continue;
|
|
164
|
+
const detail = decodeProviderMessage(message)?.["message"] ?? message;
|
|
165
|
+
if (typeof detail === "string" && /^too many requests\b/i.test(detail.trim()) && /\b(?:wait|try(?:ing)? again)\b/i.test(detail)) {
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
__name(isStatuslessThrottle, "isStatuslessThrottle");
|
|
172
|
+
function providerErrorSource(payload) {
|
|
173
|
+
if (typeof payload !== "object" || payload === null) return null;
|
|
174
|
+
const direct = payload;
|
|
175
|
+
const nested = direct["error"];
|
|
176
|
+
const source = typeof nested === "object" && nested !== null ? nested : direct;
|
|
177
|
+
return { source, direct };
|
|
178
|
+
}
|
|
179
|
+
__name(providerErrorSource, "providerErrorSource");
|
|
180
|
+
function decodeProviderMessage(message) {
|
|
181
|
+
try {
|
|
182
|
+
const selected = providerErrorSource(JSON.parse(message));
|
|
183
|
+
if (!selected || typeof selected.source["message"] !== "string") {
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
return { ...selected.direct, ...selected.source };
|
|
187
|
+
} catch {
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
__name(decodeProviderMessage, "decodeProviderMessage");
|
|
155
192
|
function getRateLimitErrorDetails(error) {
|
|
156
193
|
const statusCode = getErrorStatus(error);
|
|
157
194
|
const payload = getProviderErrorPayload(error);
|
|
@@ -159,7 +196,7 @@ function getRateLimitErrorDetails(error) {
|
|
|
159
196
|
const transport = message?.includes("event:error") || message?.includes("HTTP_STATUS/") ? "sse" : statusCode !== void 0 ? "http" : "unknown";
|
|
160
197
|
return {
|
|
161
198
|
...statusCode !== void 0 ? { statusCode } : {},
|
|
162
|
-
...payload?.code !== void 0 ? { providerCode: String(payload.code) } : {},
|
|
199
|
+
...payload?.code !== void 0 || payload?.type !== void 0 ? { providerCode: String(payload.code ?? payload.type) } : {},
|
|
163
200
|
...payload?.message !== void 0 ? { providerMessage: payload.message } : {},
|
|
164
201
|
...payload?.requestId !== void 0 ? { requestId: payload.requestId } : {},
|
|
165
202
|
transport
|
|
@@ -208,22 +245,24 @@ function getErrorCode(error) {
|
|
|
208
245
|
__name(getErrorCode, "getErrorCode");
|
|
209
246
|
function getProviderErrorPayload(error) {
|
|
210
247
|
for (const payload of getJsonPayloads(error)) {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
const
|
|
214
|
-
const
|
|
215
|
-
const
|
|
216
|
-
const
|
|
217
|
-
const message = typeof source
|
|
218
|
-
const requestId = typeof source
|
|
219
|
-
if (code !== void 0 || message !== void 0 || requestId !== void 0) {
|
|
220
|
-
return { code, message, requestId };
|
|
248
|
+
const selected = providerErrorSource(payload);
|
|
249
|
+
if (!selected) continue;
|
|
250
|
+
const { source, direct } = selected;
|
|
251
|
+
const decoded = typeof source["message"] === "string" ? decodeProviderMessage(source["message"]) : null;
|
|
252
|
+
const code = typeof source["code"] === "string" || typeof source["code"] === "number" ? source["code"] : typeof decoded?.["code"] === "string" || typeof decoded?.["code"] === "number" ? decoded["code"] : void 0;
|
|
253
|
+
const type = typeof source["type"] === "string" ? source["type"] : typeof decoded?.["type"] === "string" ? decoded["type"] : void 0;
|
|
254
|
+
const message = typeof decoded?.["message"] === "string" ? decoded["message"] : typeof source["message"] === "string" ? source["message"] : void 0;
|
|
255
|
+
const requestId = typeof source["request_id"] === "string" ? source["request_id"] : typeof source["requestId"] === "string" ? source["requestId"] : typeof direct["request_id"] === "string" ? direct["request_id"] : typeof direct["requestId"] === "string" ? direct["requestId"] : typeof decoded?.["request_id"] === "string" ? decoded["request_id"] : typeof decoded?.["requestId"] === "string" ? decoded["requestId"] : void 0;
|
|
256
|
+
if (code !== void 0 || type !== void 0 || message !== void 0 || requestId !== void 0) {
|
|
257
|
+
return { code, type, message, requestId };
|
|
221
258
|
}
|
|
222
259
|
}
|
|
223
260
|
if (isApiError(error)) {
|
|
261
|
+
const decoded = decodeProviderMessage(error.error.message);
|
|
224
262
|
return {
|
|
225
263
|
code: error.error.code,
|
|
226
|
-
|
|
264
|
+
...typeof decoded?.["type"] === "string" ? { type: decoded["type"] } : {},
|
|
265
|
+
message: typeof decoded?.["message"] === "string" ? decoded["message"] : error.error.message
|
|
227
266
|
};
|
|
228
267
|
}
|
|
229
268
|
return null;
|
|
@@ -2,20 +2,21 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
functionResponsePartsToString
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ODBNTMZW.js";
|
|
6
6
|
import {
|
|
7
7
|
observeHeadlessToolResultProjection,
|
|
8
8
|
observeHeadlessToolResultWire,
|
|
9
9
|
projectJsonStringToByteBudget
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-UULHYZ4W.js";
|
|
11
11
|
import {
|
|
12
|
+
createNotStartedToolErrorResponse,
|
|
12
13
|
parseAndFormatApiError,
|
|
13
14
|
toolResultBoundaryArtifact
|
|
14
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-43CI6YWJ.js";
|
|
15
16
|
import {
|
|
16
17
|
formatVisionBridgeNoticeDisplay,
|
|
17
18
|
isVisionBridgeNoticeDisplay
|
|
18
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-OIPUQE3S.js";
|
|
19
20
|
import {
|
|
20
21
|
init_esbuild_shims
|
|
21
22
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -378,6 +379,49 @@ var BaseJsonOutputAdapter = class {
|
|
|
378
379
|
startAssistantMessage() {
|
|
379
380
|
this.startAssistantMessageInternal(this.mainAgentMessageState);
|
|
380
381
|
}
|
|
382
|
+
/**
|
|
383
|
+
* Starts a replacement provider attempt. Continuation retries keep the
|
|
384
|
+
* already-delivered text; fresh retries and fallbacks discard the pending
|
|
385
|
+
* assistant state. Streaming adapters override this to pair any tool_use
|
|
386
|
+
* frames that are already on the wire before resetting.
|
|
387
|
+
*/
|
|
388
|
+
restartAttempt(preserveText, discardedToolCalls) {
|
|
389
|
+
if (preserveText) {
|
|
390
|
+
const discardedIds = new Set(
|
|
391
|
+
discardedToolCalls.map((request) => request.callId)
|
|
392
|
+
);
|
|
393
|
+
if (discardedIds.size > 0) {
|
|
394
|
+
const state = this.mainAgentMessageState;
|
|
395
|
+
const retainedBlocks = [];
|
|
396
|
+
const retainedOpenBlocks = /* @__PURE__ */ new Set();
|
|
397
|
+
for (const [index, block] of state.blocks.entries()) {
|
|
398
|
+
if (block.type === "tool_use" && discardedIds.has(block.id)) {
|
|
399
|
+
continue;
|
|
400
|
+
}
|
|
401
|
+
const retainedIndex = retainedBlocks.length;
|
|
402
|
+
retainedBlocks.push(block);
|
|
403
|
+
if (state.openBlocks.has(index)) {
|
|
404
|
+
retainedOpenBlocks.add(retainedIndex);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
state.blocks = retainedBlocks;
|
|
408
|
+
state.openBlocks = retainedOpenBlocks;
|
|
409
|
+
state.currentBlockType = retainedBlocks.at(-1)?.type ?? null;
|
|
410
|
+
state.messageStarted = retainedBlocks.length > 0;
|
|
411
|
+
}
|
|
412
|
+
return;
|
|
413
|
+
}
|
|
414
|
+
this.startAssistantMessageInternal(this.mainAgentMessageState);
|
|
415
|
+
}
|
|
416
|
+
emitDiscardedAttemptToolResults(discardedToolCalls) {
|
|
417
|
+
const message = "Skipped because the provider attempt was retried before execution.";
|
|
418
|
+
for (const request of discardedToolCalls) {
|
|
419
|
+
this.emitToolResult(
|
|
420
|
+
request,
|
|
421
|
+
createNotStartedToolErrorResponse(request, message)
|
|
422
|
+
);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
381
425
|
/**
|
|
382
426
|
* Processes an LLM stream event.
|
|
383
427
|
* This is a shared implementation used by both streaming and non-streaming adapters.
|
|
@@ -1072,6 +1116,16 @@ var StreamJsonOutputAdapter = class extends BaseJsonOutputAdapter {
|
|
|
1072
1116
|
this.mainTurnMessageStartEmitted = false;
|
|
1073
1117
|
super.startAssistantMessage();
|
|
1074
1118
|
}
|
|
1119
|
+
restartAttempt(preserveText, discardedToolCalls) {
|
|
1120
|
+
if (preserveText && discardedToolCalls.length === 0) {
|
|
1121
|
+
return;
|
|
1122
|
+
}
|
|
1123
|
+
if (this.mainAgentMessageState.messageStarted && !this.mainAgentMessageState.finalized) {
|
|
1124
|
+
this.finalizeAssistantMessage();
|
|
1125
|
+
}
|
|
1126
|
+
this.emitDiscardedAttemptToolResults(discardedToolCalls);
|
|
1127
|
+
super.restartAttempt(false, discardedToolCalls);
|
|
1128
|
+
}
|
|
1075
1129
|
finalizeAssistantMessage() {
|
|
1076
1130
|
const message = this.finalizeAssistantMessageInternal(
|
|
1077
1131
|
this.mainAgentMessageState,
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getExtensionManager
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ORREXWOM.js";
|
|
6
6
|
import {
|
|
7
7
|
parseChannelConfig
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UXDVUFKU.js";
|
|
9
9
|
import {
|
|
10
10
|
getPlugin,
|
|
11
11
|
registerPlugin
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-UHUT4IDM.js";
|
|
13
13
|
import {
|
|
14
14
|
sanitizeLogText
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-XVTCSVBK.js";
|
|
16
16
|
import {
|
|
17
17
|
loadSettings
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-Q2F43WTJ.js";
|
|
19
19
|
import {
|
|
20
20
|
hashDaemonWorkspace
|
|
21
21
|
} from "./chunk-7OCIQNKX.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
MODIFIER_SHIFT_BIT,
|
|
17
17
|
MODIFIER_SUPER_BIT,
|
|
18
18
|
clipboardHasImage
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-UYDQYDW2.js";
|
|
20
20
|
import {
|
|
21
21
|
noteInteraction
|
|
22
22
|
} from "./chunk-KW7NOTN6.js";
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
import {
|
|
34
34
|
KittySequenceOverflowEvent,
|
|
35
35
|
logKittySequenceOverflow
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-OIPUQE3S.js";
|
|
37
37
|
import {
|
|
38
38
|
createDebugLogger
|
|
39
39
|
} from "./chunk-ZAFYHRVY.js";
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
BaseJsonOutputAdapter
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4BLTSTF6.js";
|
|
6
6
|
import {
|
|
7
7
|
observeHeadlessJsonToolResultWire
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-UULHYZ4W.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esbuild_shims
|
|
11
11
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -20,6 +20,8 @@ var JsonOutputAdapter = class extends BaseJsonOutputAdapter {
|
|
|
20
20
|
__name(this, "JsonOutputAdapter");
|
|
21
21
|
}
|
|
22
22
|
messages = [];
|
|
23
|
+
attemptMessageCheckpoint = 0;
|
|
24
|
+
lastAssistantMessageAtAttemptStart = null;
|
|
23
25
|
constructor(config) {
|
|
24
26
|
super(config);
|
|
25
27
|
}
|
|
@@ -39,6 +41,42 @@ var JsonOutputAdapter = class extends BaseJsonOutputAdapter {
|
|
|
39
41
|
shouldEmitStreamEvents() {
|
|
40
42
|
return false;
|
|
41
43
|
}
|
|
44
|
+
startAssistantMessage() {
|
|
45
|
+
this.attemptMessageCheckpoint = this.messages.length;
|
|
46
|
+
this.lastAssistantMessageAtAttemptStart = this.lastAssistantMessage;
|
|
47
|
+
super.startAssistantMessage();
|
|
48
|
+
}
|
|
49
|
+
restartAttempt(preserveText, discardedToolCalls) {
|
|
50
|
+
if (preserveText) {
|
|
51
|
+
const discardedIds = new Set(
|
|
52
|
+
discardedToolCalls.map((request) => request.callId)
|
|
53
|
+
);
|
|
54
|
+
if (discardedIds.size > 0) {
|
|
55
|
+
const retained = this.messages.slice(this.attemptMessageCheckpoint).filter(
|
|
56
|
+
(message) => message.type !== "assistant" || !message.message.content.some(
|
|
57
|
+
(block) => block.type === "tool_use" && discardedIds.has(block.id)
|
|
58
|
+
)
|
|
59
|
+
);
|
|
60
|
+
this.messages.splice(
|
|
61
|
+
this.attemptMessageCheckpoint,
|
|
62
|
+
this.messages.length - this.attemptMessageCheckpoint,
|
|
63
|
+
...retained
|
|
64
|
+
);
|
|
65
|
+
this.lastAssistantMessage = this.messages.findLast(
|
|
66
|
+
(message) => message.type === "assistant"
|
|
67
|
+
) ?? this.lastAssistantMessageAtAttemptStart;
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
const retained = this.messages.slice(this.attemptMessageCheckpoint).filter((message) => message.type !== "assistant");
|
|
71
|
+
this.messages.splice(
|
|
72
|
+
this.attemptMessageCheckpoint,
|
|
73
|
+
this.messages.length - this.attemptMessageCheckpoint,
|
|
74
|
+
...retained
|
|
75
|
+
);
|
|
76
|
+
this.lastAssistantMessage = this.lastAssistantMessageAtAttemptStart;
|
|
77
|
+
}
|
|
78
|
+
super.restartAttempt(preserveText, discardedToolCalls);
|
|
79
|
+
}
|
|
42
80
|
finalizeAssistantMessage() {
|
|
43
81
|
return this.finalizeAssistantMessageInternal(
|
|
44
82
|
this.mainAgentMessageState,
|
|
@@ -3012,6 +3012,62 @@ var DaemonClient = class {
|
|
|
3012
3012
|
async resumeSession(sessionId, req = {}, clientId) {
|
|
3013
3013
|
return this.restoreSession("resume", sessionId, req, clientId);
|
|
3014
3014
|
}
|
|
3015
|
+
/**
|
|
3016
|
+
* Transfer a worktree session's checkout ownership to a fresh replacement
|
|
3017
|
+
* session (`POST /session/:id/worktree-reset`, capability
|
|
3018
|
+
* `session_worktree_reset_v1`). Resolves 200 with the replacement
|
|
3019
|
+
* session's create-shape response. The route never reads a caller-supplied
|
|
3020
|
+
* client id, so this method takes none — but the response is not
|
|
3021
|
+
* registration-free: a fresh transfer mints an owner-style `clientId` for
|
|
3022
|
+
* the spawn it performs, registers it on the replacement, and returns it in
|
|
3023
|
+
* the body, while an idempotent resume of a committed transfer returns
|
|
3024
|
+
* none. That registration is not an attachment (the replacement's attach
|
|
3025
|
+
* count is unaffected), and nothing detaches it for you — pass a minted id
|
|
3026
|
+
* you do not keep using to `detachSession`, or the replacement never
|
|
3027
|
+
* reaches the daemon's idle cleanup. Typed 409 bodies carry the reset
|
|
3028
|
+
* taxonomy: `worktree_reset_unsupported` (not a worktree session),
|
|
3029
|
+
* `worktree_reset_active` (a session involved is busy), and
|
|
3030
|
+
* `worktree_reset_invalid_state` (corrupt or ambiguous ownership state; a
|
|
3031
|
+
* partial transfer this request started is rolled back, while a
|
|
3032
|
+
* pre-existing interrupted state is left untouched for operator repair).
|
|
3033
|
+
* A crashed transfer whose sidecar links agree is self-healed here: a
|
|
3034
|
+
* pre-commit one (the marker still names this session, or is absent while
|
|
3035
|
+
* the replacement is dormant) is rolled back and re-run in the same
|
|
3036
|
+
* request, and a committed one (the marker names the replacement) is
|
|
3037
|
+
* finished idempotently. Every other interrupted shape — disagreeing links,
|
|
3038
|
+
* an invalid marker, a marker naming a third session, a replacement still
|
|
3039
|
+
* live with no marker — is reported as `worktree_reset_invalid_state` (or
|
|
3040
|
+
* `worktree_reset_active` when the committed replacement is busy) and left
|
|
3041
|
+
* untouched: a retry re-reads the same state and returns the same 409, so
|
|
3042
|
+
* it does not converge and needs operator repair rather than a retry loop.
|
|
3043
|
+
* `worktree_reset_interrupted`, `worktree_session_superseded`, and
|
|
3044
|
+
* `worktree_marker_missing` belong to the restore surface (`loadSession` /
|
|
3045
|
+
* `resumeSession`) instead; for `worktree_reset_interrupted` — the
|
|
3046
|
+
* agreeing-links shape — retrying this reset against the superseded session
|
|
3047
|
+
* is the repair.
|
|
3048
|
+
*/
|
|
3049
|
+
async resetWorktreeSession(sessionId, req = {}) {
|
|
3050
|
+
return await this.fetchWithTimeout(
|
|
3051
|
+
`${this.baseUrl}/session/${urlEncode(sessionId)}/worktree-reset`,
|
|
3052
|
+
{
|
|
3053
|
+
method: "POST",
|
|
3054
|
+
headers: this.headers({ "Content-Type": "application/json" }),
|
|
3055
|
+
body: JSON.stringify({
|
|
3056
|
+
...req.workspaceCwd !== void 0 ? { cwd: req.workspaceCwd } : {},
|
|
3057
|
+
...req.modelServiceId !== void 0 ? { modelServiceId: req.modelServiceId } : {},
|
|
3058
|
+
...req.approvalMode !== void 0 ? { approvalMode: req.approvalMode } : {},
|
|
3059
|
+
...req.sourceType !== void 0 ? { sourceType: req.sourceType } : {},
|
|
3060
|
+
...req.sourceId !== void 0 ? { sourceId: req.sourceId } : {}
|
|
3061
|
+
})
|
|
3062
|
+
},
|
|
3063
|
+
async (res) => {
|
|
3064
|
+
if (!res.ok) {
|
|
3065
|
+
throw await this.failOnError(res, "POST /session/:id/worktree-reset");
|
|
3066
|
+
}
|
|
3067
|
+
return await res.json();
|
|
3068
|
+
}
|
|
3069
|
+
);
|
|
3070
|
+
}
|
|
3015
3071
|
async branchSession(sessionId, req = {}, clientId) {
|
|
3016
3072
|
return await this.fetchWithTimeout(
|
|
3017
3073
|
`${this.baseUrl}/session/${urlEncode(sessionId)}/branch`,
|
|
@@ -6437,6 +6493,36 @@ var DaemonSessionClient = class _DaemonSessionClient {
|
|
|
6437
6493
|
eventEpoch
|
|
6438
6494
|
});
|
|
6439
6495
|
}
|
|
6496
|
+
/**
|
|
6497
|
+
* Transfer a worktree session's checkout ownership to a fresh replacement
|
|
6498
|
+
* session and return a client bound to the replacement's identity. That
|
|
6499
|
+
* client carries whatever `clientId` the response had: a fresh transfer
|
|
6500
|
+
* mints and registers an owner-style one for the spawn it performs, while
|
|
6501
|
+
* an idempotent resume of a committed transfer returns none. The
|
|
6502
|
+
* registration is not an attachment (the replacement's attach count is
|
|
6503
|
+
* unaffected), but it is a client registration, and a non-empty one is what
|
|
6504
|
+
* holds the daemon's idle cleanup off — so detach a minted id you do not
|
|
6505
|
+
* keep using, or the replacement stays live indefinitely. A registered
|
|
6506
|
+
* attachment still requires the normal restore surface: load or resume the
|
|
6507
|
+
* replacement, passing the minted id to reuse that registration instead of
|
|
6508
|
+
* adding a second one. The replacement is a brand-new conversation; the
|
|
6509
|
+
* superseded session keeps its transcript on the daemon and is never
|
|
6510
|
+
* restored again (its restore surfaces `worktree_session_superseded`). The
|
|
6511
|
+
* existing reattach identity guard applies to the replacement client
|
|
6512
|
+
* unchanged.
|
|
6513
|
+
*/
|
|
6514
|
+
static async resetWorktree(client, sessionId, req = {}) {
|
|
6515
|
+
const session = await client.resetWorktreeSession(sessionId, req);
|
|
6516
|
+
return new _DaemonSessionClient({
|
|
6517
|
+
client,
|
|
6518
|
+
session,
|
|
6519
|
+
hasActivePrompt: session.hasActivePrompt,
|
|
6520
|
+
// The replacement is freshly created: seed from the start of its bus
|
|
6521
|
+
// so events fired during the transfer window are not skipped.
|
|
6522
|
+
lastEventId: 0,
|
|
6523
|
+
eventEpoch: session.eventEpoch
|
|
6524
|
+
});
|
|
6525
|
+
}
|
|
6440
6526
|
static async createStandalone(client, options = {}) {
|
|
6441
6527
|
const session = await client.createStandaloneSession(options);
|
|
6442
6528
|
return new _DaemonSessionClient({
|
|
@@ -6672,16 +6758,21 @@ var DaemonSessionClient = class _DaemonSessionClient {
|
|
|
6672
6758
|
});
|
|
6673
6759
|
this.reattaching = resume.then(async (session) => {
|
|
6674
6760
|
if (this.session.worktreeState === "persisted-v1") {
|
|
6675
|
-
|
|
6676
|
-
|
|
6677
|
-
|
|
6678
|
-
|
|
6679
|
-
|
|
6680
|
-
|
|
6681
|
-
|
|
6761
|
+
if (!session.worktree) {
|
|
6762
|
+
this.session.worktree = void 0;
|
|
6763
|
+
this.session.worktreeState = void 0;
|
|
6764
|
+
} else {
|
|
6765
|
+
const sameWorktree = session.worktreeState === "persisted-v1" && session.worktree.path === this.session.worktree?.path;
|
|
6766
|
+
if (!sameWorktree) {
|
|
6767
|
+
await this.client.detachSession(session.sessionId, session.clientId).catch(() => {
|
|
6768
|
+
});
|
|
6769
|
+
throw new Error(
|
|
6770
|
+
`Daemon lost durable worktree identity for session ${this.sessionId}`
|
|
6771
|
+
);
|
|
6772
|
+
}
|
|
6773
|
+
this.session.worktree = session.worktree;
|
|
6774
|
+
this.session.worktreeState = session.worktreeState;
|
|
6682
6775
|
}
|
|
6683
|
-
this.session.worktree = session.worktree;
|
|
6684
|
-
this.session.worktreeState = session.worktreeState;
|
|
6685
6776
|
}
|
|
6686
6777
|
this.session.clientId = session.clientId;
|
|
6687
6778
|
});
|
|
@@ -9369,13 +9460,10 @@ function normalizeDaemonEvent(event, opts = {}) {
|
|
|
9369
9460
|
}
|
|
9370
9461
|
];
|
|
9371
9462
|
case "slow_client_warning":
|
|
9372
|
-
|
|
9373
|
-
|
|
9374
|
-
|
|
9375
|
-
|
|
9376
|
-
text: "SSE stream is lagging"
|
|
9377
|
-
}
|
|
9378
|
-
];
|
|
9463
|
+
if (typeof console !== "undefined") {
|
|
9464
|
+
console.warn?.("[daemon-ui] SSE stream is lagging", event.data);
|
|
9465
|
+
}
|
|
9466
|
+
return [];
|
|
9379
9467
|
case "stream_error": {
|
|
9380
9468
|
const errorKind = asDaemonErrorKind(getString2(event.data, "errorKind"));
|
|
9381
9469
|
return [
|