@qwen-code/qwen-code 0.20.2-headless-image-routing.1 → 0.21.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/qc-helper/docs/configuration/settings.md +5 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +23 -5
- package/bundled/qc-helper/docs/integration-github-action.md +9 -9
- package/bundled/review/SKILL.md +7 -3
- package/chunks/MaxSizedBox-5DPPWPGT.js +85 -0
- package/chunks/{StandaloneSessionPicker-PLQQB22E.js → StandaloneSessionPicker-BIRMPLRD.js} +66 -59
- package/chunks/{acp-startup-profiler-N3RHHXJ3.js → acp-startup-profiler-RV3IV562.js} +2 -2
- package/chunks/{acpAgent-AIVK2EM5.js → acpAgent-6J2U72PQ.js} +705 -182
- package/chunks/agent-6ODUANDO.js +81 -0
- package/chunks/agent-headless-7BYQTMHW.js +75 -0
- package/chunks/{anthropicContentGenerator-HGWAHO24.js → anthropicContentGenerator-75BKLTSP.js} +117 -43
- package/chunks/{artifact-tool-56T5IMBP.js → artifact-tool-Y5T7GG7F.js} +3 -3
- package/chunks/{askUserQuestion-E25OBIC2.js → askUserQuestion-2H6747FR.js} +3 -3
- package/chunks/bridge-ZUB64FAE.js +90 -0
- package/chunks/{build-GHIZ4MSZ.js → build-RV63TIRH.js} +2 -3
- package/chunks/{ca-N6VVUFVB.js → ca-25EDXPFZ.js} +2 -0
- package/chunks/{channel-worker-group-QZV2SP5U.js → channel-worker-group-2ZD7TVAT.js} +8 -7
- package/chunks/{channel-worker-manager-3GMAU45H.js → channel-worker-manager-4OA4BCGB.js} +190 -30
- package/chunks/{channel-worker-supervisor-QCXSXCRY.js → channel-worker-supervisor-V7KCFJTS.js} +7 -6
- package/chunks/{chunk-TYQMGACW.js → chunk-22C7BQ6D.js} +508 -10967
- package/chunks/chunk-2JZBVYTU.js +452 -0
- package/chunks/{chunk-H2XVO6NE.js → chunk-2MIN6GRR.js} +1 -1
- package/chunks/{chunk-4DWTDZGS.js → chunk-2NH6DYI4.js} +12 -12
- package/chunks/chunk-2SCDWPXI.js +246 -0
- package/chunks/{chunk-QE4KFTBS.js → chunk-2X55UKQE.js} +3 -3
- package/chunks/{chunk-QBUDF33N.js → chunk-3QMGYBFN.js} +1 -1
- package/chunks/{chunk-3OAKYHRG.js → chunk-3RN6GBKS.js} +1 -1
- package/chunks/{chunk-QR6U5QPP.js → chunk-3SJ43L4W.js} +4 -0
- package/chunks/chunk-46UV252V.js +128 -0
- package/chunks/{chunk-GHRSKGHF.js → chunk-4WIZGAH3.js} +7 -7
- package/chunks/{chunk-CAS7CB3T.js → chunk-55DJUCI2.js} +87 -29
- package/chunks/{chunk-QNLNLENL.js → chunk-5I2IWRSH.js} +2 -2
- package/chunks/{chunk-H24SOJIQ.js → chunk-5NBDS5S6.js} +147 -7
- package/chunks/{chunk-E4IMU4Y5.js → chunk-63P4EL5V.js} +1 -1
- package/chunks/chunk-6FGBXPWM.js +293 -0
- package/chunks/{chunk-FFFM6NJV.js → chunk-6GMVPFB2.js} +155 -73
- package/chunks/{chunk-KWK7UE6L.js → chunk-6OUGMXDC.js} +6 -6
- package/chunks/{chunk-QRUIS3DN.js → chunk-6PEXNQTX.js} +22 -1
- package/chunks/{chunk-FZPTCQY7.js → chunk-7JURR4JT.js} +1 -1
- package/chunks/{chunk-Q6NAKZTA.js → chunk-7MVVZO4N.js} +4 -4
- package/chunks/{chunk-6ZBPS62S.js → chunk-7ZCNENPP.js} +1 -1
- package/chunks/{chunk-6X4GWOPW.js → chunk-A5L3JMUA.js} +1 -1
- package/chunks/{chunk-YO2XRXY6.js → chunk-ACY3A37B.js} +3 -3
- package/chunks/chunk-AMDSOFFV.js +10860 -0
- package/chunks/{chunk-RV4C2ZFG.js → chunk-BIQWWWJN.js} +1 -1
- package/chunks/{chunk-ZHERRXZJ.js → chunk-BJX6ZSUK.js} +4 -4
- package/chunks/chunk-BK2UNYWD.js +29 -0
- package/chunks/{chunk-FRPDJNK3.js → chunk-BKHWX6I2.js} +3 -3
- package/chunks/chunk-BPJSQIJX.js +100 -0
- package/chunks/{chunk-M7WBGLYP.js → chunk-BULDBTYC.js} +2 -0
- package/chunks/{chunk-ZDP2Y2AL.js → chunk-CIKQ7KKO.js} +4625 -8645
- package/chunks/{chunk-PEJWA3QQ.js → chunk-D3UEZIQH.js} +4 -2
- package/chunks/chunk-DHHOYAPR.js +1462 -0
- package/chunks/{chunk-LESHKUWF.js → chunk-DLWL3Z7A.js} +5 -3
- package/chunks/{chunk-XHATNRQA.js → chunk-DP3IHZGG.js} +0 -2
- package/chunks/chunk-E5TUC6CA.js +479 -0
- package/chunks/{chunk-JC26SJ5Y.js → chunk-EBJQ6AXW.js} +13 -12
- package/chunks/{chunk-RCWKCN2Z.js → chunk-EPDRMGT4.js} +164 -17
- package/chunks/{chunk-FUFCALSJ.js → chunk-ETSW4KLJ.js} +2 -2
- package/chunks/{chunk-KHOVYUHX.js → chunk-FNQ6T3CV.js} +20 -3
- package/chunks/{chunk-SP5WRGVG.js → chunk-FQK6JAFG.js} +72 -23
- package/chunks/{chunk-NWZY2SPY.js → chunk-FSITMZJH.js} +8 -8
- package/chunks/{chunk-6RLROE6G.js → chunk-GLWP3FDB.js} +80 -15
- package/chunks/{chunk-KPBVP6SL.js → chunk-GSN55ZRI.js} +5 -5
- package/chunks/{chunk-MLYGPZGU.js → chunk-H4SBPHSA.js} +3 -3
- package/chunks/chunk-H5FFA6TH.js +902 -0
- package/chunks/{chunk-TDKQP3M6.js → chunk-HIJQF5B5.js} +1 -1
- package/chunks/{chunk-5G3ZVADU.js → chunk-IJTOWOD7.js} +17 -6
- package/chunks/chunk-IKCX4CCL.js +469 -0
- package/chunks/{chunk-LPEONXNV.js → chunk-IKYJHJNF.js} +3 -3
- package/chunks/{chunk-DTZY2SH2.js → chunk-IO3IX5Q4.js} +1 -1
- package/chunks/{chunk-RS7MT2QG.js → chunk-IPUUTYMV.js} +2 -4
- package/chunks/{chunk-XU457J4V.js → chunk-IRH27ZC2.js} +2 -2
- package/chunks/{chunk-46DK772E.js → chunk-J24WCGIN.js} +4 -4
- package/chunks/{chunk-4LVZNIDO.js → chunk-J56UI34H.js} +4 -13
- package/chunks/{chunk-TJTKSVIV.js → chunk-JLU636DO.js} +5 -1
- package/chunks/{chunk-RKWX4CMO.js → chunk-JVPM2ULZ.js} +6 -6
- package/chunks/{chunk-ENPCQK44.js → chunk-JXJFVC6E.js} +37 -18
- package/chunks/{chunk-NABLFI57.js → chunk-JZA3JUDJ.js} +1 -1
- package/chunks/{chunk-CGLQAVZE.js → chunk-K36B6G2O.js} +5 -5
- package/chunks/{chunk-GPSKDNEE.js → chunk-K4XWPEWB.js} +4 -4
- package/chunks/{chunk-QOZOIPSF.js → chunk-KIM5GUMA.js} +650 -113
- package/chunks/{chunk-JZSM2IZ3.js → chunk-KMQ33DO4.js} +7 -5
- package/chunks/{chunk-E2UVIFI2.js → chunk-KRXPRVGL.js} +0 -1
- package/chunks/{chunk-WHGVTP7Q.js → chunk-L26JL52R.js} +3 -3
- package/chunks/{chunk-7Z6JQEL6.js → chunk-L5UHQJTJ.js} +1 -1
- package/chunks/{chunk-O2XSCRCS.js → chunk-LB6DUZ26.js} +259 -67
- package/chunks/chunk-LEH5C7FV.js +232 -0
- package/chunks/{chunk-RWV32G2M.js → chunk-LH2BYDQ5.js} +6 -4
- package/chunks/{chunk-QKTHJXCS.js → chunk-LK7CHLVP.js} +79 -2
- package/chunks/{chunk-VRRF3GW5.js → chunk-LKEJ26GS.js} +11 -11
- package/chunks/{chunk-SQFXI7VK.js → chunk-LQIW3YFY.js} +227 -41
- package/chunks/chunk-LS77BEZP.js +405 -0
- package/chunks/{chunk-BSHD62QJ.js → chunk-M4FMGVY4.js} +3 -3
- package/chunks/{chunk-57FIIFJN.js → chunk-M5JM7OSF.js} +1 -1
- package/chunks/{chunk-7362QS5B.js → chunk-MB4MZHMJ.js} +80 -37
- package/chunks/{chunk-4K56OJFJ.js → chunk-MUP3T3AD.js} +1 -1
- package/chunks/{chunk-3HFNGB2O.js → chunk-MVSUYZDT.js} +4 -4
- package/chunks/{chunk-T5IO6FZ4.js → chunk-MZAXJAUM.js} +1 -1
- package/chunks/{chunk-QKNXKTZX.js → chunk-NH6KE4JX.js} +3 -3
- package/chunks/chunk-NIBLUX3Y.js +934 -0
- package/chunks/{chunk-OQB4EXO4.js → chunk-NL7LTRLR.js} +1 -1
- package/chunks/{chunk-CS2FSS7W.js → chunk-OFDOK3VM.js} +5 -5
- package/chunks/{chunk-LIZRAKPB.js → chunk-OHNBB4XR.js} +1 -1
- package/chunks/{chunk-MDZTPSXO.js → chunk-OKY7HXPG.js} +2 -2
- package/chunks/{chunk-NHDKSOEY.js → chunk-P3QQPMQA.js} +5 -5
- package/chunks/{chunk-7THPNISK.js → chunk-PC6JANNU.js} +5 -5
- package/chunks/{chunk-OTQ6PSZC.js → chunk-PHOF65IG.js} +3498 -1030
- package/chunks/{chunk-OQ5SYCPE.js → chunk-PJIZUQVC.js} +2 -2
- package/chunks/{chunk-5DTTYNB7.js → chunk-PQNHRFJC.js} +16 -3
- package/chunks/{chunk-YM3SZTH4.js → chunk-PR75REBZ.js} +18 -1
- package/chunks/{chunk-RECUEJ7B.js → chunk-PSOO6YXD.js} +18 -15
- package/chunks/{chunk-X6N25LXS.js → chunk-PWTZEM3C.js} +2 -2
- package/chunks/{chunk-5NJTNQUW.js → chunk-PWVFN2LF.js} +1 -1
- package/chunks/{chunk-7AUH6A4T.js → chunk-Q4M4MDQ4.js} +2 -2
- package/chunks/{chunk-EZPB6S2I.js → chunk-QAF7NMK7.js} +1 -1
- package/chunks/{chunk-5GI55PF5.js → chunk-R5AFZNQW.js} +5 -5
- package/chunks/{chunk-T5B5NQZX.js → chunk-RF3EXIHJ.js} +47 -60
- package/chunks/{chunk-4K7VDKAD.js → chunk-RHLZR4E5.js} +1 -1
- package/chunks/{chunk-TJDW42MV.js → chunk-RIBKPMRP.js} +220 -141
- package/chunks/{chunk-RVLZCXEE.js → chunk-RWTEFFPU.js} +82 -3
- package/chunks/{chunk-L5QZGCRH.js → chunk-RZIX2G32.js} +1 -1
- package/chunks/{chunk-LLKWRXSS.js → chunk-SQCQ4KO2.js} +350 -418
- package/chunks/{chunk-THJNPLI4.js → chunk-TARRHLLG.js} +1 -0
- package/chunks/{chunk-XCXYRDHB.js → chunk-TEHGS6UP.js} +47 -18
- package/chunks/{chunk-PQIVAWXN.js → chunk-TGILQ3YH.js} +8 -8
- package/chunks/{chunk-Q2YKNMLS.js → chunk-TOFQCPDC.js} +43 -10
- package/chunks/{chunk-L3KUB6XM.js → chunk-TPRQ7RZH.js} +586 -242
- package/chunks/{chunk-T4TZQJ7W.js → chunk-TWPJO254.js} +5 -16
- package/chunks/{chunk-HIP6TVWA.js → chunk-U7M2DMGW.js} +3 -3
- package/chunks/{chunk-ACW3VNUE.js → chunk-UDX5OBWR.js} +41 -9
- package/chunks/{chunk-LW2FUYBN.js → chunk-USTWD7QV.js} +6 -4
- package/chunks/{chunk-NPQDJGKU.js → chunk-UUUTRMI2.js} +1 -1
- package/chunks/chunk-UW5EOVUN.js +249 -0
- package/chunks/{chunk-6IL7KRLE.js → chunk-VAK25FTU.js} +1 -1
- package/chunks/{chunk-O4BHWVUD.js → chunk-VIA5XA4U.js} +5 -2
- package/chunks/{chunk-EBXZ2YGV.js → chunk-VRYUBFMC.js} +1 -1
- package/chunks/{chunk-TWVE5ZS5.js → chunk-VULLI6WQ.js} +172 -6
- package/chunks/{chunk-LNDD3IML.js → chunk-WCXCRJYB.js} +1 -1
- package/chunks/{chunk-2LI23QA6.js → chunk-X5XDDSSH.js} +1 -1
- package/chunks/{chunk-Q35QUZDQ.js → chunk-Y34KJKDC.js} +1 -1
- package/chunks/{chunk-7NR2AIK6.js → chunk-YBL3QUDD.js} +2 -2
- package/chunks/{chunk-H4AR2JQF.js → chunk-YH6G52F2.js} +3 -3
- package/chunks/{chunk-MBOJHHPI.js → chunk-YPE6A4GC.js} +2 -2
- package/chunks/{chunk-3EK5ZOUQ.js → chunk-YX324OPW.js} +1 -1
- package/chunks/{chunk-4PTLZ3NX.js → chunk-Z2BC6UJ5.js} +3 -3
- package/chunks/{chunk-QLJUC7TG.js → chunk-ZD6UTE4A.js} +1 -1
- package/chunks/{chunk-LX3COOXF.js → chunk-ZFDTEDCF.js} +6 -6
- package/chunks/chunk-ZJHVAS7M.js +289 -0
- package/chunks/{chunk-4OWXOUYF.js → chunk-ZNAUOR2I.js} +15 -12
- package/chunks/{chunk-T2L47JJK.js → chunk-ZOIFNCKL.js} +4 -4
- package/chunks/{computer-use-2VIV73WK.js → computer-use-SOQ4E3VX.js} +43 -35
- package/chunks/{config-utils-FYTBZLCJ.js → config-utils-7V7GGIW6.js} +3 -3
- package/chunks/contextCommand-JLHYA34Z.js +80 -0
- package/chunks/{create-sub-session-AZ77LBL3.js → create-sub-session-IWW2IZ2T.js} +3 -3
- package/chunks/{create-sub-session-XDHHC2P4.js → create-sub-session-QRJLW5BV.js} +43 -35
- package/chunks/{cron-create-KTWJM7QT.js → cron-create-YIID5XAW.js} +6 -6
- package/chunks/{cron-delete-2P3I5ULL.js → cron-delete-ZVHYCEP2.js} +5 -5
- package/chunks/{cron-list-PXDPGEDQ.js → cron-list-XEGS463Q.js} +5 -5
- package/chunks/{daemon-RAPSDJH7.js → daemon-YO6433NF.js} +350 -53
- package/chunks/daemon-status-provider-2233Q37D.js +89 -0
- package/chunks/{de-4IBXM7CN.js → de-HGRCYDEJ.js} +1 -0
- package/chunks/{dist-UIFWIFRO.js → dist-46NQKLTW.js} +2 -2
- package/chunks/{dist-XRYV6TJP.js → dist-AIKFMUKK.js} +50 -4
- package/chunks/{dist-XBJVSWS2.js → dist-BBLXMS3N.js} +14 -2
- package/chunks/{dist-OMW6WDEO.js → dist-F6IBUDR4.js} +40 -9
- package/chunks/{dist-PJLG2XYX.js → dist-WEAHOXDM.js} +1 -1
- package/chunks/{dist-OAV7LJGJ.js → dist-YFNEUWSE.js} +26 -2
- package/chunks/earlyInputCapture-A7NDU3PF.js +82 -0
- package/chunks/{edit-CS6SFEXC.js → edit-OBDSQURM.js} +43 -35
- package/chunks/{en-USMCCJAJ.js → en-MTWBNGDO.js} +15 -0
- package/chunks/{enter-worktree-LMAL75DY.js → enter-worktree-U6MRPQ2P.js} +43 -35
- package/chunks/{enterPlanMode-WVJB4DSS.js → enterPlanMode-BC5QUZZ2.js} +43 -35
- package/chunks/{environment-6YHC4JAJ.js → environment-W5UFC2CH.js} +46 -38
- package/chunks/errors-M7CLORXH.js +88 -0
- package/chunks/{exit-worktree-KPFD742L.js → exit-worktree-DGNYMECB.js} +43 -35
- package/chunks/{exitPlanMode-UEJS6CDY.js → exitPlanMode-GXTBWQAR.js} +43 -35
- package/chunks/{fast-path-G2N4NRCA.js → fast-path-JJZFJANL.js} +6 -6
- package/chunks/{fast-path-settings-DAOVFADC.js → fast-path-settings-WQJU2LAT.js} +2 -2
- package/chunks/{fr-WVHEBDDB.js → fr-45RLL55O.js} +1 -0
- package/chunks/{gemini-2MDVIOVT.js → gemini-QS36EBZV.js} +132 -102
- package/chunks/{geminiContentGenerator-ZXTDBMFR.js → geminiContentGenerator-AG4KB6CV.js} +14 -8
- package/chunks/{getMachineId-bsd-QFVLPUPT.js → getMachineId-bsd-V7W3GODC.js} +1 -1
- package/chunks/{getMachineId-darwin-DGMQQE2E.js → getMachineId-darwin-TDO75DQP.js} +1 -1
- package/chunks/{getMachineId-linux-R4Z6CSWC.js → getMachineId-linux-TF43WQT2.js} +1 -1
- package/chunks/{getMachineId-unsupported-Z3SBVBUV.js → getMachineId-unsupported-ZGUO3TXT.js} +1 -1
- package/chunks/{getMachineId-win-SCK5UFDT.js → getMachineId-win-ECFYZZFQ.js} +1 -1
- package/chunks/{glob-562XFLIZ.js → glob-V7R3PSK3.js} +43 -35
- package/chunks/{grep-MGEFBDQK.js → grep-QYPSK7OP.js} +43 -35
- package/chunks/handleAutoUpdate-6DBEZYPV.js +81 -0
- package/chunks/{i18n-R6HJENXA.js → i18n-VUJJZIMU.js} +44 -36
- package/chunks/image-gen-Z3VPGKRC.js +240 -0
- package/chunks/initializer-UWAK5U5O.js +86 -0
- package/chunks/installationInfo-6O2YAA52.js +80 -0
- package/chunks/{ja-KY4ROZTE.js → ja-B7DF7DFG.js} +1 -0
- package/chunks/{keychain-token-storage-6ACJDYIB.js → keychain-token-storage-MDTG3WRM.js} +3 -3
- package/chunks/{kittyProtocolDetector-HCNNKJTI.js → kittyProtocolDetector-MBRTDRBK.js} +5 -3
- package/chunks/list-GB4ESM3T.js +89 -0
- package/chunks/list-agents-5KJJHR6I.js +80 -0
- package/chunks/loadedSettingsAdapter-OT6JVQ7U.js +83 -0
- package/chunks/loggingContentGenerator-HS3S5H3Q.js +1077 -0
- package/chunks/{loop-wakeup-RNMRVA66.js → loop-wakeup-FXKNNYSY.js} +7 -7
- package/chunks/{ls-J2ZI5XYK.js → ls-NTK6VOQJ.js} +5 -5
- package/chunks/{lsp-UMS3NUB5.js → lsp-2JI24STP.js} +3 -3
- package/chunks/{managed-npm-update-4KNYSOYC.js → managed-npm-update-JYEMMXA3.js} +94 -38
- package/chunks/mcp-6DBDJPFU.js +83 -0
- package/chunks/{monitor-DMHKE4SW.js → monitor-R3ODH5U6.js} +45 -36
- package/chunks/node-UUDY34IG.js +305 -0
- package/chunks/nonInteractiveCli-MOYCYBBU.js +141 -0
- package/chunks/{notebook-edit-35SJGEOR.js → notebook-edit-BNOK452R.js} +43 -35
- package/chunks/{openaiContentGenerator-5LPAFXPF.js → openaiContentGenerator-WMCU3O2H.js} +27 -17
- package/chunks/pidfile-TFRZZZIO.js +86 -0
- package/chunks/{processUtils-GM2I55KF.js → processUtils-RT7UNCC2.js} +2 -2
- package/chunks/{pt-OK455PLH.js → pt-22Q3FP73.js} +1 -0
- package/chunks/{qwenContentGenerator-HKOYNP7H.js → qwenContentGenerator-HHCRK4SX.js} +56 -42
- package/chunks/{qwenOAuth2-NUUYC3V5.js → qwenOAuth2-OWLB5AKH.js} +14 -27
- package/chunks/read-file-APMO3PSX.js +31 -0
- package/chunks/{read-mcp-resource-F6HYMDUY.js → read-mcp-resource-4DKQWGHD.js} +3 -3
- package/chunks/{record-artifact-7GCFLDD7.js → record-artifact-RQKFYO5B.js} +3 -3
- package/chunks/resumeHistoryUtils-6KRYEAWZ.js +91 -0
- package/chunks/ripGrep-BEJDEDXW.js +73 -0
- package/chunks/{ru-7SPDGMGD.js → ru-FZCNZHDC.js} +1 -0
- package/chunks/{run-qwen-serve-5VH3F4NW.js → run-qwen-serve-FU6HEM4J.js} +271 -57
- package/chunks/{runtime-OH77YH7W.js → runtime-XXRRTNP6.js} +55 -45
- package/chunks/{scheduler-WJQSLCSV.js → scheduler-G2ZS2Z7E.js} +43 -35
- package/chunks/{sdk-exporters-grpc-ETLH47EP.js → sdk-exporters-grpc-AK3LGHNO.js} +3 -3
- package/chunks/{sdk-exporters-http-T3POX73F.js → sdk-exporters-http-FYBSUCPD.js} +6 -6
- package/chunks/{sdk-impl-NSLPDH6I.js → sdk-impl-GMVPB7NB.js} +6 -6
- package/chunks/{send-message-PYIJ2PZL.js → send-message-Q6OOR6BR.js} +46 -9
- package/chunks/serve-7BSTXJ4T.js +89 -0
- package/chunks/{server-E4N4AI6Z.js → server-4UMH7OIZ.js} +2362 -411
- package/chunks/{session-5YUWIOQE.js → session-K3O3Q2SV.js} +105 -87
- package/chunks/{settings-YY7ZSFO7.js → settings-CR2EWTBA.js} +53 -45
- package/chunks/shell-HH3PF3A2.js +83 -0
- package/chunks/{skill-PAIDX3EU.js → skill-I3SDA4MB.js} +17 -16
- package/chunks/spawnChannel-RWNDBXGA.js +82 -0
- package/chunks/{src-IZXLJI5M.js → src-GE4TTTML.js} +302 -184
- package/chunks/{standalone-update-X675JVBL.js → standalone-update-Q6WFRZZQ.js} +45 -37
- package/chunks/{startInteractiveUI-ND2IVBU3.js → startInteractiveUI-SLZGHRPH.js} +747 -310
- package/chunks/{syntheticOutput-H7RTI5KL.js → syntheticOutput-I3757IWH.js} +4 -4
- package/chunks/{task-create-7474AJJD.js → task-create-N7WQSGYA.js} +10 -10
- package/chunks/{task-list-633HGOIB.js → task-list-FOPULZEP.js} +7 -7
- package/chunks/{task-stop-MNUGHPIA.js → task-stop-H6RHXFVQ.js} +4 -4
- package/chunks/{task-update-66GQB5LI.js → task-update-M57TFZJT.js} +10 -10
- package/chunks/{team-create-2DEYNMMN.js → team-create-YJALH5D2.js} +46 -38
- package/chunks/{team-delete-BB3CG3QF.js → team-delete-QE2UXJL7.js} +7 -7
- package/chunks/{team-plan-approval-65AVAOCT.js → team-plan-approval-34QFYKGN.js} +43 -35
- package/chunks/theme-manager-SWRILQHI.js +77 -0
- package/chunks/{todoWrite-KRAUN54W.js → todoWrite-VQ7FKOHL.js} +5 -5
- package/chunks/{tool-search-ZQP3SMTV.js → tool-search-NF7GB6LE.js} +16 -16
- package/chunks/total-session-admission-DLHHHLD3.js +84 -0
- package/chunks/{tree-sitter-FS4VPMZA.js → tree-sitter-4D7QS7F6.js} +1 -1
- package/chunks/{tree-sitter-bash-6B46JJCV.js → tree-sitter-bash-VEJGF5XF.js} +1 -1
- package/chunks/{trustedFolders-LURI52LP.js → trustedFolders-KHXHY6PY.js} +44 -36
- package/chunks/{update-relaunch-BPWFIDLM.js → update-relaunch-WBUZJC5O.js} +5 -5
- package/chunks/updateCheck-RKL6M5XN.js +92 -0
- package/chunks/useAutoAcceptIndicator-CFQ5BUJL.js +93 -0
- package/chunks/{validateNonInterActiveAuth-HWD6Y22I.js → validateNonInterActiveAuth-3R223G3R.js} +89 -80
- package/chunks/{version-OD4JAFG7.js → version-HS7YSFHV.js} +1 -1
- package/chunks/{web-fetch-RFBKNU24.js → web-fetch-NKCSG7ZE.js} +18 -16
- package/chunks/{web-search-AKTVS5YZ.js → web-search-S62WAP4S.js} +13 -27
- package/chunks/{workflow-VZVCOSZN.js → workflow-QAGU5RU4.js} +44 -36
- package/chunks/workspace-providers-status-QSVZUETE.js +86 -0
- package/chunks/{workspace-registration-store-Q5SFJSX4.js → workspace-registration-store-24JMHDGF.js} +2 -2
- package/chunks/workspace-registry-UT4RBNBM.js +88 -0
- package/chunks/workspace-service-JFWRUS4V.js +98 -0
- package/chunks/workspace-skills-status-ZBBKJOI2.js +85 -0
- package/chunks/write-file-VHIXW5M7.js +73 -0
- package/chunks/{zh-WY5DWYZD.js → zh-LUIGBD55.js} +15 -0
- package/chunks/{zh-TW-BM47YBFH.js → zh-TW-F5KG2IYD.js} +15 -0
- package/cli-entry.js +10 -1
- package/cli.js +13 -13
- package/locales/ca.js +2 -0
- package/locales/de.js +1 -0
- package/locales/en.js +25 -0
- package/locales/fr.js +1 -0
- package/locales/ja.js +1 -0
- package/locales/pt.js +1 -0
- package/locales/ru.js +1 -0
- package/locales/zh-TW.js +23 -0
- package/locales/zh.js +23 -0
- package/package.json +3 -3
- package/web-shell/assets/{arc-BWFm0SI0.js → arc-DcbWnB9T.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-CZ_yL-DQ.js → architectureDiagram-3BPJPVTR-kMMF5sud.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-B9F9mJvG.js → blockDiagram-GPEHLZMM-Htl9vTJS.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BUdwJW5f.js → c4Diagram-AAUBKEIU-BnZnm0mQ.js} +1 -1
- package/web-shell/assets/channel-Cq7YKtfC.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-w4cF-qlF.js → chunk-2J33WTMH-DziB7kDG.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BXwURxHJ.js → chunk-4BX2VUAB-CmkD8daw.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-Gem3LalC.js → chunk-55IACEB6-CHAd9A_U.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-A3ddVojI.js → chunk-727SXJPM-Dqaam3fE.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-CjHZ5L_R.js → chunk-AQP2D5EJ-D_-saBYM.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CKgdgcpv.js → chunk-FMBD7UC4-B9r_veWD.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-Cn2Dykjb.js → chunk-ND2GUHAM-B3EaCSpL.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN--0SyraC5.js → chunk-QZHKN3VN-CYq8x9mn.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CQ9aC1Tg.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CQ9aC1Tg.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-CphhAity.js → cose-bilkent-S5V4N54A-D0ng4uiB.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-DU--jiKp.js → dagre-BM42HDAG-DCZollQv.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-BzvuZw1Y.js → diagram-2AECGRRQ-Dfk2pWS0.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-D84-49Y0.js → diagram-5GNKFQAL-kX38ltWR.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-DQTq-3_3.js → diagram-KO2AKTUF-CJz2vsXh.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-8FTrshzN.js → diagram-LMA3HP47-BvMLZm_7.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-BCjpDBCm.js → diagram-OG6HWLK6-l7kfStkO.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-BtRObkmg.js → erDiagram-TEJ5UH35-BSVa8GGT.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-DTrW6oxy.js → flowDiagram-I6XJVG4X-CoawKIXH.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BgPNSW6j.js → ganttDiagram-6RSMTGT7-DFUDH0zF.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BTclNgGV.js → gitGraphDiagram-PVQCEYII-Y2pvpT4e.js} +1 -1
- package/web-shell/assets/{index-CxA7AqY6.js → index-D0GX0zZf.js} +1 -1
- package/web-shell/assets/index-D9haPt0X.css +5 -0
- package/web-shell/assets/index-ckX9Pq5k.js +1230 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DCE4AJt2.js → infoDiagram-5YYISTIA-CU8_zLiX.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-C8iE6q4Y.js → ishikawaDiagram-YF4QCWOH-AVQiV0DU.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-C_dxdyEc.js → journeyDiagram-JHISSGLW-DQ0VSKa3.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-Dw3n1u3w.js → kanban-definition-UN3LZRKU-BqnWqsE_.js} +1 -1
- package/web-shell/assets/{linear-C2BF2zJ9.js → linear-BkoihsaA.js} +1 -1
- package/web-shell/assets/{mermaid.core-CGTQU3MA.js → mermaid.core-5RJs-31j.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BVFZm9ZC.js → mindmap-definition-RKZ34NQL-D33Bxnpd.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-Cc-TNN3n.js → pieDiagram-4H26LBE5-BuEAw3BH.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CgW3Rzsi.js → quadrantDiagram-W4KKPZXB-Kox_usEq.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-BAaj0Y3B.js → requirementDiagram-4Y6WPE33-CNjeUif0.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-XJWmekxS.js → sankeyDiagram-5OEKKPKP-BCd2OL_U.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CtRc_0wf.js → sequenceDiagram-3UESZ5HK-CF2ZTsz0.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-WCnvMGy5.js → stateDiagram-AJRCARHV-qenSzHtm.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-B7W4zlCr.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-C9cRx49L.js → timeline-definition-PNZ67QCA-B5DyWdgs.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BvXOCEt-.js → vennDiagram-CIIHVFJN-DqP4I_o_.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-ByafGtzu.js → wardley-L42UT6IY-CJe2e4mg.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-CozAnw8x.js → wardleyDiagram-YWT4CUSO-BMDSw-Rr.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-Camu9Qvq.js → xychartDiagram-2RQKCTM6-BTVZYkxD.js} +1 -1
- package/web-shell/index.html +17 -13
- package/chunks/MaxSizedBox-3XQIBACV.js +0 -78
- package/chunks/agent-QXD5NSKA.js +0 -73
- package/chunks/agent-headless-4VXR2TBK.js +0 -67
- package/chunks/bridge-GIBRSPE6.js +0 -81
- package/chunks/chunk-CBOQ3HY7.js +0 -2019
- package/chunks/chunk-MA6GYKK7.js +0 -6928
- package/chunks/contextCommand-XQU7KLIH.js +0 -72
- package/chunks/daemon-status-provider-KQVNB4VA.js +0 -80
- package/chunks/earlyInputCapture-WP5SA3KH.js +0 -74
- package/chunks/errors-JEYPXX4S.js +0 -80
- package/chunks/handleAutoUpdate-2VJPAW43.js +0 -73
- package/chunks/initializer-UOX67ZFQ.js +0 -78
- package/chunks/installationInfo-NQNY34X3.js +0 -72
- package/chunks/list-2Z7KS7ZF.js +0 -81
- package/chunks/loadedSettingsAdapter-LIYY3LE4.js +0 -75
- package/chunks/mcp-AJ4QW3JA.js +0 -75
- package/chunks/nonInteractiveCli-PUSO5QF6.js +0 -134
- package/chunks/pidfile-EH2JW2PB.js +0 -78
- package/chunks/read-file-JZ5VXILQ.js +0 -31
- package/chunks/resumeHistoryUtils-Z3HG4WKM.js +0 -84
- package/chunks/ripGrep-JNLJCT2B.js +0 -65
- package/chunks/serve-NN5FXWR6.js +0 -81
- package/chunks/shell-FXT3NVC6.js +0 -75
- package/chunks/spawnChannel-XAWLXNOD.js +0 -74
- package/chunks/theme-manager-2WZHPK2M.js +0 -69
- package/chunks/total-session-admission-HULB2TEQ.js +0 -75
- package/chunks/updateCheck-D4ESCHBJ.js +0 -88
- package/chunks/useAutoAcceptIndicator-CBNLOF2P.js +0 -86
- package/chunks/workspace-providers-status-TJTVHORI.js +0 -78
- package/chunks/workspace-registry-H6VM5WXK.js +0 -79
- package/chunks/workspace-service-ZNKD3I2J.js +0 -90
- package/chunks/workspace-skills-status-OOBIXADG.js +0 -77
- package/chunks/write-file-CAKK5IAO.js +0 -65
- package/web-shell/assets/channel-DiLlxxIf.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CkylTdM4.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CkylTdM4.js +0 -1
- package/web-shell/assets/index-CGtQqOIa.css +0 -5
- package/web-shell/assets/index-TtM0hVjU.js +0 -1207
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-D1gzH2Ue.js +0 -1
|
@@ -2,13 +2,21 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
HistoryReplayer
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-EBJQ6AXW.js";
|
|
6
|
+
import {
|
|
7
|
+
ChannelDeliveryError,
|
|
8
|
+
MAX_CHANNEL_DELIVERY_TEXT_LENGTH
|
|
9
|
+
} from "./chunk-LK7CHLVP.js";
|
|
6
10
|
import {
|
|
7
11
|
redactLogCredentials
|
|
8
12
|
} from "./chunk-M5GB774H.js";
|
|
9
13
|
import {
|
|
10
14
|
getResponseText
|
|
11
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-PHOF65IG.js";
|
|
16
|
+
import {
|
|
17
|
+
MAX_CHANNEL_DELIVERY_NAME_LENGTH,
|
|
18
|
+
MAX_CHANNEL_DELIVERY_TARGET_ID_LENGTH
|
|
19
|
+
} from "./chunk-FNQ6T3CV.js";
|
|
12
20
|
import {
|
|
13
21
|
init_esbuild_shims
|
|
14
22
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -267,6 +275,89 @@ function formatWorkspaceMemoryDreamSummary(touchedTopicCount) {
|
|
|
267
275
|
}
|
|
268
276
|
__name(formatWorkspaceMemoryDreamSummary, "formatWorkspaceMemoryDreamSummary");
|
|
269
277
|
|
|
278
|
+
// packages/cli/src/config/mcp-server-secrets.ts
|
|
279
|
+
init_esbuild_shims();
|
|
280
|
+
var REDACTED_MCP_SECRET = "__redacted__";
|
|
281
|
+
function recordOf(value) {
|
|
282
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
283
|
+
}
|
|
284
|
+
__name(recordOf, "recordOf");
|
|
285
|
+
function redactRecord(record) {
|
|
286
|
+
return record ? Object.fromEntries(
|
|
287
|
+
Object.keys(record).map((key) => [key, REDACTED_MCP_SECRET])
|
|
288
|
+
) : record;
|
|
289
|
+
}
|
|
290
|
+
__name(redactRecord, "redactRecord");
|
|
291
|
+
function restoreRecord(incoming, prior) {
|
|
292
|
+
if (!incoming) return incoming;
|
|
293
|
+
const priorRecord = recordOf(prior);
|
|
294
|
+
const result = {};
|
|
295
|
+
for (const [key, value] of Object.entries(incoming)) {
|
|
296
|
+
if (value !== REDACTED_MCP_SECRET) {
|
|
297
|
+
result[key] = value;
|
|
298
|
+
} else if (typeof priorRecord[key] === "string") {
|
|
299
|
+
result[key] = priorRecord[key];
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
return result;
|
|
303
|
+
}
|
|
304
|
+
__name(restoreRecord, "restoreRecord");
|
|
305
|
+
function redactMcpServerSecrets(server) {
|
|
306
|
+
return {
|
|
307
|
+
...server,
|
|
308
|
+
env: redactRecord(server.env),
|
|
309
|
+
headers: redactRecord(server.headers),
|
|
310
|
+
...server.oauth?.clientSecret ? {
|
|
311
|
+
oauth: {
|
|
312
|
+
...server.oauth,
|
|
313
|
+
clientSecret: REDACTED_MCP_SECRET
|
|
314
|
+
}
|
|
315
|
+
} : {}
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
__name(redactMcpServerSecrets, "redactMcpServerSecrets");
|
|
319
|
+
function restoreRedactedMcpSecrets(server, existing) {
|
|
320
|
+
const existingOauth = recordOf(existing["oauth"]);
|
|
321
|
+
const incomingSecret = server.oauth?.clientSecret;
|
|
322
|
+
const restoredSecret = incomingSecret === REDACTED_MCP_SECRET ? existingOauth["clientSecret"] : incomingSecret;
|
|
323
|
+
return {
|
|
324
|
+
...server,
|
|
325
|
+
env: restoreRecord(server.env, existing["env"]),
|
|
326
|
+
headers: restoreRecord(server.headers, existing["headers"]),
|
|
327
|
+
...server.oauth ? {
|
|
328
|
+
oauth: {
|
|
329
|
+
...server.oauth,
|
|
330
|
+
...typeof restoredSecret === "string" ? { clientSecret: restoredSecret } : { clientSecret: void 0 }
|
|
331
|
+
}
|
|
332
|
+
} : {}
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
__name(restoreRedactedMcpSecrets, "restoreRedactedMcpSecrets");
|
|
336
|
+
function redactMcpServersSetting(value) {
|
|
337
|
+
const servers = recordOf(value);
|
|
338
|
+
return Object.fromEntries(
|
|
339
|
+
Object.entries(servers).map(([name, server]) => {
|
|
340
|
+
const record = recordOf(server);
|
|
341
|
+
return [name, redactMcpServerSecrets(record)];
|
|
342
|
+
})
|
|
343
|
+
);
|
|
344
|
+
}
|
|
345
|
+
__name(redactMcpServersSetting, "redactMcpServersSetting");
|
|
346
|
+
function restoreRedactedMcpServersSetting(value, existing) {
|
|
347
|
+
const servers = recordOf(value);
|
|
348
|
+
const existingServers = recordOf(existing);
|
|
349
|
+
return Object.fromEntries(
|
|
350
|
+
Object.entries(servers).map(([name, server]) => {
|
|
351
|
+
const record = recordOf(server);
|
|
352
|
+
return [
|
|
353
|
+
name,
|
|
354
|
+
restoreRedactedMcpSecrets(record, recordOf(existingServers[name]))
|
|
355
|
+
];
|
|
356
|
+
})
|
|
357
|
+
);
|
|
358
|
+
}
|
|
359
|
+
__name(restoreRedactedMcpServersSetting, "restoreRedactedMcpServersSetting");
|
|
360
|
+
|
|
270
361
|
// packages/cli/src/serve/validate-server-name.ts
|
|
271
362
|
init_esbuild_shims();
|
|
272
363
|
var VALID_SERVER_NAME = /^[A-Za-z0-9_-]+$/;
|
|
@@ -280,6 +371,64 @@ function isValidServerName(name) {
|
|
|
280
371
|
}
|
|
281
372
|
__name(isValidServerName, "isValidServerName");
|
|
282
373
|
|
|
374
|
+
// packages/cli/src/acp-integration/generation.ts
|
|
375
|
+
init_esbuild_shims();
|
|
376
|
+
var GENERATION_MAX_PROMPT_BYTES = 32 * 1024;
|
|
377
|
+
var GENERATION_TIMEOUT_MS = 6e4;
|
|
378
|
+
async function executeGeneration(config, requestId, prompt, signal, emit) {
|
|
379
|
+
const fastModel = config.getFastModel();
|
|
380
|
+
const mainModel = config.getModel();
|
|
381
|
+
const client = config.getBaseLlmClient();
|
|
382
|
+
let modelSource = fastModel ? "fast" : "main";
|
|
383
|
+
let resolved;
|
|
384
|
+
if (fastModel) {
|
|
385
|
+
try {
|
|
386
|
+
resolved = await client.resolveForModel(fastModel, { failClosed: true });
|
|
387
|
+
} catch {
|
|
388
|
+
modelSource = "main";
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
resolved ??= await client.resolveForModel(mainModel, { failClosed: true });
|
|
392
|
+
const { contentGenerator, model } = resolved;
|
|
393
|
+
await emit({ type: "started", model, modelSource });
|
|
394
|
+
const stream = await contentGenerator.generateContentStream(
|
|
395
|
+
{
|
|
396
|
+
model,
|
|
397
|
+
contents: [{ role: "user", parts: [{ text: prompt }] }],
|
|
398
|
+
config: {
|
|
399
|
+
abortSignal: signal,
|
|
400
|
+
tools: [],
|
|
401
|
+
thinkingConfig: { thinkingBudget: 0, includeThoughts: false },
|
|
402
|
+
temperature: 0.2
|
|
403
|
+
}
|
|
404
|
+
},
|
|
405
|
+
`generation:${requestId}`
|
|
406
|
+
);
|
|
407
|
+
let seq = 0;
|
|
408
|
+
let thinkingEmitted = false;
|
|
409
|
+
let usage;
|
|
410
|
+
for await (const chunk of stream) {
|
|
411
|
+
if (!thinkingEmitted && chunk.candidates?.some(
|
|
412
|
+
(candidate) => candidate.content?.parts?.some((part) => part.thought === true)
|
|
413
|
+
)) {
|
|
414
|
+
thinkingEmitted = true;
|
|
415
|
+
await emit({ type: "thinking" });
|
|
416
|
+
}
|
|
417
|
+
const text = getResponseText(chunk) ?? "";
|
|
418
|
+
if (text) {
|
|
419
|
+
await emit({ type: "delta", seq: seq++, text });
|
|
420
|
+
}
|
|
421
|
+
if (chunk.usageMetadata) usage = chunk.usageMetadata;
|
|
422
|
+
}
|
|
423
|
+
return {
|
|
424
|
+
model,
|
|
425
|
+
modelSource,
|
|
426
|
+
...usage?.promptTokenCount !== void 0 ? { inputTokens: usage.promptTokenCount } : {},
|
|
427
|
+
...usage?.candidatesTokenCount !== void 0 ? { outputTokens: usage.candidatesTokenCount } : {}
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
__name(executeGeneration, "executeGeneration");
|
|
431
|
+
|
|
283
432
|
// packages/cli/src/acp-integration/session/history-replay-page.ts
|
|
284
433
|
init_esbuild_shims();
|
|
285
434
|
function createReplayCumulativeUsage() {
|
|
@@ -459,146 +608,73 @@ async function replayTranscriptRecordPage({
|
|
|
459
608
|
}
|
|
460
609
|
__name(replayTranscriptRecordPage, "replayTranscriptRecordPage");
|
|
461
610
|
|
|
462
|
-
// packages/cli/src/
|
|
611
|
+
// packages/cli/src/serve/channel-delivery.ts
|
|
463
612
|
init_esbuild_shims();
|
|
464
|
-
var
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
} catch {
|
|
476
|
-
modelSource = "main";
|
|
477
|
-
}
|
|
613
|
+
var TRUNCATED_TEXT_SUFFIX = "\n\n[Channel delivery truncated because the result exceeded the delivery size limit.]";
|
|
614
|
+
function isBoundedString(value, maxLength) {
|
|
615
|
+
return typeof value === "string" && value.trim().length > 0 && value.length <= maxLength;
|
|
616
|
+
}
|
|
617
|
+
__name(isBoundedString, "isBoundedString");
|
|
618
|
+
function parseChannelDelivery(value) {
|
|
619
|
+
if (typeof value !== "object" || value === null) {
|
|
620
|
+
throw new ChannelDeliveryError(
|
|
621
|
+
"channel_delivery_invalid",
|
|
622
|
+
"Invalid channel delivery."
|
|
623
|
+
);
|
|
478
624
|
}
|
|
479
|
-
|
|
480
|
-
const
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
config: {
|
|
487
|
-
abortSignal: signal,
|
|
488
|
-
tools: [],
|
|
489
|
-
thinkingConfig: { thinkingBudget: 0, includeThoughts: false },
|
|
490
|
-
temperature: 0.2
|
|
491
|
-
}
|
|
492
|
-
},
|
|
493
|
-
`generation:${requestId}`
|
|
494
|
-
);
|
|
495
|
-
let seq = 0;
|
|
496
|
-
let thinkingEmitted = false;
|
|
497
|
-
let usage;
|
|
498
|
-
for await (const chunk of stream) {
|
|
499
|
-
if (!thinkingEmitted && chunk.candidates?.some(
|
|
500
|
-
(candidate) => candidate.content?.parts?.some((part) => part.thought === true)
|
|
501
|
-
)) {
|
|
502
|
-
thinkingEmitted = true;
|
|
503
|
-
await emit({ type: "thinking" });
|
|
504
|
-
}
|
|
505
|
-
const text = getResponseText(chunk) ?? "";
|
|
506
|
-
if (text) {
|
|
507
|
-
await emit({ type: "delta", seq: seq++, text });
|
|
508
|
-
}
|
|
509
|
-
if (chunk.usageMetadata) usage = chunk.usageMetadata;
|
|
625
|
+
const delivery = value;
|
|
626
|
+
const rawTarget = delivery["target"];
|
|
627
|
+
if (delivery["kind"] !== "channel" || typeof rawTarget !== "object" || rawTarget === null || !Object.keys(delivery).every((key) => key === "kind" || key === "target")) {
|
|
628
|
+
throw new ChannelDeliveryError(
|
|
629
|
+
"channel_delivery_invalid",
|
|
630
|
+
"Invalid channel delivery."
|
|
631
|
+
);
|
|
510
632
|
}
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
// packages/cli/src/config/mcp-server-secrets.ts
|
|
521
|
-
init_esbuild_shims();
|
|
522
|
-
var REDACTED_MCP_SECRET = "__redacted__";
|
|
523
|
-
function recordOf(value) {
|
|
524
|
-
return value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
525
|
-
}
|
|
526
|
-
__name(recordOf, "recordOf");
|
|
527
|
-
function redactRecord(record) {
|
|
528
|
-
return record ? Object.fromEntries(
|
|
529
|
-
Object.keys(record).map((key) => [key, REDACTED_MCP_SECRET])
|
|
530
|
-
) : record;
|
|
531
|
-
}
|
|
532
|
-
__name(redactRecord, "redactRecord");
|
|
533
|
-
function restoreRecord(incoming, prior) {
|
|
534
|
-
if (!incoming) return incoming;
|
|
535
|
-
const priorRecord = recordOf(prior);
|
|
536
|
-
const result = {};
|
|
537
|
-
for (const [key, value] of Object.entries(incoming)) {
|
|
538
|
-
if (value !== REDACTED_MCP_SECRET) {
|
|
539
|
-
result[key] = value;
|
|
540
|
-
} else if (typeof priorRecord[key] === "string") {
|
|
541
|
-
result[key] = priorRecord[key];
|
|
542
|
-
}
|
|
633
|
+
const target = rawTarget;
|
|
634
|
+
if (!isBoundedString(target["channelName"], MAX_CHANNEL_DELIVERY_NAME_LENGTH) || target["type"] !== "user" && target["type"] !== "chat" || !isBoundedString(target["id"], MAX_CHANNEL_DELIVERY_TARGET_ID_LENGTH) || !Object.keys(target).every(
|
|
635
|
+
(key) => key === "channelName" || key === "type" || key === "id"
|
|
636
|
+
)) {
|
|
637
|
+
throw new ChannelDeliveryError(
|
|
638
|
+
"channel_delivery_invalid",
|
|
639
|
+
"Invalid channel delivery."
|
|
640
|
+
);
|
|
543
641
|
}
|
|
544
|
-
return result;
|
|
545
|
-
}
|
|
546
|
-
__name(restoreRecord, "restoreRecord");
|
|
547
|
-
function redactMcpServerSecrets(server) {
|
|
548
642
|
return {
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
clientSecret: REDACTED_MCP_SECRET
|
|
556
|
-
}
|
|
557
|
-
} : {}
|
|
643
|
+
kind: "channel",
|
|
644
|
+
target: {
|
|
645
|
+
channelName: target["channelName"],
|
|
646
|
+
type: target["type"],
|
|
647
|
+
id: target["id"]
|
|
648
|
+
}
|
|
558
649
|
};
|
|
559
650
|
}
|
|
560
|
-
__name(
|
|
561
|
-
function
|
|
562
|
-
|
|
563
|
-
const
|
|
564
|
-
|
|
651
|
+
__name(parseChannelDelivery, "parseChannelDelivery");
|
|
652
|
+
function normalizeChannelDeliveryText(text) {
|
|
653
|
+
if (text.length <= MAX_CHANNEL_DELIVERY_TEXT_LENGTH) return text;
|
|
654
|
+
const prefixLimit = MAX_CHANNEL_DELIVERY_TEXT_LENGTH - TRUNCATED_TEXT_SUFFIX.length;
|
|
655
|
+
let prefix = text.slice(0, prefixLimit);
|
|
656
|
+
const lastCodeUnit = prefix.charCodeAt(prefix.length - 1);
|
|
657
|
+
if (lastCodeUnit >= 55296 && lastCodeUnit <= 56319) {
|
|
658
|
+
prefix = prefix.slice(0, -1);
|
|
659
|
+
}
|
|
660
|
+
return `${prefix}${TRUNCATED_TEXT_SUFFIX}`;
|
|
661
|
+
}
|
|
662
|
+
__name(normalizeChannelDeliveryText, "normalizeChannelDeliveryText");
|
|
663
|
+
function normalizeChannelDelivery(deliveryId, delivery, text) {
|
|
664
|
+
if (typeof text !== "string" || text.trim().length === 0) {
|
|
665
|
+
throw new ChannelDeliveryError(
|
|
666
|
+
"channel_delivery_invalid",
|
|
667
|
+
"Channel delivery text is empty."
|
|
668
|
+
);
|
|
669
|
+
}
|
|
565
670
|
return {
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
oauth: {
|
|
571
|
-
...server.oauth,
|
|
572
|
-
...typeof restoredSecret === "string" ? { clientSecret: restoredSecret } : { clientSecret: void 0 }
|
|
573
|
-
}
|
|
574
|
-
} : {}
|
|
671
|
+
deliveryId,
|
|
672
|
+
channelName: delivery.target.channelName,
|
|
673
|
+
target: { type: delivery.target.type, id: delivery.target.id },
|
|
674
|
+
text: normalizeChannelDeliveryText(text)
|
|
575
675
|
};
|
|
576
676
|
}
|
|
577
|
-
__name(
|
|
578
|
-
function redactMcpServersSetting(value) {
|
|
579
|
-
const servers = recordOf(value);
|
|
580
|
-
return Object.fromEntries(
|
|
581
|
-
Object.entries(servers).map(([name, server]) => {
|
|
582
|
-
const record = recordOf(server);
|
|
583
|
-
return [name, redactMcpServerSecrets(record)];
|
|
584
|
-
})
|
|
585
|
-
);
|
|
586
|
-
}
|
|
587
|
-
__name(redactMcpServersSetting, "redactMcpServersSetting");
|
|
588
|
-
function restoreRedactedMcpServersSetting(value, existing) {
|
|
589
|
-
const servers = recordOf(value);
|
|
590
|
-
const existingServers = recordOf(existing);
|
|
591
|
-
return Object.fromEntries(
|
|
592
|
-
Object.entries(servers).map(([name, server]) => {
|
|
593
|
-
const record = recordOf(server);
|
|
594
|
-
return [
|
|
595
|
-
name,
|
|
596
|
-
restoreRedactedMcpSecrets(record, recordOf(existingServers[name]))
|
|
597
|
-
];
|
|
598
|
-
})
|
|
599
|
-
);
|
|
600
|
-
}
|
|
601
|
-
__name(restoreRedactedMcpServersSetting, "restoreRedactedMcpServersSetting");
|
|
677
|
+
__name(normalizeChannelDelivery, "normalizeChannelDelivery");
|
|
602
678
|
|
|
603
679
|
export {
|
|
604
680
|
createWorkspaceMemoryExtractionErrorLogger,
|
|
@@ -609,19 +685,22 @@ export {
|
|
|
609
685
|
MAX_REMEMBER_CONTENT_BYTES,
|
|
610
686
|
formatWorkspaceMemoryForgetSummary,
|
|
611
687
|
formatWorkspaceMemoryDreamSummary,
|
|
612
|
-
isValidServerName,
|
|
613
|
-
createReplayCumulativeUsage,
|
|
614
|
-
copyCumulativeUsage,
|
|
615
|
-
collectHistoryReplayUpdates,
|
|
616
|
-
replayTranscriptRecordPage,
|
|
617
|
-
GENERATION_MAX_PROMPT_BYTES,
|
|
618
|
-
GENERATION_TIMEOUT_MS,
|
|
619
|
-
executeGeneration,
|
|
620
688
|
REDACTED_MCP_SECRET,
|
|
621
689
|
redactMcpServerSecrets,
|
|
622
690
|
restoreRedactedMcpSecrets,
|
|
623
691
|
redactMcpServersSetting,
|
|
624
|
-
restoreRedactedMcpServersSetting
|
|
692
|
+
restoreRedactedMcpServersSetting,
|
|
693
|
+
isValidServerName,
|
|
694
|
+
GENERATION_MAX_PROMPT_BYTES,
|
|
695
|
+
GENERATION_TIMEOUT_MS,
|
|
696
|
+
executeGeneration,
|
|
697
|
+
parseChannelDelivery,
|
|
698
|
+
normalizeChannelDeliveryText,
|
|
699
|
+
normalizeChannelDelivery,
|
|
700
|
+
createReplayCumulativeUsage,
|
|
701
|
+
copyCumulativeUsage,
|
|
702
|
+
collectHistoryReplayUpdates,
|
|
703
|
+
replayTranscriptRecordPage
|
|
625
704
|
};
|
|
626
705
|
/**
|
|
627
706
|
* @license
|
|
@@ -1417,6 +1417,29 @@ var BlockStreamer = class {
|
|
|
1417
1417
|
init_esbuild_shims();
|
|
1418
1418
|
import { basename as basename3, join as join5 } from "node:path";
|
|
1419
1419
|
|
|
1420
|
+
// packages/channels/base/dist/ChannelProactiveDeliveryError.js
|
|
1421
|
+
init_esbuild_shims();
|
|
1422
|
+
var CHANNEL_PROACTIVE_DELIVERY_ERROR_CODE = "channel_proactive_delivery_error";
|
|
1423
|
+
var ChannelProactiveDeliveryError = class extends Error {
|
|
1424
|
+
static {
|
|
1425
|
+
__name(this, "ChannelProactiveDeliveryError");
|
|
1426
|
+
}
|
|
1427
|
+
disposition;
|
|
1428
|
+
code = CHANNEL_PROACTIVE_DELIVERY_ERROR_CODE;
|
|
1429
|
+
constructor(disposition, message, options) {
|
|
1430
|
+
super(message, options);
|
|
1431
|
+
this.disposition = disposition;
|
|
1432
|
+
this.name = "ChannelProactiveDeliveryError";
|
|
1433
|
+
}
|
|
1434
|
+
};
|
|
1435
|
+
function isChannelProactiveDeliveryError(error) {
|
|
1436
|
+
if (typeof error !== "object" || error === null)
|
|
1437
|
+
return false;
|
|
1438
|
+
const candidate = error;
|
|
1439
|
+
return candidate.code === CHANNEL_PROACTIVE_DELIVERY_ERROR_CODE && (candidate.disposition === "permanent" || candidate.disposition === "transient") && typeof candidate.message === "string";
|
|
1440
|
+
}
|
|
1441
|
+
__name(isChannelProactiveDeliveryError, "isChannelProactiveDeliveryError");
|
|
1442
|
+
|
|
1420
1443
|
// packages/channels/base/dist/GroupGate.js
|
|
1421
1444
|
init_esbuild_shims();
|
|
1422
1445
|
var GroupGate = class {
|
|
@@ -3233,6 +3256,8 @@ var SENSITIVE_PAYLOAD_KEY_PATTERN = new RegExp([
|
|
|
3233
3256
|
"media",
|
|
3234
3257
|
"webhook",
|
|
3235
3258
|
"staff_id",
|
|
3259
|
+
"staffId",
|
|
3260
|
+
"dingtalkId",
|
|
3236
3261
|
"open_id",
|
|
3237
3262
|
"union_id",
|
|
3238
3263
|
"user_?id",
|
|
@@ -3521,6 +3546,30 @@ var ChannelBase = class {
|
|
|
3521
3546
|
mode: config.memoryScope?.mode ?? "metadata-only"
|
|
3522
3547
|
};
|
|
3523
3548
|
}
|
|
3549
|
+
async deliverProactive(target, text) {
|
|
3550
|
+
if (target.channelName !== this.name) {
|
|
3551
|
+
throw new ChannelProactiveDeliveryError("permanent", `Channel "${this.name}" does not own delivery target.`);
|
|
3552
|
+
}
|
|
3553
|
+
if (!this.supportsProactiveSend()) {
|
|
3554
|
+
throw new ChannelProactiveDeliveryError("permanent", `Channel "${this.name}" does not support proactive delivery.`);
|
|
3555
|
+
}
|
|
3556
|
+
if (target.type !== "user" && target.type !== "chat" || typeof target.id !== "string" || target.id.trim().length === 0) {
|
|
3557
|
+
throw new ChannelProactiveDeliveryError("permanent", `Channel "${this.name}" received an invalid proactive target.`);
|
|
3558
|
+
}
|
|
3559
|
+
if (typeof text !== "string" || text.trim().length === 0) {
|
|
3560
|
+
throw new ChannelProactiveDeliveryError("permanent", `Channel "${this.name}" received empty proactive text.`);
|
|
3561
|
+
}
|
|
3562
|
+
const sessionTarget = {
|
|
3563
|
+
channelName: target.channelName,
|
|
3564
|
+
senderId: target.id,
|
|
3565
|
+
chatId: target.id,
|
|
3566
|
+
isGroup: target.type === "chat"
|
|
3567
|
+
};
|
|
3568
|
+
if (!this.supportsProactiveDeliveryTarget(sessionTarget)) {
|
|
3569
|
+
throw new ChannelProactiveDeliveryError("permanent", `Channel "${this.name}" does not support this proactive target.`);
|
|
3570
|
+
}
|
|
3571
|
+
await this.pushProactiveDelivery(sessionTarget, text);
|
|
3572
|
+
}
|
|
3524
3573
|
/** Built once — identity/memoryScope are frozen at construction. */
|
|
3525
3574
|
boundaryPrompt;
|
|
3526
3575
|
channelBoundaryPrompt() {
|
|
@@ -3563,6 +3612,9 @@ var ChannelBase = class {
|
|
|
3563
3612
|
supportsProactiveTarget(target) {
|
|
3564
3613
|
return target.threadId === void 0;
|
|
3565
3614
|
}
|
|
3615
|
+
supportsProactiveDeliveryTarget(target) {
|
|
3616
|
+
return this.supportsProactiveTarget(target);
|
|
3617
|
+
}
|
|
3566
3618
|
supportsProactiveWebhookTarget(target) {
|
|
3567
3619
|
return this.supportsProactiveTarget(target);
|
|
3568
3620
|
}
|
|
@@ -3572,6 +3624,16 @@ var ChannelBase = class {
|
|
|
3572
3624
|
}
|
|
3573
3625
|
await this.sendMessage(target.chatId, text);
|
|
3574
3626
|
}
|
|
3627
|
+
async pushProactiveDelivery(target, text) {
|
|
3628
|
+
try {
|
|
3629
|
+
await this.pushProactive(target, text);
|
|
3630
|
+
} catch (error) {
|
|
3631
|
+
if (isChannelProactiveDeliveryError(error)) {
|
|
3632
|
+
throw error;
|
|
3633
|
+
}
|
|
3634
|
+
throw new ChannelProactiveDeliveryError("transient", error instanceof Error ? error.message : String(error), { cause: error });
|
|
3635
|
+
}
|
|
3636
|
+
}
|
|
3575
3637
|
async prepareUnattendedSessionContext(sessionId, target, taskLabel) {
|
|
3576
3638
|
const staticContext = [];
|
|
3577
3639
|
const channelMemory = this.channelMemory;
|
|
@@ -5124,7 +5186,7 @@ ${requestList}`);
|
|
|
5124
5186
|
renderChannelMemoryCandidates(entries) {
|
|
5125
5187
|
return entries.map((entry) => this.renderChannelMemoryCandidate(entry));
|
|
5126
5188
|
}
|
|
5127
|
-
async handleChannelMemoryIntent(envelope, intent) {
|
|
5189
|
+
async handleChannelMemoryIntent(envelope, intent, options = {}) {
|
|
5128
5190
|
if (intent.kind === "no_match") {
|
|
5129
5191
|
await this.sendMessage(envelope.chatId, "No matching channel memory entry.");
|
|
5130
5192
|
return;
|
|
@@ -5252,6 +5314,9 @@ ${requestList}`);
|
|
|
5252
5314
|
if (result.changed) {
|
|
5253
5315
|
this.invalidateUnattendedMemory(envelope);
|
|
5254
5316
|
}
|
|
5317
|
+
if (options.suppressSaveConfirmation) {
|
|
5318
|
+
return;
|
|
5319
|
+
}
|
|
5255
5320
|
if (result.added.length > 0) {
|
|
5256
5321
|
const ids = result.added.map((entry) => entry.id);
|
|
5257
5322
|
await this.sendMessage(envelope.chatId, result.duplicateIds.length > 0 ? `Channel memory saved: ${ids.join(", ")}. Skipped duplicates: ${result.duplicateIds.join(", ")}.` : ids.length === 1 ? `Channel memory ${ids[0]} saved.` : `Channel memory saved: ${ids.join(", ")}.`);
|
|
@@ -5861,15 +5926,22 @@ ${promptText}`;
|
|
|
5861
5926
|
await this.recordObservedContact(envelope);
|
|
5862
5927
|
}
|
|
5863
5928
|
let memoryIntent = parseChannelMemoryIntent(envelope.text);
|
|
5929
|
+
let memoryIntentFromClassifier = false;
|
|
5864
5930
|
if (memoryIntent?.kind === "update" || memoryIntent?.kind === "remove") {
|
|
5865
5931
|
this.deletePendingChannelMemoryMutation(envelope);
|
|
5866
5932
|
}
|
|
5867
5933
|
if (!memoryIntent && this.shouldClassifyChannelMemoryIntent(envelope.text)) {
|
|
5868
5934
|
memoryIntent = await this.classifyChannelMemoryIntent(envelope);
|
|
5935
|
+
memoryIntentFromClassifier = memoryIntent !== null;
|
|
5869
5936
|
}
|
|
5870
5937
|
if (memoryIntent) {
|
|
5871
|
-
|
|
5872
|
-
|
|
5938
|
+
const memorySaveIsSideEffect = memoryIntentFromClassifier && memoryIntent.kind === "remember";
|
|
5939
|
+
await this.handleChannelMemoryIntent(envelope, memoryIntent, {
|
|
5940
|
+
suppressSaveConfirmation: memorySaveIsSideEffect
|
|
5941
|
+
});
|
|
5942
|
+
if (!memorySaveIsSideEffect) {
|
|
5943
|
+
return;
|
|
5944
|
+
}
|
|
5873
5945
|
}
|
|
5874
5946
|
const parsed = this.parseCommand(envelope.text);
|
|
5875
5947
|
if (parsed) {
|
|
@@ -6469,6 +6541,8 @@ export {
|
|
|
6469
6541
|
sanitizeLogText,
|
|
6470
6542
|
AcpBridge,
|
|
6471
6543
|
DaemonChannelBridge,
|
|
6544
|
+
ChannelProactiveDeliveryError,
|
|
6545
|
+
isChannelProactiveDeliveryError,
|
|
6472
6546
|
PairingStore,
|
|
6473
6547
|
SessionRouter,
|
|
6474
6548
|
ChannelLoopScheduler,
|
|
@@ -6476,3 +6550,8 @@ export {
|
|
|
6476
6550
|
ChannelLoopStore,
|
|
6477
6551
|
isTerminalTaskLifecycleType
|
|
6478
6552
|
};
|
|
6553
|
+
/**
|
|
6554
|
+
* @license
|
|
6555
|
+
* Copyright 2026 Qwen Team
|
|
6556
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
6557
|
+
*/
|