@qwen-code/qwen-code 0.19.12 → 0.20.0-nightly.20260721.cda0e0348
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/docs/configuration/settings.md +1 -1
- package/bundled/qc-helper/docs/features/commands.md +54 -0
- package/bundled/qc-helper/docs/integration-github-action.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +44 -6
- package/bundled/review/DESIGN.md +2 -2
- package/bundled/review/SKILL.md +13 -9
- package/chunks/{MaxSizedBox-QOXLJGAF.js → MaxSizedBox-EE76OHAP.js} +30 -27
- package/chunks/{StandaloneSessionPicker-FLV6CGYJ.js → StandaloneSessionPicker-WZH4PC3K.js} +50 -45
- package/chunks/{acpAgent-OB2CTF3P.js → acpAgent-2ATF4LMP.js} +437 -156
- package/chunks/{agent-CKSI7BTR.js → agent-KTOOFWMV.js} +22 -22
- package/chunks/{agent-headless-U36LIYTU.js → agent-headless-WVJCQ27D.js} +22 -22
- package/chunks/{anthropicContentGenerator-ZZRGFEES.js → anthropicContentGenerator-W4JLNYWQ.js} +6 -5
- package/chunks/{artifact-tool-PHO5XEGZ.js → artifact-tool-WBCAMD3O.js} +2 -2
- package/chunks/{askUserQuestion-CEPBT47X.js → askUserQuestion-6DZC4UV5.js} +2 -2
- package/chunks/{bridge-AIKTINJG.js → bridge-T4TLAZSJ.js} +25 -25
- package/chunks/build-SSCNEHZZ.js +62 -0
- package/chunks/{ca-2SL2BXTK.js → ca-ISKASTR5.js} +606 -200
- package/chunks/{channel-worker-group-NEUVTPB2.js → channel-worker-group-QZV2SP5U.js} +4 -4
- package/chunks/{channel-worker-manager-7CQVOVWV.js → channel-worker-manager-3GMAU45H.js} +4 -4
- package/chunks/{channel-worker-supervisor-3BU2KNCZ.js → channel-worker-supervisor-QCXSXCRY.js} +3 -3
- package/chunks/{chunk-6ETOSWAO.js → chunk-246TW4IX.js} +3 -3
- package/chunks/{chunk-2CCDMJM7.js → chunk-25Y6JSH2.js} +3 -3
- package/chunks/{chunk-XSEWNUMZ.js → chunk-2CWOJ2FA.js} +8 -8
- package/chunks/{chunk-UZC5VPOJ.js → chunk-2GFRA3MN.js} +3 -3
- package/chunks/chunk-2GOPPEHK.js +442 -0
- package/chunks/{chunk-MRE77ST5.js → chunk-2ITGJJE2.js} +69 -2216
- package/chunks/{chunk-BABX5XRO.js → chunk-2LI23QA6.js} +1 -1
- package/chunks/{chunk-EFAXBOQO.js → chunk-32F7BZSK.js} +7 -7
- package/chunks/chunk-43T5WDQ7.js +127 -0
- package/chunks/{chunk-DJ4VHAFJ.js → chunk-4CWPMWCD.js} +7 -3
- package/chunks/{chunk-GMUPIMHF.js → chunk-4RA7PWIY.js} +3 -3
- package/chunks/{chunk-6IITZE7O.js → chunk-5JX5EWR5.js} +7 -7
- package/chunks/{chunk-OBSLEYCD.js → chunk-5PZ6R37W.js} +29 -2
- package/chunks/{chunk-HTHUX2T5.js → chunk-5QWWOFGG.js} +0 -1
- package/chunks/{chunk-3DJY4IFO.js → chunk-5SCI6E3E.js} +1 -1
- package/chunks/{chunk-GSPWDTYY.js → chunk-5WG2K5RH.js} +53 -16
- package/chunks/{chunk-NPMVLWYL.js → chunk-5YVZ2XLV.js} +6 -6
- package/chunks/{chunk-TKASNYDS.js → chunk-6DHWO5ZF.js} +3 -3
- package/chunks/{chunk-4CHDYDG3.js → chunk-6EFTQYW7.js} +1 -1
- package/chunks/{chunk-RKUMFUFM.js → chunk-6MC5ASQK.js} +4 -4
- package/chunks/{chunk-HZ4M2UQD.js → chunk-6RVJRVQR.js} +1 -1
- package/chunks/{chunk-W6CQPLWM.js → chunk-6ZBPS62S.js} +1 -1
- package/chunks/chunk-7KGXAXF7.js +114 -0
- package/chunks/{chunk-PK7COE5O.js → chunk-ABIL4ZQU.js} +1 -1
- package/chunks/{chunk-OEHCAWUA.js → chunk-ACW3VNUE.js} +2 -2
- package/chunks/{chunk-APOFULHK.js → chunk-AWVS63WA.js} +7 -6
- package/chunks/{chunk-KGWA7XYL.js → chunk-AY3CSB6F.js} +6 -226
- package/chunks/{chunk-XAAEDML2.js → chunk-AYCDXHZB.js} +1 -1
- package/chunks/{chunk-42VIHAYT.js → chunk-B452RETY.js} +1 -1
- package/chunks/{chunk-VAJS2E2D.js → chunk-BDBMYST4.js} +1 -1
- package/chunks/{chunk-5N7M4XYN.js → chunk-BUKOHGBE.js} +5 -5
- package/chunks/{chunk-F2RR4HO2.js → chunk-BVLROR2T.js} +1 -1
- package/chunks/{chunk-WIYV7CSF.js → chunk-BWK3FX3K.js} +3 -3
- package/chunks/{chunk-UE5TZ55T.js → chunk-C27BYUX6.js} +29 -2
- package/chunks/{chunk-KRMARA3A.js → chunk-CG2HPAVD.js} +29 -13
- package/chunks/{chunk-UOA2IHRI.js → chunk-CPCVCKKF.js} +1 -1
- package/chunks/{chunk-HD6EGS5K.js → chunk-CUJX3F4X.js} +31 -6
- package/chunks/{chunk-4RPARQ5D.js → chunk-D2VIDMVM.js} +2 -2
- package/chunks/{chunk-PUKUUASO.js → chunk-DMRO4GU2.js} +1 -1
- package/chunks/{chunk-64GC5EMF.js → chunk-DZZIOIVF.js} +1 -1
- package/chunks/{chunk-FUSMC3SZ.js → chunk-E5QFCC4X.js} +13 -8
- package/chunks/{chunk-LKR7QQ63.js → chunk-EAUYY7SS.js} +3 -3
- package/chunks/{chunk-NE6HHLL3.js → chunk-EDMGFJ3E.js} +2 -2
- package/chunks/{chunk-J2MKYJKZ.js → chunk-EIAK6Q2B.js} +2 -2
- package/chunks/{chunk-WEPXQKGP.js → chunk-EZVDJFZ7.js} +1 -1
- package/chunks/{chunk-NALRQ3SG.js → chunk-FCUUJKZF.js} +394 -128
- package/chunks/{chunk-4XCVGEEX.js → chunk-FSL5W5TI.js} +3 -3
- package/chunks/{chunk-CHPQFLW6.js → chunk-FYA3Y5JR.js} +5 -5
- package/chunks/{chunk-V4PCIS25.js → chunk-FZVSFBNW.js} +69 -7
- package/chunks/{chunk-4MPYGENG.js → chunk-G45NOBV7.js} +6 -6
- package/chunks/{chunk-OSSDHJDU.js → chunk-G45X5TRN.js} +1 -1
- package/chunks/{chunk-3B6PSWHE.js → chunk-GH7OEOYU.js} +4 -4
- package/chunks/{chunk-KANTXY7B.js → chunk-GKY2OJ7R.js} +2 -2
- package/chunks/chunk-GMGDLUC7.js +37 -0
- package/chunks/{chunk-2476XGOU.js → chunk-GPILFVPY.js} +1 -1
- package/chunks/{chunk-EISVEV45.js → chunk-H24SOJIQ.js} +2 -2
- package/chunks/{chunk-J6NT5YTN.js → chunk-H2XVO6NE.js} +1 -289
- package/chunks/{chunk-QIFTJDBY.js → chunk-IM2A6YO3.js} +1 -1
- package/chunks/{chunk-R3EDIMYZ.js → chunk-IYZENXFW.js} +1 -1
- package/chunks/{chunk-LPHGXXZX.js → chunk-JD3MKVKL.js} +1 -1
- package/chunks/{chunk-NUHSLBJZ.js → chunk-JNWZQ27S.js} +15 -9
- package/chunks/{chunk-ETN2G32U.js → chunk-JPRLCXAO.js} +4 -4
- package/chunks/{chunk-WHQNBBWW.js → chunk-JQMBPGOU.js} +2 -2
- package/chunks/{chunk-5QSVANRT.js → chunk-JR6UJ24K.js} +2 -2
- package/chunks/{chunk-VLHQMOZK.js → chunk-JRW46GQX.js} +3 -3
- package/chunks/{chunk-DUR7BZYK.js → chunk-KRI4VCHX.js} +53 -28
- package/chunks/{chunk-PR5XQ73G.js → chunk-KTNIZG2C.js} +2 -2
- package/chunks/{chunk-QSG4ZFG4.js → chunk-KTUQMDEP.js} +1 -1
- package/chunks/{chunk-HVGJWOR6.js → chunk-L4YSPHR4.js} +2 -2
- package/chunks/{chunk-BEZPRKD3.js → chunk-LC5CAVMS.js} +160 -2
- package/chunks/{chunk-67Q33DQY.js → chunk-LLDGOZMJ.js} +4 -4
- package/chunks/{chunk-UCTCDLDS.js → chunk-LWQ4IAOJ.js} +136 -4
- package/chunks/{chunk-GEHSF7MS.js → chunk-NEEB7UEN.js} +2545 -1974
- package/chunks/{chunk-GCY7QTCE.js → chunk-NO6XTCYT.js} +1822 -424
- package/chunks/{chunk-JCJPZMJV.js → chunk-OOCI5VVU.js} +1 -1
- package/chunks/{chunk-XSPFQQRE.js → chunk-OONJNQ42.js} +3 -3
- package/chunks/{chunk-ANRANWVE.js → chunk-OP4MOGXF.js} +1 -1
- package/chunks/{chunk-GW7BONBU.js → chunk-OV2KB55J.js} +5 -5
- package/chunks/{chunk-CPU6I5YV.js → chunk-P64HXIC5.js} +115 -32
- package/chunks/{chunk-SGPFJMRP.js → chunk-PBATSWUQ.js} +1 -1
- package/chunks/{chunk-GXFYV7MP.js → chunk-PFKNXN67.js} +1106 -592
- package/chunks/{chunk-KNGZ5EYL.js → chunk-PYNCSQSI.js} +198 -120
- package/chunks/{chunk-I7RRHHYG.js → chunk-QKTHJXCS.js} +1 -1
- package/chunks/chunk-QKYTTBYW.js +624 -0
- package/chunks/{chunk-76BFY7AF.js → chunk-QTERJVPZ.js} +1 -6
- package/chunks/{chunk-W4UN42YP.js → chunk-R3VZNHRX.js} +85 -21
- package/chunks/chunk-R5N7NF5D.js +1187 -0
- package/chunks/{chunk-ZSDFNE6Y.js → chunk-RF34V75B.js} +3 -3
- package/chunks/{chunk-HCCR43AY.js → chunk-RFIAR4YL.js} +1 -1
- package/chunks/chunk-RS7MT2QG.js +305 -0
- package/chunks/{chunk-BKNPMEN6.js → chunk-RVLZCXEE.js} +162 -17
- package/chunks/chunk-SV5PQVQE.js +71 -0
- package/chunks/{chunk-3ESL7JXA.js → chunk-U4VGYZN7.js} +3 -3
- package/chunks/{chunk-4CA4WUMS.js → chunk-UEY4AYUL.js} +2 -2
- package/chunks/{chunk-ZGT623SG.js → chunk-USTF7LPI.js} +12 -12
- package/chunks/chunk-V7RNNPGC.js +44 -0
- package/chunks/{chunk-VEFR4XJQ.js → chunk-W3BKN3LO.js} +1 -1
- package/chunks/{chunk-4SJJT466.js → chunk-WQQDJE2P.js} +94 -177
- package/chunks/{chunk-KMJOMWHE.js → chunk-WRRF6TEQ.js} +1 -1
- package/chunks/{chunk-GLH2NTPB.js → chunk-XCHUDLER.js} +1 -1
- package/chunks/{chunk-7SX6WZNO.js → chunk-XVVH63JG.js} +3 -3
- package/chunks/{chunk-N47VAEAJ.js → chunk-XZOBDSDG.js} +2379 -1291
- package/chunks/chunk-YGIUIIIF.js +125 -0
- package/chunks/{chunk-335ECZTA.js → chunk-ZEOZL37W.js} +1 -1
- package/chunks/{computer-use-4PUGCUQK.js → computer-use-M6MGRJF2.js} +22 -22
- package/chunks/{config-utils-6PJUXHLI.js → config-utils-MOGE4EVB.js} +3 -3
- package/chunks/{contextCommand-C57KTWFV.js → contextCommand-HTRJJYNE.js} +25 -26
- package/chunks/{create-sub-session-5Q42XR6I.js → create-sub-session-MB35IHCR.js} +22 -22
- package/chunks/{create-sub-session-DIJOV6HV.js → create-sub-session-P26FE5GG.js} +2 -2
- package/chunks/{cron-create-X462ERYA.js → cron-create-JWFHBDRQ.js} +4 -4
- package/chunks/{cron-delete-SL5UJUM3.js → cron-delete-GDX4E26G.js} +4 -4
- package/chunks/{cron-list-3MD6SVXI.js → cron-list-USMAIWPT.js} +4 -4
- package/chunks/{daemon-ZW6LHOXT.js → daemon-KLPTQIE4.js} +287 -143
- package/chunks/{daemon-status-provider-YPV3UXHT.js → daemon-status-provider-67EKK6S3.js} +29 -29
- package/chunks/{dist-NUXRQHC5.js → dist-OAV7LJGJ.js} +1 -1
- package/chunks/{dist-XLE6ODMB.js → dist-OMW6WDEO.js} +1 -1
- package/chunks/{dist-J2H4KTLB.js → dist-PJLG2XYX.js} +1 -1
- package/chunks/{dist-IEQSDXS7.js → dist-UIFWIFRO.js} +2 -2
- package/chunks/{dist-IGZMVS5R.js → dist-VGJTZL4E.js} +33 -22
- package/chunks/{dist-3DQNQJ6H.js → dist-XBJVSWS2.js} +1 -1
- package/chunks/{earlyInputCapture-5VDWSYAM.js → earlyInputCapture-7QJX25AC.js} +23 -23
- package/chunks/{edit-GORZTX2U.js → edit-BTPQWGAA.js} +23 -23
- package/chunks/{enter-worktree-LJB2AW4L.js → enter-worktree-N3SEYKOO.js} +22 -22
- package/chunks/{enterPlanMode-LIIPP37T.js → enterPlanMode-TN2JV5MY.js} +28 -23
- package/chunks/{environment-HQ2UHJ35.js → environment-HP6RK262.js} +24 -24
- package/chunks/{errors-6JD5VMVQ.js → errors-VHGRDDOQ.js} +24 -24
- package/chunks/{exit-worktree-IEP2WHOV.js → exit-worktree-FI3SQY3U.js} +22 -22
- package/chunks/{exitPlanMode-U5Z6XBLO.js → exitPlanMode-NZWRVIIY.js} +22 -22
- package/chunks/{fast-path-HFKNMP23.js → fast-path-EGP7AXNR.js} +3 -2
- package/chunks/{gemini-C2SCJH3N.js → gemini-AN5YMD5O.js} +70 -68
- package/chunks/{geminiContentGenerator-ADZTXEKV.js → geminiContentGenerator-ABTMU4FE.js} +4 -4
- package/chunks/{glob-GOAPGD6G.js → glob-5YABOPJB.js} +22 -22
- package/chunks/{grep-HZLSTX7D.js → grep-U67FKUJT.js} +22 -22
- package/chunks/{handleAutoUpdate-UF74WGFE.js → handleAutoUpdate-OOKBP5VD.js} +27 -28
- package/chunks/{i18n-FMXIYUOC.js → i18n-GMQV324P.js} +23 -23
- package/chunks/{initializer-ERDBM3DU.js → initializer-NWALZGQ5.js} +28 -28
- package/chunks/{installationInfo-LROMXYLX.js → installationInfo-Y3M433E7.js} +25 -23
- package/chunks/{keychain-token-storage-K23CFKGN.js → keychain-token-storage-DWRJMNH3.js} +2 -2
- package/chunks/{list-6JPJROU5.js → list-CQDDWHTS.js} +30 -30
- package/chunks/{loadedSettingsAdapter-QCWYUBBF.js → loadedSettingsAdapter-I5KG37EI.js} +27 -27
- package/chunks/{loop-wakeup-6H7OENTB.js → loop-wakeup-5GLTUBHA.js} +5 -5
- package/chunks/{ls-APTSOOS5.js → ls-FHBY3Y7I.js} +4 -4
- package/chunks/{lsp-HPACPJAN.js → lsp-B6VMEW6Y.js} +2 -2
- package/chunks/{mcp-3P3KWYWO.js → mcp-24HHCBSP.js} +27 -27
- package/chunks/{monitor-LMYKCF6R.js → monitor-Z7NZNNRC.js} +22 -22
- package/chunks/nonInteractiveCli-GVF2XDJT.js +126 -0
- package/chunks/{notebook-edit-IBEOVZ6A.js → notebook-edit-GFOYAQAZ.js} +23 -23
- package/chunks/{openaiContentGenerator-42PZKET5.js → openaiContentGenerator-XAAYV6WR.js} +11 -11
- package/chunks/{pidfile-VTBDIGOH.js → pidfile-ILI37KRQ.js} +23 -23
- package/chunks/{processUtils-L7ZKOGDG.js → processUtils-LIPJMLVZ.js} +2 -2
- package/chunks/{qwenContentGenerator-VR2CNFGI.js → qwenContentGenerator-DLJ3KKGZ.js} +24 -24
- package/chunks/{qwenOAuth2-6LS2T3Q6.js → qwenOAuth2-J47FU5PW.js} +11 -11
- package/chunks/react-SG7JAQSZ.js +8 -0
- package/chunks/{read-file-VSKOE22I.js → read-file-LCQ2KNNP.js} +8 -8
- package/chunks/{read-mcp-resource-C6NT52T6.js → read-mcp-resource-AKCL7I43.js} +2 -2
- package/chunks/{record-artifact-ENCU7QCL.js → record-artifact-PEUB7727.js} +2 -2
- package/chunks/resumeHistoryUtils-PSCSAKA6.js +78 -0
- package/chunks/{ripGrep-5V5FLW2A.js → ripGrep-Y2XW4EFC.js} +22 -22
- package/chunks/{run-qwen-serve-LSOPP4R2.js → run-qwen-serve-DQ5ZIR36.js} +1459 -148
- package/chunks/{runtime-LT7R4CS5.js → runtime-6MQFF2A6.js} +33 -31
- package/chunks/{scheduler-YOWQ7KZP.js → scheduler-K4S7NY3G.js} +22 -22
- package/chunks/{send-message-5GZ4FX2V.js → send-message-3RHE7HSM.js} +3 -3
- package/chunks/{serve-VWLBXKGK.js → serve-JFAAPC5J.js} +27 -27
- package/chunks/{server-3RW3FYOH.js → server-QB6CHRZN.js} +866 -271
- package/chunks/{session-ZONXFOBQ.js → session-FKPVXAAB.js} +79 -163
- package/chunks/{settings-JC3VC53L.js → settings-CADELKSU.js} +26 -26
- package/chunks/{shell-2NGEMAVM.js → shell-EON6WVVH.js} +22 -22
- package/chunks/{skill-3U2T6H3E.js → skill-FKSYXJ5U.js} +10 -10
- package/chunks/{spawnChannel-QEAUPARQ.js → spawnChannel-VM5IHLJO.js} +24 -24
- package/chunks/{src-75ZPXO7B.js → src-Q4XB6SVD.js} +66 -22
- package/chunks/{standalone-update-UUJWJWYY.js → standalone-update-KGZHPBMA.js} +24 -24
- package/chunks/{startInteractiveUI-V7XISPQ6.js → startInteractiveUI-EYDJIIIZ.js} +5484 -2045
- package/chunks/{syntheticOutput-ULOVVLY4.js → syntheticOutput-FG5PQKIR.js} +3 -3
- package/chunks/{task-create-DUE2PMNI.js → task-create-HX32YXO7.js} +7 -7
- package/chunks/{task-list-WVPNX7BZ.js → task-list-QWSY4ZIU.js} +5 -5
- package/chunks/{task-stop-CPEQWOT6.js → task-stop-GWC6UWAL.js} +2 -2
- package/chunks/{task-update-HY2LNFFB.js → task-update-NCTAB73Q.js} +7 -7
- package/chunks/{team-create-R6AXDYPG.js → team-create-CYP3YKYT.js} +22 -22
- package/chunks/{team-delete-JJV6IUOA.js → team-delete-KK37HTOG.js} +5 -5
- package/chunks/{team-plan-approval-O2ZPPT64.js → team-plan-approval-5LXIFKNV.js} +22 -22
- package/chunks/{theme-manager-YIX2IC2D.js → theme-manager-QOUMDWMP.js} +23 -23
- package/chunks/{todoWrite-JHHIDOIV.js → todoWrite-ERCAMLFS.js} +4 -4
- package/chunks/{tool-search-5IE2VO7X.js → tool-search-Q27QHQU3.js} +9 -9
- package/chunks/{total-session-admission-K6APQYEF.js → total-session-admission-HWVCZ2WR.js} +25 -25
- package/chunks/{trustedFolders-GPSSPVBF.js → trustedFolders-C6664IQC.js} +23 -23
- package/chunks/{update-relaunch-4BVAPX6Y.js → update-relaunch-QC3E4FZW.js} +9 -9
- package/chunks/{updateCheck-AHTHWLAM.js → updateCheck-MVUKJMBX.js} +33 -26
- package/chunks/useAutoAcceptIndicator-J234IFIS.js +80 -0
- package/chunks/{validateNonInterActiveAuth-UKAPCWDM.js → validateNonInterActiveAuth-YPPEKX4N.js} +61 -63
- package/chunks/{version-EXGWKKQE.js → version-5IXFQ4PT.js} +1 -1
- package/chunks/{web-fetch-ZDNE6FF2.js → web-fetch-L62NQVKN.js} +10 -10
- package/chunks/{workflow-G7U6OQWS.js → workflow-6MHBBFQU.js} +23 -23
- package/chunks/{workspace-providers-status-W6CEA6YM.js → workspace-providers-status-ZTW2B5QU.js} +30 -30
- package/chunks/{workspace-registration-store-OGBMWCLC.js → workspace-registration-store-P6QHCSMU.js} +7 -1
- package/chunks/{workspace-registry-ZUWQM44P.js → workspace-registry-R54M5O3W.js} +25 -25
- package/chunks/{workspace-service-UXX5P7GU.js → workspace-service-WYLRGM4A.js} +32 -32
- package/chunks/{workspace-skills-status-635B5R7N.js → workspace-skills-status-NN5QFU3A.js} +28 -28
- package/chunks/{write-file-DR3HN7IH.js → write-file-EAT3CHUK.js} +23 -23
- package/cli.js +11 -11
- package/locales/ca.js +763 -201
- package/package.json +3 -3
- package/web-shell/assets/{arc-_dVIKMdB.js → arc-B0iTWRo2.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-MuN3nKpL.js → architectureDiagram-3BPJPVTR-DSQP4-9D.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BtmvJjzx.js → blockDiagram-GPEHLZMM-BNPVXVT3.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-Dvi58_BU.js → c4Diagram-AAUBKEIU-DEHfJFiD.js} +1 -1
- package/web-shell/assets/channel-tVz-qNSq.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-YqxOVhS1.js → chunk-2J33WTMH-VZ0uL1p9.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DoBgbC9z.js → chunk-4BX2VUAB-D5TKmvwG.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-3NEQrBAr.js → chunk-55IACEB6-BDW1Lcq-.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DrCZQxp0.js → chunk-727SXJPM-Cj4h85iM.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-m_g3zjgv.js → chunk-AQP2D5EJ-5LeqiOhZ.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-D1_crABJ.js → chunk-FMBD7UC4-BaTgsco7.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-BdhgVtBx.js → chunk-ND2GUHAM-t3uGlIUk.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-BlmThhm-.js → chunk-QZHKN3VN-rOnNXL2Q.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CWuaBxYV.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CWuaBxYV.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-Cbjm_00Z.js → cose-bilkent-S5V4N54A-CcqXykgA.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-C39QNVgC.js → dagre-BM42HDAG-Dkjrchoy.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-DNXSAixC.js → diagram-2AECGRRQ-B6lcra9M.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BCbGUPEA.js → diagram-5GNKFQAL-bAIzq3PT.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-1eujKSDC.js → diagram-KO2AKTUF-G9MAZDNW.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-DUMKXgql.js → diagram-LMA3HP47-DVLF1uWZ.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-BFktU3_u.js → diagram-OG6HWLK6-Cf7y20Tc.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-BvJC7DLk.js → erDiagram-TEJ5UH35-C7ETZB3o.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-Cgu3PlOt.js → flowDiagram-I6XJVG4X-Cl2xgL6J.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DLNXN5Xh.js → ganttDiagram-6RSMTGT7-BgjbMs3q.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BQFRDv6R.js → gitGraphDiagram-PVQCEYII-JVX34Omm.js} +1 -1
- package/web-shell/assets/index-48bIcdqF.js +1197 -0
- package/web-shell/assets/{index-CdC3pjP3.js → index-BG7Zc4f_.js} +1 -1
- package/web-shell/assets/index-BI-JAO07.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DT2mOSvp.js → infoDiagram-5YYISTIA-3NYyMeZU.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-9fy_K4bd.js → ishikawaDiagram-YF4QCWOH-C03VCu-U.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-CoGSEuhE.js → journeyDiagram-JHISSGLW-C9PuBRZW.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BP9hHYIj.js → kanban-definition-UN3LZRKU-C3LvioWR.js} +1 -1
- package/web-shell/assets/{linear-uIroDsmp.js → linear-Du6Yw8N_.js} +1 -1
- package/web-shell/assets/{mermaid.core-BUwoStsA.js → mermaid.core-BXY5D2-X.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-DZB-FWim.js → mindmap-definition-RKZ34NQL-2UrHLaDp.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-YPptloKl.js → pieDiagram-4H26LBE5-dC03ml45.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-dgk3DSzm.js → quadrantDiagram-W4KKPZXB-CD6jARrp.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-BH2En2i9.js → requirementDiagram-4Y6WPE33-BrK8aXfv.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BB98feeI.js → sankeyDiagram-5OEKKPKP-B5Vitki_.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CunAIGh8.js → sequenceDiagram-3UESZ5HK-CBy2t6Bo.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-DTJs_-I2.js → stateDiagram-AJRCARHV-Enrka6T2.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DUtYfXpW.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-Cd4AN7O0.js → timeline-definition-PNZ67QCA-CwFq78ss.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-xIG-rUU9.js → vennDiagram-CIIHVFJN-BkOidM0g.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-D1UyjIcG.js → wardley-L42UT6IY-D_j13hQW.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BVM0Mb99.js → wardleyDiagram-YWT4CUSO-7EveB1w6.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BX31JDSz.js → xychartDiagram-2RQKCTM6-DRkBhMXr.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-EDFD7VOX.js +0 -368
- package/chunks/chunk-GFYFLDEG.js +0 -709
- package/chunks/chunk-LUJQUNKY.js +0 -3288
- package/chunks/nonInteractiveCli-YURFHZV5.js +0 -129
- package/web-shell/assets/channel-Bi5TehaT.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BKhhRdd1.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BKhhRdd1.js +0 -1
- package/web-shell/assets/index-C_ouplMQ.js +0 -1187
- package/web-shell/assets/index-XGDFJE-X.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DrfFMYta.js +0 -1
|
@@ -339,6 +339,7 @@ var RestSseTransport = class {
|
|
|
339
339
|
baseUrl;
|
|
340
340
|
token;
|
|
341
341
|
_fetch;
|
|
342
|
+
activeSseRequests = /* @__PURE__ */ new Set();
|
|
342
343
|
_disposed = false;
|
|
343
344
|
type = "rest";
|
|
344
345
|
supportsReplay = true;
|
|
@@ -371,75 +372,86 @@ var RestSseTransport = class {
|
|
|
371
372
|
if (this._disposed) {
|
|
372
373
|
throw new DaemonTransportClosedError();
|
|
373
374
|
}
|
|
374
|
-
const
|
|
375
|
-
|
|
376
|
-
headers["Authorization"] = `Bearer ${this.token}`;
|
|
377
|
-
}
|
|
378
|
-
if (opts.lastEventId !== void 0) {
|
|
379
|
-
headers["Last-Event-ID"] = String(opts.lastEventId);
|
|
380
|
-
}
|
|
381
|
-
const connectCtrl = new AbortController();
|
|
382
|
-
let connectTimer;
|
|
383
|
-
const connectTimeoutMs = opts.connectTimeoutMs;
|
|
384
|
-
if (connectTimeoutMs && Number.isFinite(connectTimeoutMs)) {
|
|
385
|
-
connectTimer = setTimeout(
|
|
386
|
-
() => connectCtrl.abort(
|
|
387
|
-
new DOMException("Initial connect timed out", "TimeoutError")
|
|
388
|
-
),
|
|
389
|
-
connectTimeoutMs
|
|
390
|
-
);
|
|
391
|
-
if (typeof connectTimer === "object" && connectTimer && "unref" in connectTimer) {
|
|
392
|
-
connectTimer.unref();
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
const fetchSignal = opts.signal ? composeAbortSignals([opts.signal, connectCtrl.signal]) : connectCtrl.signal;
|
|
396
|
-
let url = `${this.baseUrl}/session/${encodeURIComponent(sessionId)}/events`;
|
|
397
|
-
if (opts.maxQueued !== void 0) {
|
|
398
|
-
url += `?maxQueued=${encodeURIComponent(String(opts.maxQueued))}`;
|
|
399
|
-
}
|
|
400
|
-
let res;
|
|
375
|
+
const requestCtrl = new AbortController();
|
|
376
|
+
this.activeSseRequests.add(requestCtrl);
|
|
401
377
|
try {
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
378
|
+
const headers = { Accept: "text/event-stream" };
|
|
379
|
+
if (this.token) {
|
|
380
|
+
headers["Authorization"] = `Bearer ${this.token}`;
|
|
381
|
+
}
|
|
382
|
+
if (opts.lastEventId !== void 0) {
|
|
383
|
+
headers["Last-Event-ID"] = String(opts.lastEventId);
|
|
384
|
+
}
|
|
385
|
+
const fetchSignal = opts.signal ? composeAbortSignals([opts.signal, requestCtrl.signal]) : requestCtrl.signal;
|
|
386
|
+
let url = `${this.baseUrl}/session/${encodeURIComponent(sessionId)}/events`;
|
|
387
|
+
if (opts.maxQueued !== void 0) {
|
|
388
|
+
url += `?maxQueued=${encodeURIComponent(String(opts.maxQueued))}`;
|
|
389
|
+
}
|
|
390
|
+
let connectTimer;
|
|
391
|
+
const connectTimeoutMs = opts.connectTimeoutMs;
|
|
392
|
+
if (connectTimeoutMs && Number.isFinite(connectTimeoutMs)) {
|
|
393
|
+
connectTimer = setTimeout(
|
|
394
|
+
() => requestCtrl.abort(
|
|
395
|
+
new DOMException("Initial connect timed out", "TimeoutError")
|
|
396
|
+
),
|
|
397
|
+
connectTimeoutMs
|
|
398
|
+
);
|
|
399
|
+
if (typeof connectTimer === "object" && connectTimer && "unref" in connectTimer) {
|
|
400
|
+
connectTimer.unref();
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
let res;
|
|
408
404
|
try {
|
|
409
|
-
|
|
405
|
+
res = await this._fetch(url, { headers, signal: fetchSignal });
|
|
406
|
+
} finally {
|
|
407
|
+
if (connectTimer !== void 0) clearTimeout(connectTimer);
|
|
408
|
+
}
|
|
409
|
+
if (!res.ok) {
|
|
410
|
+
let body;
|
|
410
411
|
try {
|
|
411
|
-
|
|
412
|
+
const text = await res.text();
|
|
413
|
+
try {
|
|
414
|
+
body = JSON.parse(text);
|
|
415
|
+
} catch {
|
|
416
|
+
body = text;
|
|
417
|
+
}
|
|
412
418
|
} catch {
|
|
413
|
-
body = text;
|
|
414
419
|
}
|
|
415
|
-
|
|
420
|
+
const detail = body && typeof body === "object" && "error" in body ? String(body.error) : `HTTP ${res.status}`;
|
|
421
|
+
throw new DaemonHttpError(
|
|
422
|
+
res.status,
|
|
423
|
+
body,
|
|
424
|
+
`GET /session/:id/events: ${detail}`
|
|
425
|
+
);
|
|
416
426
|
}
|
|
417
|
-
const
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
} catch {
|
|
427
|
+
const ct = res.headers.get("content-type") ?? "";
|
|
428
|
+
if (!ct.toLowerCase().includes("text/event-stream")) {
|
|
429
|
+
try {
|
|
430
|
+
await res.body?.cancel();
|
|
431
|
+
} catch {
|
|
432
|
+
}
|
|
433
|
+
throw new DaemonHttpError(
|
|
434
|
+
res.status,
|
|
435
|
+
ct,
|
|
436
|
+
`GET /session/:id/events: expected content-type text/event-stream, got "${ct}"`
|
|
437
|
+
);
|
|
429
438
|
}
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
throw new Error("No SSE body");
|
|
439
|
+
if (!res.body) {
|
|
440
|
+
throw new Error("No SSE body");
|
|
441
|
+
}
|
|
442
|
+
yield* parseSseStream(res.body, fetchSignal);
|
|
443
|
+
} finally {
|
|
444
|
+
requestCtrl.abort();
|
|
445
|
+
this.activeSseRequests.delete(requestCtrl);
|
|
438
446
|
}
|
|
439
|
-
yield* parseSseStream(res.body, opts.signal);
|
|
440
447
|
}
|
|
441
448
|
dispose() {
|
|
449
|
+
if (this._disposed) return;
|
|
442
450
|
this._disposed = true;
|
|
451
|
+
for (const requestCtrl of this.activeSseRequests) {
|
|
452
|
+
requestCtrl.abort();
|
|
453
|
+
}
|
|
454
|
+
this.activeSseRequests.clear();
|
|
443
455
|
}
|
|
444
456
|
};
|
|
445
457
|
function composeAbortSignals(signals) {
|
|
@@ -994,6 +1006,24 @@ var DaemonClient = class {
|
|
|
994
1006
|
{ mode: "rest" }
|
|
995
1007
|
);
|
|
996
1008
|
}
|
|
1009
|
+
async workspaceGitLog(limit, skip) {
|
|
1010
|
+
const params = new URLSearchParams();
|
|
1011
|
+
if (limit != null) params.set("limit", String(limit));
|
|
1012
|
+
if (skip != null) params.set("skip", String(skip));
|
|
1013
|
+
const qs = params.toString();
|
|
1014
|
+
return await this.jsonRequest(
|
|
1015
|
+
`/workspace/git/log${qs ? `?${qs}` : ""}`,
|
|
1016
|
+
"GET /workspace/git/log",
|
|
1017
|
+
{ mode: "rest" }
|
|
1018
|
+
);
|
|
1019
|
+
}
|
|
1020
|
+
async workspaceGitCommitDetail(sha) {
|
|
1021
|
+
return await this.jsonRequest(
|
|
1022
|
+
`/workspace/git/log/commit?sha=${urlEncode(sha)}`,
|
|
1023
|
+
"GET /workspace/git/log/commit",
|
|
1024
|
+
{ mode: "rest" }
|
|
1025
|
+
);
|
|
1026
|
+
}
|
|
997
1027
|
async workspaceMcpTools(serverName) {
|
|
998
1028
|
return await this.fetchWithTimeout(
|
|
999
1029
|
`${this.baseUrl}/workspace/mcp/${urlEncode(serverName)}/tools`,
|
|
@@ -1036,28 +1066,21 @@ var DaemonClient = class {
|
|
|
1036
1066
|
async workspaceAcpPreheat(timeoutMs) {
|
|
1037
1067
|
const serverBudgetMs = timeoutMs ?? 5e3;
|
|
1038
1068
|
const suffix = timeoutMs !== void 0 ? `?timeoutMs=${encodeURIComponent(timeoutMs)}` : "";
|
|
1039
|
-
return await this.
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
},
|
|
1048
|
-
serverBudgetMs + 2e3
|
|
1069
|
+
return await this.jsonRequest(
|
|
1070
|
+
`/workspace/acp/preheat${suffix}`,
|
|
1071
|
+
"POST /workspace/acp/preheat",
|
|
1072
|
+
{
|
|
1073
|
+
method: "POST",
|
|
1074
|
+
timeoutMs: serverBudgetMs + 2e3,
|
|
1075
|
+
mode: "rest"
|
|
1076
|
+
}
|
|
1049
1077
|
);
|
|
1050
1078
|
}
|
|
1051
1079
|
async workspaceAcpStatus() {
|
|
1052
|
-
return await this.
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
if (!res.ok) {
|
|
1057
|
-
throw await this.failOnError(res, "GET /workspace/acp/status");
|
|
1058
|
-
}
|
|
1059
|
-
return await res.json();
|
|
1060
|
-
}
|
|
1080
|
+
return await this.jsonRequest(
|
|
1081
|
+
"/workspace/acp/status",
|
|
1082
|
+
"GET /workspace/acp/status",
|
|
1083
|
+
{ mode: "rest" }
|
|
1061
1084
|
);
|
|
1062
1085
|
}
|
|
1063
1086
|
async workspaceProviders() {
|
|
@@ -1742,7 +1765,8 @@ var DaemonClient = class {
|
|
|
1742
1765
|
...req.sessionScope !== void 0 ? { sessionScope: req.sessionScope } : {},
|
|
1743
1766
|
...req.approvalMode !== void 0 ? { approvalMode: req.approvalMode } : {},
|
|
1744
1767
|
...req.sourceType !== void 0 ? { sourceType: req.sourceType } : {},
|
|
1745
|
-
...req.sourceId !== void 0 ? { sourceId: req.sourceId } : {}
|
|
1768
|
+
...req.sourceId !== void 0 ? { sourceId: req.sourceId } : {},
|
|
1769
|
+
...req.worktree !== void 0 ? { worktree: req.worktree } : {}
|
|
1746
1770
|
})
|
|
1747
1771
|
},
|
|
1748
1772
|
async (res) => {
|
|
@@ -3336,7 +3360,8 @@ var DaemonClient = class {
|
|
|
3336
3360
|
headers: this.headers({ "Content-Type": "application/json" }),
|
|
3337
3361
|
body: JSON.stringify({
|
|
3338
3362
|
cwd,
|
|
3339
|
-
...options.persist ? { persist: true } : {}
|
|
3363
|
+
...options.persist ? { persist: true } : {},
|
|
3364
|
+
...options.displayName !== void 0 ? { displayName: options.displayName } : {}
|
|
3340
3365
|
})
|
|
3341
3366
|
},
|
|
3342
3367
|
async (res) => {
|
|
@@ -3347,6 +3372,14 @@ var DaemonClient = class {
|
|
|
3347
3372
|
}
|
|
3348
3373
|
);
|
|
3349
3374
|
}
|
|
3375
|
+
async updateWorkspace(workspaceSelector, update) {
|
|
3376
|
+
return await this.workspaceJsonRequest(
|
|
3377
|
+
urlEncode(workspaceSelector),
|
|
3378
|
+
"",
|
|
3379
|
+
"PATCH /workspaces/:workspace",
|
|
3380
|
+
{ method: "PATCH", body: update, mode: "rest" }
|
|
3381
|
+
);
|
|
3382
|
+
}
|
|
3350
3383
|
// -- Lifecycle / disposal ------------------------------------------------
|
|
3351
3384
|
/**
|
|
3352
3385
|
* Release transport resources (WS close, etc.). Idempotent.
|
|
@@ -3456,10 +3489,11 @@ var WorkspaceDaemonClient = class {
|
|
|
3456
3489
|
opts
|
|
3457
3490
|
);
|
|
3458
3491
|
}
|
|
3459
|
-
workspaceGit() {
|
|
3492
|
+
workspaceGit(cwd) {
|
|
3493
|
+
const suffix = cwd ? `/git?cwd=${encodeURIComponent(cwd)}` : "/git";
|
|
3460
3494
|
return this.client.workspaceJsonRequest(
|
|
3461
3495
|
this.workspaceSelector,
|
|
3462
|
-
|
|
3496
|
+
suffix,
|
|
3463
3497
|
"GET /workspaces/:workspace/git",
|
|
3464
3498
|
{ mode: "rest" }
|
|
3465
3499
|
);
|
|
@@ -3481,6 +3515,26 @@ var WorkspaceDaemonClient = class {
|
|
|
3481
3515
|
{ mode: "rest" }
|
|
3482
3516
|
);
|
|
3483
3517
|
}
|
|
3518
|
+
workspaceGitLog(limit, skip) {
|
|
3519
|
+
const params = new URLSearchParams();
|
|
3520
|
+
if (limit != null) params.set("limit", String(limit));
|
|
3521
|
+
if (skip != null) params.set("skip", String(skip));
|
|
3522
|
+
const qs = params.toString();
|
|
3523
|
+
return this.client.workspaceJsonRequest(
|
|
3524
|
+
this.workspaceSelector,
|
|
3525
|
+
`/git/log${qs ? `?${qs}` : ""}`,
|
|
3526
|
+
"GET /workspaces/:workspace/git/log",
|
|
3527
|
+
{ mode: "rest" }
|
|
3528
|
+
);
|
|
3529
|
+
}
|
|
3530
|
+
workspaceGitCommitDetail(sha) {
|
|
3531
|
+
return this.client.workspaceJsonRequest(
|
|
3532
|
+
this.workspaceSelector,
|
|
3533
|
+
`/git/log/commit?sha=${urlEncode(sha)}`,
|
|
3534
|
+
"GET /workspaces/:workspace/git/log/commit",
|
|
3535
|
+
{ mode: "rest" }
|
|
3536
|
+
);
|
|
3537
|
+
}
|
|
3484
3538
|
workspaceSkills() {
|
|
3485
3539
|
return this.get("/skills", "GET /workspaces/:workspace/skills");
|
|
3486
3540
|
}
|
|
@@ -4071,6 +4125,9 @@ var DaemonSessionClient = class _DaemonSessionClient {
|
|
|
4071
4125
|
get clientId() {
|
|
4072
4126
|
return this.session.clientId;
|
|
4073
4127
|
}
|
|
4128
|
+
get worktree() {
|
|
4129
|
+
return this.session.worktree;
|
|
4130
|
+
}
|
|
4074
4131
|
get lastEventId() {
|
|
4075
4132
|
return this.lastSeenEventId;
|
|
4076
4133
|
}
|
|
@@ -6257,9 +6314,11 @@ function normalizeMidTurnMessageInjected(event, base) {
|
|
|
6257
6314
|
__name(normalizeMidTurnMessageInjected, "normalizeMidTurnMessageInjected");
|
|
6258
6315
|
function createBase(event, opts) {
|
|
6259
6316
|
const serverTimestamp = extractServerTimestamp(event);
|
|
6317
|
+
const sourceRecordIds = extractSourceRecordIds(event);
|
|
6260
6318
|
return {
|
|
6261
6319
|
...event.id !== void 0 ? { eventId: event.id } : {},
|
|
6262
6320
|
...serverTimestamp !== void 0 ? { serverTimestamp } : {},
|
|
6321
|
+
...sourceRecordIds ? { sourceRecordIds } : {},
|
|
6263
6322
|
...event.originatorClientId ? { originatorClientId: event.originatorClientId } : {},
|
|
6264
6323
|
...opts.includeRawEvent ? { rawEvent: { ...event, data: redactSensitiveFields(event.data) } } : {}
|
|
6265
6324
|
};
|
|
@@ -6448,9 +6507,26 @@ function extractParentToolCallId(update) {
|
|
|
6448
6507
|
__name(extractParentToolCallId, "extractParentToolCallId");
|
|
6449
6508
|
function extractUpdateMeta(update) {
|
|
6450
6509
|
const meta = isRecord2(update["_meta"]) ? update["_meta"] : void 0;
|
|
6451
|
-
|
|
6510
|
+
if (!meta) return void 0;
|
|
6511
|
+
const { qwenTranscript: _qwenTranscript, ...displayMeta } = meta;
|
|
6512
|
+
return Object.keys(displayMeta).length > 0 ? displayMeta : void 0;
|
|
6452
6513
|
}
|
|
6453
6514
|
__name(extractUpdateMeta, "extractUpdateMeta");
|
|
6515
|
+
function extractSourceRecordIds(event) {
|
|
6516
|
+
if (!isRecord2(event.data)) return void 0;
|
|
6517
|
+
const update = getSessionUpdatePayload(event.data);
|
|
6518
|
+
const meta = update && isRecord2(update["_meta"]) ? update["_meta"] : void 0;
|
|
6519
|
+
const transcript = meta && isRecord2(meta["qwenTranscript"]) ? meta["qwenTranscript"] : void 0;
|
|
6520
|
+
const values = transcript?.["sourceRecordIds"];
|
|
6521
|
+
if (!Array.isArray(values)) return void 0;
|
|
6522
|
+
const ids = [
|
|
6523
|
+
...new Set(
|
|
6524
|
+
values.filter((value) => typeof value === "string")
|
|
6525
|
+
)
|
|
6526
|
+
];
|
|
6527
|
+
return ids.length > 0 ? ids : void 0;
|
|
6528
|
+
}
|
|
6529
|
+
__name(extractSourceRecordIds, "extractSourceRecordIds");
|
|
6454
6530
|
function extractAssistantUsage(update) {
|
|
6455
6531
|
const meta = isRecord2(update["_meta"]) ? update["_meta"] : void 0;
|
|
6456
6532
|
const usage = meta && isRecord2(meta["usage"]) ? meta["usage"] : void 0;
|
|
@@ -6515,8 +6591,9 @@ __name(normalizeToolUpdate, "normalizeToolUpdate");
|
|
|
6515
6591
|
function normalizePlanUpdate(update, base) {
|
|
6516
6592
|
const entries = Array.isArray(update["entries"]) ? update["entries"] : [];
|
|
6517
6593
|
const contentText = capDetails(formatPlanEntries(entries));
|
|
6518
|
-
const planCallId = base.eventId !== void 0 ? `${DAEMON_PLAN_TOOL_CALL_ID}-${base.eventId}` : DAEMON_PLAN_TOOL_CALL_ID;
|
|
6519
6594
|
const meta = isRecord2(update["_meta"]) ? update["_meta"] : void 0;
|
|
6595
|
+
const transcript = meta && isRecord2(meta["qwenTranscript"]) ? meta["qwenTranscript"] : void 0;
|
|
6596
|
+
const planCallId = getString2(transcript, "planToolCallId") ?? (base.eventId !== void 0 ? `${DAEMON_PLAN_TOOL_CALL_ID}-${base.eventId}` : DAEMON_PLAN_TOOL_CALL_ID);
|
|
6520
6597
|
const stats = meta && isRecord2(meta["stats"]) ? meta["stats"] : void 0;
|
|
6521
6598
|
return {
|
|
6522
6599
|
...base,
|
|
@@ -7581,24 +7658,27 @@ var TRIMMED_PERMISSION_BLOCK_ID = "__trimmed_permission_block__";
|
|
|
7581
7658
|
var MAX_TEXT_BLOCK_LENGTH = 1e5;
|
|
7582
7659
|
var TEXT_TRUNCATED_SUFFIX = "\n[truncated]\n";
|
|
7583
7660
|
var MAX_CLONE_DEPTH = 16;
|
|
7661
|
+
var truncationCallbacks = /* @__PURE__ */ new WeakMap();
|
|
7584
7662
|
var timestampFormatterCache = /* @__PURE__ */ new Map();
|
|
7585
7663
|
function createDaemonTranscriptState(opts = {}) {
|
|
7586
|
-
|
|
7664
|
+
const state = {
|
|
7587
7665
|
blocks: [],
|
|
7588
|
-
blockIndexById:
|
|
7589
|
-
toolBlockByCallId:
|
|
7590
|
-
trimmedToolNotificationByCallId:
|
|
7591
|
-
permissionBlockByRequestId:
|
|
7592
|
-
activeAssistantBlockByParent:
|
|
7593
|
-
activeThoughtBlockByParent:
|
|
7666
|
+
blockIndexById: createIndex(),
|
|
7667
|
+
toolBlockByCallId: createIndex(),
|
|
7668
|
+
trimmedToolNotificationByCallId: createIndex(),
|
|
7669
|
+
permissionBlockByRequestId: createIndex(),
|
|
7670
|
+
activeAssistantBlockByParent: createIndex(),
|
|
7671
|
+
activeThoughtBlockByParent: createIndex(),
|
|
7594
7672
|
// PR-E sidechannel: track current tool / approval mode / progress
|
|
7595
|
-
toolProgress:
|
|
7673
|
+
toolProgress: createIndex(),
|
|
7596
7674
|
awaitingResync: false,
|
|
7597
7675
|
resyncRequiredCount: 0,
|
|
7598
7676
|
nextOrdinal: 1,
|
|
7599
7677
|
now: opts.now ?? Date.now(),
|
|
7600
7678
|
maxBlocks: opts.maxBlocks ?? DEFAULT_MAX_BLOCKS
|
|
7601
7679
|
};
|
|
7680
|
+
if (opts.onTruncation) truncationCallbacks.set(state, opts.onTruncation);
|
|
7681
|
+
return state;
|
|
7602
7682
|
}
|
|
7603
7683
|
__name(createDaemonTranscriptState, "createDaemonTranscriptState");
|
|
7604
7684
|
var IN_FLIGHT_TOOL_STATUSES = /* @__PURE__ */ new Set([
|
|
@@ -7654,7 +7734,7 @@ function reduceDaemonTranscriptEvents(state, events, opts = {}) {
|
|
|
7654
7734
|
}
|
|
7655
7735
|
__name(reduceDaemonTranscriptEvents, "reduceDaemonTranscriptEvents");
|
|
7656
7736
|
function rebuildDaemonTranscriptBlockIndex(blocks) {
|
|
7657
|
-
const blockIndexById =
|
|
7737
|
+
const blockIndexById = createIndex();
|
|
7658
7738
|
blocks.forEach((block, index) => {
|
|
7659
7739
|
blockIndexById[block.id] = index;
|
|
7660
7740
|
});
|
|
@@ -7687,11 +7767,17 @@ function applyDaemonTranscriptEvent(next, event) {
|
|
|
7687
7767
|
appendTextDelta(next, "user", "activeUserBlockId", event.text, event);
|
|
7688
7768
|
break;
|
|
7689
7769
|
case "user.image.delta": {
|
|
7690
|
-
|
|
7770
|
+
const activeUserIndex = next.activeUserBlockId ? next.blockIndexById[next.activeUserBlockId] : void 0;
|
|
7771
|
+
const activeUser = activeUserIndex !== void 0 ? next.blocks[activeUserIndex] : void 0;
|
|
7772
|
+
if (activeUser?.kind !== "user" || !stringArraysEqual(activeUser.sourceRecordIds, event.sourceRecordIds)) {
|
|
7691
7773
|
const block = createTextBlock(
|
|
7692
7774
|
next,
|
|
7693
7775
|
"user",
|
|
7694
|
-
""
|
|
7776
|
+
"",
|
|
7777
|
+
event.eventId,
|
|
7778
|
+
event.serverTimestamp,
|
|
7779
|
+
void 0,
|
|
7780
|
+
event.sourceRecordIds
|
|
7695
7781
|
);
|
|
7696
7782
|
block.images = [{ data: event.data, mimeType: event.mimeType }];
|
|
7697
7783
|
appendBlock(next, block);
|
|
@@ -7919,7 +8005,7 @@ function appendTextDelta(state, kind, activeKey, text, event) {
|
|
|
7919
8005
|
const effectiveId = parentMap && parentId != null ? parentMap[parentId] : state[activeKey];
|
|
7920
8006
|
const existing = getWritableBlockById(state, effectiveId);
|
|
7921
8007
|
if (existing && existing.kind === kind && canMergeTextDelta(existing, event)) {
|
|
7922
|
-
existing.text = appendBoundedText(existing
|
|
8008
|
+
existing.text = appendBoundedText(state, existing, text);
|
|
7923
8009
|
existing.updatedAt = state.now;
|
|
7924
8010
|
if (event.eventId !== void 0) existing.eventId = event.eventId;
|
|
7925
8011
|
if (event.serverTimestamp !== void 0) {
|
|
@@ -7928,18 +8014,23 @@ function appendTextDelta(state, kind, activeKey, text, event) {
|
|
|
7928
8014
|
if ("meta" in event && event.meta) {
|
|
7929
8015
|
existing.meta = { ...existing.meta, ...event.meta };
|
|
7930
8016
|
}
|
|
7931
|
-
if (kind
|
|
8017
|
+
if (kind !== "user") existing.streaming = true;
|
|
7932
8018
|
return;
|
|
7933
8019
|
}
|
|
8020
|
+
if (existing?.kind === kind && kind !== "user") {
|
|
8021
|
+
existing.streaming = false;
|
|
8022
|
+
existing.updatedAt = state.now;
|
|
8023
|
+
}
|
|
7934
8024
|
const block = createTextBlock(
|
|
7935
8025
|
state,
|
|
7936
8026
|
kind,
|
|
7937
8027
|
text,
|
|
7938
8028
|
event.eventId,
|
|
7939
8029
|
event.serverTimestamp,
|
|
7940
|
-
"meta" in event ? event.meta : void 0
|
|
8030
|
+
"meta" in event ? event.meta : void 0,
|
|
8031
|
+
event.sourceRecordIds
|
|
7941
8032
|
);
|
|
7942
|
-
if (kind
|
|
8033
|
+
if (kind !== "user") block.streaming = true;
|
|
7943
8034
|
if (kind === "thought") block.collapsed = true;
|
|
7944
8035
|
if (parentId != null) {
|
|
7945
8036
|
block.parentToolCallId = parentId;
|
|
@@ -7969,6 +8060,9 @@ function canMergeTextDelta(existing, event) {
|
|
|
7969
8060
|
return false;
|
|
7970
8061
|
}
|
|
7971
8062
|
if (existing.meta?.qwenDiscreteMessage === true) return false;
|
|
8063
|
+
if (!stringArraysEqual(existing.sourceRecordIds, event.sourceRecordIds)) {
|
|
8064
|
+
return false;
|
|
8065
|
+
}
|
|
7972
8066
|
return !("meta" in event) || event.meta?.qwenDiscreteMessage !== true;
|
|
7973
8067
|
}
|
|
7974
8068
|
__name(canMergeTextDelta, "canMergeTextDelta");
|
|
@@ -8021,6 +8115,10 @@ function upsertToolBlock(state, event) {
|
|
|
8021
8115
|
if (event.locations !== void 0) existing.locations = event.locations;
|
|
8022
8116
|
if (event.rawInput !== void 0) existing.rawInput = event.rawInput;
|
|
8023
8117
|
if (event.rawOutput !== void 0) existing.rawOutput = event.rawOutput;
|
|
8118
|
+
existing.sourceRecordIds = unionStrings(
|
|
8119
|
+
existing.sourceRecordIds,
|
|
8120
|
+
event.sourceRecordIds
|
|
8121
|
+
);
|
|
8024
8122
|
if (event.toolName) existing.toolName = event.toolName;
|
|
8025
8123
|
if (event.toolKind) existing.toolKind = event.toolKind;
|
|
8026
8124
|
if (event.parentToolCallId && !existing.parentToolCallId) {
|
|
@@ -8055,6 +8153,7 @@ function upsertToolBlock(state, event) {
|
|
|
8055
8153
|
updatedAt: state.now,
|
|
8056
8154
|
...event.eventId !== void 0 ? { eventId: event.eventId } : {},
|
|
8057
8155
|
...event.serverTimestamp !== void 0 ? { serverTimestamp: event.serverTimestamp } : {},
|
|
8156
|
+
...event.sourceRecordIds ? { sourceRecordIds: [...event.sourceRecordIds] } : {},
|
|
8058
8157
|
...event.details ? { details: event.details } : {},
|
|
8059
8158
|
...event.content !== void 0 ? { content: event.content } : {},
|
|
8060
8159
|
...event.locations !== void 0 ? { locations: event.locations } : {},
|
|
@@ -8121,16 +8220,17 @@ function appendShellBlock(state, event) {
|
|
|
8121
8220
|
if (last?.kind === "shell" && last.stream === event.stream) {
|
|
8122
8221
|
const writable = getWritableBlockById(state, last.id);
|
|
8123
8222
|
if (writable?.kind === "shell") {
|
|
8124
|
-
writable.text = appendBoundedText(writable
|
|
8223
|
+
writable.text = appendBoundedText(state, writable, event.text);
|
|
8125
8224
|
writable.updatedAt = state.now;
|
|
8126
8225
|
if (event.eventId !== void 0) writable.eventId = event.eventId;
|
|
8127
8226
|
}
|
|
8128
8227
|
return;
|
|
8129
8228
|
}
|
|
8229
|
+
const blockId = allocateBlockId(state, "shell");
|
|
8130
8230
|
const block = {
|
|
8131
|
-
id:
|
|
8231
|
+
id: blockId,
|
|
8132
8232
|
kind: "shell",
|
|
8133
|
-
text: truncateText(event.text),
|
|
8233
|
+
text: truncateText(state, blockId, void 0, event.text),
|
|
8134
8234
|
clientReceivedAt: state.now,
|
|
8135
8235
|
createdAt: state.now,
|
|
8136
8236
|
updatedAt: state.now,
|
|
@@ -8148,7 +8248,7 @@ function appendUserShellBlock(state, event) {
|
|
|
8148
8248
|
if (last?.kind === "user_shell" && last.stream === event.stream && !state.pendingUserShellCommand) {
|
|
8149
8249
|
const writable = getWritableBlockById(state, last.id);
|
|
8150
8250
|
if (writable?.kind === "user_shell") {
|
|
8151
|
-
writable.text = appendBoundedText(writable
|
|
8251
|
+
writable.text = appendBoundedText(state, writable, event.text);
|
|
8152
8252
|
writable.updatedAt = state.now;
|
|
8153
8253
|
if (event.eventId !== void 0) writable.eventId = event.eventId;
|
|
8154
8254
|
}
|
|
@@ -8156,10 +8256,11 @@ function appendUserShellBlock(state, event) {
|
|
|
8156
8256
|
}
|
|
8157
8257
|
const pending = state.pendingUserShellCommand;
|
|
8158
8258
|
const previous = last?.kind === "user_shell" ? last : void 0;
|
|
8259
|
+
const blockId = allocateBlockId(state, "user-shell");
|
|
8159
8260
|
const block = {
|
|
8160
|
-
id:
|
|
8261
|
+
id: blockId,
|
|
8161
8262
|
kind: "user_shell",
|
|
8162
|
-
text: truncateText(event.text),
|
|
8263
|
+
text: truncateText(state, blockId, void 0, event.text),
|
|
8163
8264
|
command: pending?.command ?? previous?.command ?? "",
|
|
8164
8265
|
...pending?.cwd || previous?.cwd ? { cwd: pending?.cwd ?? previous?.cwd } : {},
|
|
8165
8266
|
clientReceivedAt: state.now,
|
|
@@ -8242,10 +8343,11 @@ function resolvePermissionBlock(state, event) {
|
|
|
8242
8343
|
}
|
|
8243
8344
|
__name(resolvePermissionBlock, "resolvePermissionBlock");
|
|
8244
8345
|
function appendStatusBlock(state, kind, text, event, opts = {}) {
|
|
8346
|
+
const blockId = allocateBlockId(state, kind);
|
|
8245
8347
|
const block = {
|
|
8246
|
-
id:
|
|
8348
|
+
id: blockId,
|
|
8247
8349
|
kind,
|
|
8248
|
-
text: truncateText(text),
|
|
8350
|
+
text: truncateText(state, blockId, void 0, text),
|
|
8249
8351
|
clientReceivedAt: state.now,
|
|
8250
8352
|
createdAt: state.now,
|
|
8251
8353
|
updatedAt: state.now,
|
|
@@ -8285,22 +8387,24 @@ function appendPromptCancelledBlock(state, event) {
|
|
|
8285
8387
|
clearActiveText(state);
|
|
8286
8388
|
}
|
|
8287
8389
|
__name(appendPromptCancelledBlock, "appendPromptCancelledBlock");
|
|
8288
|
-
function createTextBlock(state, kind, text, eventId, serverTimestamp, meta) {
|
|
8390
|
+
function createTextBlock(state, kind, text, eventId, serverTimestamp, meta, sourceRecordIds) {
|
|
8391
|
+
const blockId = allocateBlockId(state, kind);
|
|
8289
8392
|
return {
|
|
8290
|
-
id:
|
|
8393
|
+
id: blockId,
|
|
8291
8394
|
kind,
|
|
8292
|
-
text: truncateText(text),
|
|
8395
|
+
text: truncateText(state, blockId, sourceRecordIds, text),
|
|
8293
8396
|
clientReceivedAt: state.now,
|
|
8294
8397
|
createdAt: state.now,
|
|
8295
8398
|
updatedAt: state.now,
|
|
8296
8399
|
...eventId !== void 0 ? { eventId } : {},
|
|
8297
8400
|
...serverTimestamp !== void 0 ? { serverTimestamp } : {},
|
|
8401
|
+
...sourceRecordIds ? { sourceRecordIds: [...sourceRecordIds] } : {},
|
|
8298
8402
|
...meta ? { meta: { ...meta } } : {}
|
|
8299
8403
|
};
|
|
8300
8404
|
}
|
|
8301
8405
|
__name(createTextBlock, "createTextBlock");
|
|
8302
8406
|
function cloneTranscriptState(state, opts) {
|
|
8303
|
-
|
|
8407
|
+
const next = {
|
|
8304
8408
|
...state,
|
|
8305
8409
|
now: opts.now ?? Date.now(),
|
|
8306
8410
|
maxBlocks: opts.maxBlocks ?? state.maxBlocks,
|
|
@@ -8316,21 +8420,25 @@ function cloneTranscriptState(state, opts) {
|
|
|
8316
8420
|
// consumers + the WeakMap caches want.
|
|
8317
8421
|
blocks: state.blocks,
|
|
8318
8422
|
blockIndexById: state.blockIndexById,
|
|
8319
|
-
toolBlockByCallId:
|
|
8320
|
-
activeAssistantBlockByParent:
|
|
8321
|
-
|
|
8322
|
-
|
|
8323
|
-
|
|
8324
|
-
|
|
8325
|
-
|
|
8423
|
+
toolBlockByCallId: createIndex(state.toolBlockByCallId),
|
|
8424
|
+
activeAssistantBlockByParent: createIndex(
|
|
8425
|
+
state.activeAssistantBlockByParent
|
|
8426
|
+
),
|
|
8427
|
+
activeThoughtBlockByParent: createIndex(state.activeThoughtBlockByParent),
|
|
8428
|
+
trimmedToolNotificationByCallId: createIndex(
|
|
8429
|
+
state.trimmedToolNotificationByCallId
|
|
8430
|
+
),
|
|
8431
|
+
permissionBlockByRequestId: createIndex(state.permissionBlockByRequestId),
|
|
8326
8432
|
// Deep-clone the inner progress records.
|
|
8327
8433
|
// The outer spread alone shares `{ ratio?, step? }` references between
|
|
8328
8434
|
// snapshots — once `tool.progress` event handlers start mutating in
|
|
8329
8435
|
// place, the prior snapshot leaks. Pre-empt that here; cost is bounded
|
|
8330
8436
|
// by `Object.keys(state.toolProgress).length` which is small (only
|
|
8331
8437
|
// in-flight tools).
|
|
8332
|
-
toolProgress:
|
|
8333
|
-
Object.
|
|
8438
|
+
toolProgress: createIndex(
|
|
8439
|
+
Object.fromEntries(
|
|
8440
|
+
Object.entries(state.toolProgress).map(([k, v]) => [k, { ...v }])
|
|
8441
|
+
)
|
|
8334
8442
|
),
|
|
8335
8443
|
lastResyncRequired: state.lastResyncRequired !== void 0 ? { ...state.lastResyncRequired } : void 0,
|
|
8336
8444
|
// Share the reference — the reducer assigns a new object when
|
|
@@ -8340,10 +8448,14 @@ function cloneTranscriptState(state, opts) {
|
|
|
8340
8448
|
// that don't touch the suggestion.
|
|
8341
8449
|
lastFollowupSuggestion: state.lastFollowupSuggestion
|
|
8342
8450
|
};
|
|
8451
|
+
const onTruncation = opts.onTruncation ?? truncationCallbacks.get(state);
|
|
8452
|
+
if (onTruncation) truncationCallbacks.set(next, onTruncation);
|
|
8453
|
+
return next;
|
|
8343
8454
|
}
|
|
8344
8455
|
__name(cloneTranscriptState, "cloneTranscriptState");
|
|
8345
8456
|
function trimTranscriptState(state) {
|
|
8346
8457
|
if (state.blocks.length <= state.maxBlocks) return state;
|
|
8458
|
+
truncationCallbacks.get(state)?.({ kind: "blocks" });
|
|
8347
8459
|
const blocks = state.blocks.slice(-state.maxBlocks);
|
|
8348
8460
|
const keptIds = new Set(blocks.map((block) => block.id));
|
|
8349
8461
|
state.blocks = blocks;
|
|
@@ -8413,7 +8525,7 @@ var ownedBlocks = /* @__PURE__ */ new WeakMap();
|
|
|
8413
8525
|
function takeBlocksOwnership(state) {
|
|
8414
8526
|
if (ownedBlocks.get(state) === state.blocks) return;
|
|
8415
8527
|
state.blocks = [...state.blocks];
|
|
8416
|
-
state.blockIndexById =
|
|
8528
|
+
state.blockIndexById = createIndex(state.blockIndexById);
|
|
8417
8529
|
ownedBlocks.set(state, state.blocks);
|
|
8418
8530
|
}
|
|
8419
8531
|
__name(takeBlocksOwnership, "takeBlocksOwnership");
|
|
@@ -8443,14 +8555,14 @@ function truncateTranscriptBeforeBlock(state, blockIndex) {
|
|
|
8443
8555
|
__name(truncateTranscriptBeforeBlock, "truncateTranscriptBeforeBlock");
|
|
8444
8556
|
function rebuildTranscriptIndexes(state) {
|
|
8445
8557
|
state.blockIndexById = rebuildDaemonTranscriptBlockIndex(state.blocks);
|
|
8446
|
-
state.toolBlockByCallId =
|
|
8447
|
-
state.permissionBlockByRequestId =
|
|
8448
|
-
state.trimmedToolNotificationByCallId =
|
|
8558
|
+
state.toolBlockByCallId = createIndex();
|
|
8559
|
+
state.permissionBlockByRequestId = createIndex();
|
|
8560
|
+
state.trimmedToolNotificationByCallId = createIndex();
|
|
8449
8561
|
state.activeUserBlockId = void 0;
|
|
8450
8562
|
state.activeAssistantBlockId = void 0;
|
|
8451
8563
|
state.activeThoughtBlockId = void 0;
|
|
8452
|
-
state.activeAssistantBlockByParent =
|
|
8453
|
-
state.activeThoughtBlockByParent =
|
|
8564
|
+
state.activeAssistantBlockByParent = createIndex();
|
|
8565
|
+
state.activeThoughtBlockByParent = createIndex();
|
|
8454
8566
|
state.currentToolCallId = void 0;
|
|
8455
8567
|
state.pendingUserShellCommand = void 0;
|
|
8456
8568
|
state.lastFollowupSuggestion = void 0;
|
|
@@ -8526,13 +8638,18 @@ function clearActiveText(state, parentToolCallId) {
|
|
|
8526
8638
|
}
|
|
8527
8639
|
}
|
|
8528
8640
|
__name(clearActiveText, "clearActiveText");
|
|
8529
|
-
function appendBoundedText(
|
|
8530
|
-
|
|
8531
|
-
|
|
8641
|
+
function appendBoundedText(state, block, text) {
|
|
8642
|
+
const existing = "text" in block ? block.text : "";
|
|
8643
|
+
if (existing.length >= MAX_TEXT_BLOCK_LENGTH) {
|
|
8644
|
+
if (text) reportTextTruncation(state, block.id, block.sourceRecordIds);
|
|
8645
|
+
return existing;
|
|
8646
|
+
}
|
|
8647
|
+
return truncateText(state, block.id, block.sourceRecordIds, existing + text);
|
|
8532
8648
|
}
|
|
8533
8649
|
__name(appendBoundedText, "appendBoundedText");
|
|
8534
|
-
function truncateText(text) {
|
|
8650
|
+
function truncateText(state, blockId, sourceRecordIds, text) {
|
|
8535
8651
|
if (text.length <= MAX_TEXT_BLOCK_LENGTH) return text;
|
|
8652
|
+
reportTextTruncation(state, blockId, sourceRecordIds);
|
|
8536
8653
|
const keepLength = Math.max(
|
|
8537
8654
|
0,
|
|
8538
8655
|
MAX_TEXT_BLOCK_LENGTH - TEXT_TRUNCATED_SUFFIX.length
|
|
@@ -8540,6 +8657,29 @@ function truncateText(text) {
|
|
|
8540
8657
|
return `${text.slice(0, keepLength)}${TEXT_TRUNCATED_SUFFIX}`;
|
|
8541
8658
|
}
|
|
8542
8659
|
__name(truncateText, "truncateText");
|
|
8660
|
+
function reportTextTruncation(state, blockId, sourceRecordIds) {
|
|
8661
|
+
truncationCallbacks.get(state)?.({
|
|
8662
|
+
kind: "text",
|
|
8663
|
+
blockId,
|
|
8664
|
+
sourceRecordIds
|
|
8665
|
+
});
|
|
8666
|
+
}
|
|
8667
|
+
__name(reportTextTruncation, "reportTextTruncation");
|
|
8668
|
+
function createIndex(source) {
|
|
8669
|
+
return Object.assign(/* @__PURE__ */ Object.create(null), source);
|
|
8670
|
+
}
|
|
8671
|
+
__name(createIndex, "createIndex");
|
|
8672
|
+
function stringArraysEqual(left, right) {
|
|
8673
|
+
if (left === right) return true;
|
|
8674
|
+
if (!left || !right || left.length !== right.length) return false;
|
|
8675
|
+
return left.every((value, index) => value === right[index]);
|
|
8676
|
+
}
|
|
8677
|
+
__name(stringArraysEqual, "stringArraysEqual");
|
|
8678
|
+
function unionStrings(left, right) {
|
|
8679
|
+
if (!left && !right) return void 0;
|
|
8680
|
+
return [.../* @__PURE__ */ new Set([...left ?? [], ...right ?? []])];
|
|
8681
|
+
}
|
|
8682
|
+
__name(unionStrings, "unionStrings");
|
|
8543
8683
|
function pruneTrimmedToolIndexes(state) {
|
|
8544
8684
|
const maxTrimmedEntries = Math.max(0, state.maxBlocks);
|
|
8545
8685
|
const trimmedToolCallIds = Object.entries(state.toolBlockByCallId).filter(([, blockId]) => blockId === TRIMMED_TOOL_BLOCK_ID).map(([toolCallId]) => toolCallId);
|
|
@@ -8801,25 +8941,29 @@ function createState(seed) {
|
|
|
8801
8941
|
...seed,
|
|
8802
8942
|
blocks,
|
|
8803
8943
|
blockIndexById: rebuildDaemonTranscriptBlockIndex(blocks),
|
|
8804
|
-
toolBlockByCallId:
|
|
8805
|
-
trimmedToolNotificationByCallId:
|
|
8806
|
-
|
|
8807
|
-
|
|
8808
|
-
permissionBlockByRequestId:
|
|
8809
|
-
|
|
8810
|
-
|
|
8811
|
-
toolProgress:
|
|
8812
|
-
activeAssistantBlockByParent:
|
|
8813
|
-
|
|
8814
|
-
|
|
8815
|
-
activeThoughtBlockByParent:
|
|
8816
|
-
|
|
8817
|
-
|
|
8944
|
+
toolBlockByCallId: createNullIndex(seed.toolBlockByCallId),
|
|
8945
|
+
trimmedToolNotificationByCallId: createNullIndex(
|
|
8946
|
+
seed.trimmedToolNotificationByCallId
|
|
8947
|
+
),
|
|
8948
|
+
permissionBlockByRequestId: createNullIndex(
|
|
8949
|
+
seed.permissionBlockByRequestId
|
|
8950
|
+
),
|
|
8951
|
+
toolProgress: createNullIndex(seed.toolProgress),
|
|
8952
|
+
activeAssistantBlockByParent: createNullIndex(
|
|
8953
|
+
seed.activeAssistantBlockByParent
|
|
8954
|
+
),
|
|
8955
|
+
activeThoughtBlockByParent: createNullIndex(
|
|
8956
|
+
seed.activeThoughtBlockByParent
|
|
8957
|
+
),
|
|
8818
8958
|
lastResyncRequired: seed.lastResyncRequired !== void 0 ? { ...seed.lastResyncRequired } : void 0,
|
|
8819
8959
|
lastFollowupSuggestion: seed.lastFollowupSuggestion !== void 0 ? { ...seed.lastFollowupSuggestion } : void 0
|
|
8820
8960
|
};
|
|
8821
8961
|
}
|
|
8822
8962
|
__name(createState, "createState");
|
|
8963
|
+
function createNullIndex(source) {
|
|
8964
|
+
return Object.assign(/* @__PURE__ */ Object.create(null), source);
|
|
8965
|
+
}
|
|
8966
|
+
__name(createNullIndex, "createNullIndex");
|
|
8823
8967
|
|
|
8824
8968
|
// packages/sdk-typescript/src/daemon/ui/sentinels.ts
|
|
8825
8969
|
init_esbuild_shims();
|