@qwen-code/qwen-code 0.19.4 → 0.19.5
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 +22 -6
- package/bundled/qc-helper/docs/features/commands.md +41 -34
- package/bundled/qc-helper/docs/features/headless.md +19 -18
- package/bundled/qc-helper/docs/qwen-serve.md +34 -0
- package/bundled/qc-helper/docs/support/troubleshooting.md +5 -0
- package/chunks/{MaxSizedBox-ERTNFI22.js → MaxSizedBox-5JV77KRA.js} +11 -10
- package/chunks/{StandaloneSessionPicker-Y5NGRLRY.js → StandaloneSessionPicker-MGUGB6PH.js} +21 -20
- package/chunks/{acpAgent-UMN6OYTR.js → acpAgent-4F36XM3X.js} +75 -73
- package/chunks/{agent-56DZU4ZU.js → agent-IWBUZI6A.js} +8 -7
- package/chunks/{agent-headless-SR7N2IJG.js → agent-headless-JUTICAYO.js} +8 -7
- package/chunks/{anthropicContentGenerator-5OZFO6WQ.js → anthropicContentGenerator-WL3LJOUB.js} +99 -23
- package/chunks/{artifact-tool-JVZMHA4B.js → artifact-tool-W76WC2JX.js} +1 -1
- package/chunks/{askUserQuestion-CMJZ2F3D.js → askUserQuestion-J3P6TH3V.js} +1 -1
- package/chunks/{bridge-AUHNFOUS.js → bridge-DHZHQ4UV.js} +14 -12
- package/chunks/{ca-RYOETBUW.js → ca-HCMB2I54.js} +1 -0
- package/chunks/channel-worker-supervisor-EVPAYNZ5.js +665 -0
- package/chunks/{chunk-HRZB5CSC.js → chunk-2CAII5HD.js} +1 -1
- package/chunks/{chunk-FYKX6XOT.js → chunk-2YH27UNF.js} +1 -1
- package/chunks/chunk-2Z43HUXT.js +99 -0
- package/chunks/{chunk-ZXCVPMIK.js → chunk-4MCC4XHH.js} +167 -54
- package/chunks/{chunk-J3F7X3LW.js → chunk-5B2WNM6V.js} +1 -1
- package/chunks/{chunk-VKGG724L.js → chunk-6KPZJJ6U.js} +9 -8
- package/chunks/{chunk-BFG6OZN7.js → chunk-6QTCOQX7.js} +3470 -2654
- package/chunks/{chunk-QAFQLTXG.js → chunk-6QVQZAW6.js} +1 -1
- package/chunks/{chunk-HI55Z6PR.js → chunk-7DMQRPC7.js} +401 -58
- package/chunks/{chunk-MKHC4BYZ.js → chunk-BC4R5C5R.js} +20 -4
- package/chunks/chunk-BPFJQGY7.js +193 -0
- package/chunks/{chunk-FNLXLI4I.js → chunk-CBJE2PLG.js} +2 -2
- package/chunks/{chunk-HJDF3ZVU.js → chunk-CHY5C5T4.js} +6 -6
- package/chunks/{chunk-UT5JU5DJ.js → chunk-CSPSJU5R.js} +40 -13
- package/chunks/chunk-CXBG27SF.js +35 -0
- package/chunks/{chunk-UQFP2FEF.js → chunk-DG573EOO.js} +1 -1
- package/chunks/{chunk-UQYOMM6J.js → chunk-DM4E337C.js} +10 -10
- package/chunks/{chunk-CS5XYDBO.js → chunk-DRS2HTNT.js} +5 -5
- package/chunks/{chunk-MVZXZWGT.js → chunk-EJ7BN3EN.js} +125 -52
- package/chunks/{chunk-YBDZ63KI.js → chunk-EROWZQN7.js} +8 -4
- package/chunks/{chunk-CUGEBAKG.js → chunk-G4M7FPNY.js} +1 -1
- package/chunks/{chunk-ND25GXEU.js → chunk-HISPEX42.js} +11 -3
- package/chunks/{chunk-TTFNVEO5.js → chunk-IMAMNLY6.js} +3 -3
- package/chunks/{chunk-7VPC7D7O.js → chunk-J3ERRYYI.js} +2 -2
- package/chunks/{chunk-OAFUMTWW.js → chunk-JJ6B3ZD3.js} +2 -2
- package/chunks/{chunk-W2ZOAX7F.js → chunk-JKGCBO3O.js} +3 -3
- package/chunks/{chunk-BQNJBEUA.js → chunk-K4I4STSL.js} +16 -2
- package/chunks/{chunk-MEQWZGK5.js → chunk-L7OJ3ZO3.js} +1 -1
- package/chunks/{chunk-GICCHL2Q.js → chunk-LHMZCIKL.js} +1 -1
- package/chunks/{chunk-XCUFHOAD.js → chunk-M5ITDKSM.js} +1 -1
- package/chunks/{chunk-7KPI4LAI.js → chunk-MDBNFHIO.js} +3 -3
- package/chunks/{chunk-BNJLLAQ7.js → chunk-MNOXKSM2.js} +1 -1
- package/chunks/{chunk-4VZH35PN.js → chunk-MTNTVOJR.js} +2 -0
- package/chunks/{chunk-CG7SVARK.js → chunk-NDY7OENU.js} +2 -2
- package/chunks/{chunk-DQ74W65K.js → chunk-NNEJEBCF.js} +49 -22
- package/chunks/{chunk-L7VH7HQA.js → chunk-NSSVORTQ.js} +29 -4
- package/chunks/{chunk-6CIIP6OE.js → chunk-OQHLUA2Y.js} +3 -3
- package/chunks/{chunk-6TLY5W3B.js → chunk-QHYITL6P.js} +127 -23
- package/chunks/{chunk-73H73ASU.js → chunk-R3UWLLRQ.js} +1 -1
- package/chunks/{chunk-UANCYOOQ.js → chunk-R6RI2HIC.js} +1 -1
- package/chunks/{chunk-PIYV6COW.js → chunk-RNGAT2Y2.js} +1 -1
- package/chunks/{chunk-W6X4FGWX.js → chunk-RSBQS6M4.js} +1 -1
- package/chunks/{chunk-EDAGQADF.js → chunk-S6RLAIUR.js} +2 -0
- package/chunks/{chunk-C2IHHGBZ.js → chunk-SBMHB6N5.js} +12 -12
- package/chunks/chunk-SIUQ3YYX.js +78 -0
- package/chunks/{chunk-MNDTD5E5.js → chunk-SJVPSHXU.js} +4 -4
- package/chunks/chunk-TN6RT6EJ.js +86 -0
- package/chunks/{chunk-75X2VLSH.js → chunk-UJT42DB6.js} +26 -5
- package/chunks/{chunk-QMIND2AS.js → chunk-UY2TCIZS.js} +15 -1
- package/chunks/{chunk-6AQR7732.js → chunk-WALEWZ44.js} +1 -1
- package/chunks/{chunk-SFN4TEHY.js → chunk-WZ724G6K.js} +4 -4
- package/chunks/{chunk-2X2JUE47.js → chunk-XKZXGIRM.js} +2 -2
- package/chunks/{chunk-Q7VHIRDD.js → chunk-Y4UQT3PM.js} +1 -1
- package/chunks/{chunk-B7KGXIPZ.js → chunk-YCU7QV7Q.js} +11 -4
- package/chunks/{chunk-OJCECIJA.js → chunk-YHTNWGRR.js} +5 -4
- package/chunks/{chunk-ZJP5T7IA.js → chunk-Z7XNVNPM.js} +1 -1
- package/chunks/{chunk-KVPFPC4J.js → chunk-ZISMVA6U.js} +14 -14
- package/chunks/{computer-use-VWN5HH6A.js → computer-use-ON3JQUHW.js} +8 -7
- package/chunks/{contextCommand-DFFG5KDJ.js → contextCommand-OGCG7W6N.js} +10 -9
- package/chunks/{cron-create-CSSWJ67I.js → cron-create-6YTCOX6P.js} +1 -1
- package/chunks/{cron-delete-E56CFQ7A.js → cron-delete-E3NIFSUK.js} +1 -1
- package/chunks/{cron-list-BKSINY6Y.js → cron-list-Q64MNQNE.js} +1 -1
- package/chunks/{daemon-5T6IHWJV.js → daemon-EEB2RYOL.js} +23 -0
- package/chunks/{daemon-status-provider-V5UY7O7J.js → daemon-status-provider-P72STMLB.js} +17 -15
- package/chunks/{de-HB5NJXGB.js → de-PLLFDERI.js} +1 -0
- package/chunks/{dist-TAVAGZU6.js → dist-AP5V4WYU.js} +54 -14
- package/chunks/{dist-XBOVZ3R5.js → dist-IZP2VV4C.js} +156 -57
- package/chunks/{dist-B7SSDVWT.js → dist-SNXOUPYS.js} +201 -7
- package/chunks/{dist-2HDL5SHQ.js → dist-X4ZDE726.js} +43 -8
- package/chunks/{dist-BL3SL665.js → dist-Z57Q4YF5.js} +1 -1
- package/chunks/{earlyInputCapture-VVYU4FDO.js → earlyInputCapture-DAFHSGVW.js} +8 -7
- package/chunks/{edit-F35PTMBA.js → edit-3QFNCSZH.js} +13 -16
- package/chunks/{en-FZREZFPO.js → en-M4EBUBNU.js} +2 -0
- package/chunks/{enter-worktree-3DIW7EGJ.js → enter-worktree-62EQQMLD.js} +8 -7
- package/chunks/{enterPlanMode-QNXT77KP.js → enterPlanMode-VUQSE4EG.js} +10 -9
- package/chunks/{errors-M53YG76R.js → errors-PW75PZXE.js} +10 -9
- package/chunks/{exit-worktree-BSDWNWHZ.js → exit-worktree-VVNH7OVY.js} +8 -7
- package/chunks/{exitPlanMode-EL7AY327.js → exitPlanMode-RUYRCYZW.js} +106 -11
- package/chunks/{fast-path-DUCSMUFW.js → fast-path-TFRJRTTR.js} +5 -3
- package/chunks/{fr-XY3NQFCM.js → fr-MBMNQSQ6.js} +1 -0
- package/chunks/{gemini-F3IERB37.js → gemini-XW7ZDUVR.js} +50 -47
- package/chunks/{geminiContentGenerator-6OULAKFQ.js → geminiContentGenerator-MZDVHVZH.js} +39 -3
- package/chunks/{glob-ZMLFTD4T.js → glob-WAY2PUWA.js} +8 -7
- package/chunks/{grep-H5X66EI7.js → grep-W6CBKSYC.js} +8 -7
- package/chunks/{initializer-LEOT2OLH.js → initializer-HK2XE6P2.js} +12 -11
- package/chunks/{ja-J7YAG7SA.js → ja-HFV5QCHR.js} +1 -0
- package/chunks/{list-M3DKXML6.js → list-RVLIIKKL.js} +14 -13
- package/chunks/{loadedSettingsAdapter-OKMQFGGG.js → loadedSettingsAdapter-C63OUYZC.js} +12 -11
- package/chunks/{loop-wakeup-FPBAVVPR.js → loop-wakeup-G2EHBRGR.js} +2 -2
- package/chunks/{ls-UGWQXPTY.js → ls-IDHUVSAG.js} +1 -1
- package/chunks/{lsp-24WV7NXB.js → lsp-FSRYXGFT.js} +1 -1
- package/chunks/{monitor-ARL5P45R.js → monitor-FOG36ABM.js} +10 -9
- package/chunks/{nonInteractiveCli-NUVLF3YR.js → nonInteractiveCli-6BYQSJTB.js} +40 -39
- package/chunks/{notebook-edit-ANTZ2DDY.js → notebook-edit-GC6NXRCX.js} +13 -15
- package/chunks/{openaiContentGenerator-TFGMKGHN.js → openaiContentGenerator-EXR3ZL3Z.js} +4 -4
- package/chunks/{pidfile-AWTL4C63.js → pidfile-FNZM2DDH.js} +9 -8
- package/chunks/{pt-6RTAA6SS.js → pt-2THT3YHA.js} +1 -0
- package/chunks/{qwenContentGenerator-6QWAYTWS.js → qwenContentGenerator-A7B6J4U7.js} +9 -8
- package/chunks/{read-file-EJY73XQ3.js → read-file-6JL4ULMY.js} +3 -3
- package/chunks/{read-mcp-resource-NCBTPP7X.js → read-mcp-resource-PIJF24RO.js} +1 -1
- package/chunks/{ripGrep-HC4SA6CQ.js → ripGrep-DIUGLJE5.js} +8 -7
- package/chunks/{ru-AUBGJ2C4.js → ru-Z67YJHBG.js} +1 -0
- package/chunks/{run-qwen-serve-AGLZ642J.js → run-qwen-serve-CME3AKM4.js} +123 -30
- package/chunks/{scheduler-TURO7NGY.js → scheduler-L7F6GDDT.js} +8 -7
- package/chunks/{send-message-3S2NYS3O.js → send-message-33PYFMCT.js} +15 -1
- package/chunks/{serve-5DAMOIDW.js → serve-SRCBOJGP.js} +12 -11
- package/chunks/{server-4AGEK2HC.js → server-QSQ45QFR.js} +184 -170
- package/chunks/{session-7ZOQUC4Y.js → session-5DG6NXHZ.js} +41 -40
- package/chunks/{settings-DR4V6L5Y.js → settings-3EEQI4MN.js} +11 -10
- package/chunks/{shell-H5WFKUXH.js → shell-B7FNYF5S.js} +8 -7
- package/chunks/{skill-ANHU5ZCR.js → skill-AAOGHD5O.js} +3 -3
- package/chunks/{spawnChannel-VN5LJV7Z.js → spawnChannel-3CBN3ZLK.js} +11 -9
- package/chunks/{src-OVZLTVVM.js → src-T5A7P7FS.js} +20 -9
- package/chunks/{startInteractiveUI-OA22V32P.js → startInteractiveUI-2FGEQ6AS.js} +2648 -2500
- package/chunks/{syntheticOutput-SV7GBHZ5.js → syntheticOutput-YOSWIHDJ.js} +2 -2
- package/chunks/{task-create-W2H2UJCH.js → task-create-NHS2NGB3.js} +3 -2
- package/chunks/{task-list-THBOPV4G.js → task-list-5UIB564R.js} +1 -1
- package/chunks/{task-stop-33FVCNCJ.js → task-stop-HGXZ2VZ3.js} +1 -1
- package/chunks/{task-update-LVFQLXEI.js → task-update-IYYWUILG.js} +34 -2
- package/chunks/{team-create-OYL5CAQO.js → team-create-KDF6W6PV.js} +8 -7
- package/chunks/{team-delete-NTUQ25UY.js → team-delete-FEKJCU4P.js} +1 -1
- package/chunks/team-plan-approval-PSFKQX7M.js +202 -0
- package/chunks/{theme-manager-XCMPF2SI.js → theme-manager-5XOA2AO7.js} +8 -7
- package/chunks/{todoWrite-SEPO2RI3.js → todoWrite-TKMVZ2HT.js} +1 -1
- package/chunks/{tool-search-YXW55X6Z.js → tool-search-LFRILZXC.js} +8 -6
- package/chunks/{trustedFolders-TEPGM5YL.js → trustedFolders-7HQY6T6X.js} +9 -8
- package/chunks/{validateNonInterActiveAuth-OQIS7WUE.js → validateNonInterActiveAuth-UC27B7BA.js} +37 -36
- package/chunks/{web-fetch-OE7LHURA.js → web-fetch-J4PIW36Q.js} +2 -2
- package/chunks/{workflow-RTUWORAP.js → workflow-KUTESS6L.js} +11 -10
- package/chunks/{workspace-providers-status-DM2XANVB.js → workspace-providers-status-LJT5AQDS.js} +14 -13
- package/chunks/{workspace-service-VKBI2KZD.js → workspace-service-YOBYVDXH.js} +16 -15
- package/chunks/workspace-skills-status-ONEPXJV6.js +62 -0
- package/chunks/{write-file-WGALQ53L.js → write-file-FJYBZUHP.js} +13 -17
- package/chunks/{zh-V3B4TFWL.js → zh-SLZNSSZB.js} +2 -0
- package/chunks/{zh-TW-6GIKXEAN.js → zh-TW-P53C2SL5.js} +2 -0
- package/cli.js +6 -6
- package/locales/ca.js +2 -0
- package/locales/de.js +2 -0
- package/locales/en.js +3 -0
- package/locales/fr.js +2 -0
- package/locales/ja.js +2 -0
- package/locales/pt.js +2 -0
- package/locales/ru.js +2 -0
- package/locales/zh-TW.js +3 -0
- package/locales/zh.js +3 -0
- package/node_modules/@qwen-code/audio-capture/package.json +1 -1
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
- package/package.json +6 -15
- package/web-shell/assets/{arc-Det5Ccum.js → arc-D_rAuMDd.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-DqNWVFpl.js → architectureDiagram-3BPJPVTR-DUCzbHVo.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CYl7tYBi.js → blockDiagram-GPEHLZMM-BEEBt1LL.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-DaAEi0NQ.js → c4Diagram-AAUBKEIU-5ZJ_DeFL.js} +1 -1
- package/web-shell/assets/channel-B5ynH0q8.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-Df2CDEE2.js → chunk-2J33WTMH-Cfw7EiLn.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DNBFcyL2.js → chunk-4BX2VUAB-FGuZNCZY.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-BKjF-0HI.js → chunk-55IACEB6-CaBwYPBF.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DYwAwfIM.js → chunk-727SXJPM-BlR04OFz.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-C6FswLqy.js → chunk-AQP2D5EJ-D3_mYJH5.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-DRWAcZSY.js → chunk-FMBD7UC4-7D4q4SbB.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-AoL16mNR.js → chunk-ND2GUHAM-BjX_Iwmr.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-a8PtLMck.js → chunk-QZHKN3VN-C3Hz_ZQh.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CK3ibywp.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CK3ibywp.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-C4Aeu5qf.js → cose-bilkent-S5V4N54A-Ax4UycaT.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-BOulamjo.js → dagre-BM42HDAG-C6hmPtGt.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-D1wt2ykO.js → diagram-2AECGRRQ-tXZnxjmw.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BRseus-O.js → diagram-5GNKFQAL-99dwIzQG.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-XSMkNzpZ.js → diagram-KO2AKTUF-Bqhn0-2s.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-21KNLqoi.js → diagram-LMA3HP47-DzThVSvo.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-DnUI8F5G.js → diagram-OG6HWLK6-DPE8vjln.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-BVSOMuM2.js → erDiagram-TEJ5UH35-KzUKgQCV.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-fYtDPJsW.js → flowDiagram-I6XJVG4X-DBN-DXw5.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-CmRXosW_.js → ganttDiagram-6RSMTGT7-DuBsP9u8.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DPrmySxO.js → gitGraphDiagram-PVQCEYII-BjWHMyKR.js} +1 -1
- package/web-shell/assets/index-9qfvU0_r.css +5 -0
- package/web-shell/assets/index-CWzDaQT5.js +717 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-x3VbEuCV.js → infoDiagram-5YYISTIA-BVux0vP6.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-SmitHRMC.js → ishikawaDiagram-YF4QCWOH-2qzw7f--.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-BxvA551S.js → journeyDiagram-JHISSGLW-Dnl65sxL.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-DNHC16jY.js → kanban-definition-UN3LZRKU-BElSQYtY.js} +1 -1
- package/web-shell/assets/{linear-CQ6irBL9.js → linear-BjoycSSY.js} +1 -1
- package/web-shell/assets/{mermaid.core-DtB6NO1e.js → mermaid.core-xe6bvMRz.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-QKMAgV2v.js → mindmap-definition-RKZ34NQL-D8DQgI4U.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-bvb6dGn6.js → pieDiagram-4H26LBE5-Dwh7Gp7c.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DLgdlG4D.js → quadrantDiagram-W4KKPZXB-BXKNBln2.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-2M9YH4GF.js → requirementDiagram-4Y6WPE33-BzaC3cIA.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DzwfclTH.js → sankeyDiagram-5OEKKPKP-DP2t7eZk.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-BvPmTuy2.js → sequenceDiagram-3UESZ5HK-XlFiWEYv.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-BjwUmrJF.js → stateDiagram-AJRCARHV-CupgUMJO.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-By3E4QwN.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-CXzS6qqz.js → timeline-definition-PNZ67QCA-DstuGywa.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-yRSolF5B.js → vennDiagram-CIIHVFJN-CnbNp6zu.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-ClLJjHPG.js → wardley-L42UT6IY-DnvoHq6R.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-VIa6t2p2.js → wardleyDiagram-YWT4CUSO-Cz0xHEWB.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-CtmrkezW.js → xychartDiagram-2RQKCTM6-p36gfo88.js} +1 -1
- package/web-shell/index.html +28 -3
- package/chunks/channel-worker-supervisor-A74FV522.js +0 -308
- package/chunks/chunk-S5EQPDTM.js +0 -91
- package/patches/chrome-devtools-mcp+1.4.0.patch +0 -31
- package/postinstall.js +0 -50
- package/web-shell/assets/channel-Bm0bFauD.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK--NgUfb55.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2--NgUfb55.js +0 -1
- package/web-shell/assets/index-BpKnmyFV.js +0 -717
- package/web-shell/assets/index-fLrtxpOG.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-C4L8zXeL.js +0 -1
|
@@ -8,9 +8,10 @@ import {
|
|
|
8
8
|
import "./chunk-7RYW5LQV.js";
|
|
9
9
|
import {
|
|
10
10
|
ChannelBase,
|
|
11
|
+
isTerminalTaskLifecycleType,
|
|
11
12
|
sanitizeLogText,
|
|
12
13
|
sanitizeSenderName
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-7DMQRPC7.js";
|
|
14
15
|
import "./chunk-UFC57OYT.js";
|
|
15
16
|
import "./chunk-K5PGHDBN.js";
|
|
16
17
|
import "./chunk-UWCTAVOD.js";
|
|
@@ -4488,6 +4489,10 @@ var ACK_REACTION_NAME = "\u{1F440}";
|
|
|
4488
4489
|
var ACK_EMOTION_ID = "2659900";
|
|
4489
4490
|
var ACK_EMOTION_BG_ID = "im_bg_1";
|
|
4490
4491
|
var EMOTION_API = "https://api.dingtalk.com/v1.0/robot/emotion";
|
|
4492
|
+
var GROUP_MSG_API = "https://api.dingtalk.com/v1.0/robot/groupMessages/send";
|
|
4493
|
+
var GROUP_MSG_KEY = "sampleMarkdown";
|
|
4494
|
+
var TOKEN_API = "https://oapi.dingtalk.com/gettoken";
|
|
4495
|
+
var PROACTIVE_FETCH_TIMEOUT_MS = 15e3;
|
|
4491
4496
|
var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
4492
4497
|
static {
|
|
4493
4498
|
__name(this, "DingtalkChannel");
|
|
@@ -4497,6 +4502,20 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
4497
4502
|
dedupTimer;
|
|
4498
4503
|
/** Map conversationId → latest sessionWebhook URL for sending replies. */
|
|
4499
4504
|
webhooks = /* @__PURE__ */ new Map();
|
|
4505
|
+
activeReactionKeys = /* @__PURE__ */ new Set();
|
|
4506
|
+
/** sessionId → reaction keys, so a dead session's reactions can be recalled. */
|
|
4507
|
+
sessionReactionKeys = /* @__PURE__ */ new Map();
|
|
4508
|
+
/**
|
|
4509
|
+
* Real inbound message ids (insertion-ordered, size-capped). Unlike the
|
|
4510
|
+
* TTL-swept seenMessages dedup map, entries survive long queue waits, so a
|
|
4511
|
+
* turn that starts minutes after its message arrived still gets a reaction.
|
|
4512
|
+
*/
|
|
4513
|
+
inboundMessageIds = /* @__PURE__ */ new Set();
|
|
4514
|
+
/**
|
|
4515
|
+
* Token cache for proactive sends. The stream SDK only refreshes its token
|
|
4516
|
+
* on (re)connect, so a long-lived socket serves a stale one after ~2h.
|
|
4517
|
+
*/
|
|
4518
|
+
proactiveToken;
|
|
4500
4519
|
constructor(name, config, bridge, options) {
|
|
4501
4520
|
super(name, config, bridge, options);
|
|
4502
4521
|
if (!config.clientId || !config.clientSecret) {
|
|
@@ -4645,6 +4664,98 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
4645
4664
|
}
|
|
4646
4665
|
}
|
|
4647
4666
|
}
|
|
4667
|
+
supportsProactiveSend() {
|
|
4668
|
+
return true;
|
|
4669
|
+
}
|
|
4670
|
+
/**
|
|
4671
|
+
* The group-message API needs a real openConversationId — reject DMs
|
|
4672
|
+
* (a different API) and webhook-URL fallback chatIds.
|
|
4673
|
+
*/
|
|
4674
|
+
supportsProactiveTarget(target) {
|
|
4675
|
+
return target.isGroup === true && target.threadId === void 0 && this.isConversationId(target.chatId);
|
|
4676
|
+
}
|
|
4677
|
+
/**
|
|
4678
|
+
* Single-shot cold send: a failed chunk aborts the remainder (already-sent
|
|
4679
|
+
* chunks are not recalled) and the error surfaces in the loop's lastError.
|
|
4680
|
+
*/
|
|
4681
|
+
async pushProactive(target, text) {
|
|
4682
|
+
if (!text.trim())
|
|
4683
|
+
return;
|
|
4684
|
+
const chunks = normalizeDingTalkMarkdown(text);
|
|
4685
|
+
const title = extractTitle(text);
|
|
4686
|
+
for (let i = 0; i < chunks.length; i++) {
|
|
4687
|
+
await this.sendProactiveChunk(target.chatId, i === 0 ? title : `${title} (cont.)`, chunks[i], `chunk ${i + 1}/${chunks.length}`);
|
|
4688
|
+
}
|
|
4689
|
+
}
|
|
4690
|
+
async getProactiveToken() {
|
|
4691
|
+
const cached = this.proactiveToken;
|
|
4692
|
+
if (cached && Date.now() < cached.expiresAt)
|
|
4693
|
+
return cached.token;
|
|
4694
|
+
const url2 = `${TOKEN_API}?appkey=${encodeURIComponent(this.config.clientId)}&appsecret=${encodeURIComponent(this.config.clientSecret)}`;
|
|
4695
|
+
let data;
|
|
4696
|
+
try {
|
|
4697
|
+
const resp = await fetch(url2, {
|
|
4698
|
+
signal: AbortSignal.timeout(PROACTIVE_FETCH_TIMEOUT_MS)
|
|
4699
|
+
});
|
|
4700
|
+
data = await resp.json();
|
|
4701
|
+
} catch (err) {
|
|
4702
|
+
process.stderr.write(`[DingTalk:${this.name}] proactive send failed: token fetch error ${err}
|
|
4703
|
+
`);
|
|
4704
|
+
throw new Error("DingTalk proactive send failed: could not fetch access token");
|
|
4705
|
+
}
|
|
4706
|
+
if (!data.access_token) {
|
|
4707
|
+
const errmsg = sanitizeLogText(String(data.errmsg ?? ""), 200);
|
|
4708
|
+
process.stderr.write(`[DingTalk:${this.name}] proactive send failed: gettoken errcode=${data.errcode} ${errmsg}
|
|
4709
|
+
`);
|
|
4710
|
+
throw new Error(`DingTalk proactive send failed: gettoken errcode=${data.errcode}${errmsg ? ` ${errmsg}` : ""}`);
|
|
4711
|
+
}
|
|
4712
|
+
this.proactiveToken = {
|
|
4713
|
+
token: data.access_token,
|
|
4714
|
+
// Refresh a minute early so a fire mid-expiry doesn't race the TTL.
|
|
4715
|
+
expiresAt: Date.now() + Math.max(60, (data.expires_in ?? 7200) - 60) * 1e3
|
|
4716
|
+
};
|
|
4717
|
+
return data.access_token;
|
|
4718
|
+
}
|
|
4719
|
+
async sendProactiveChunk(conversationId, title, text, chunkLabel) {
|
|
4720
|
+
for (let attempt = 0; ; attempt++) {
|
|
4721
|
+
const token = await this.getProactiveToken();
|
|
4722
|
+
let resp;
|
|
4723
|
+
try {
|
|
4724
|
+
resp = await fetch(GROUP_MSG_API, {
|
|
4725
|
+
method: "POST",
|
|
4726
|
+
headers: {
|
|
4727
|
+
"x-acs-dingtalk-access-token": token,
|
|
4728
|
+
"Content-Type": "application/json"
|
|
4729
|
+
},
|
|
4730
|
+
body: JSON.stringify({
|
|
4731
|
+
robotCode: this.config.clientId,
|
|
4732
|
+
openConversationId: conversationId,
|
|
4733
|
+
msgKey: GROUP_MSG_KEY,
|
|
4734
|
+
msgParam: JSON.stringify({ title, text })
|
|
4735
|
+
}),
|
|
4736
|
+
signal: AbortSignal.timeout(PROACTIVE_FETCH_TIMEOUT_MS)
|
|
4737
|
+
});
|
|
4738
|
+
} catch (err) {
|
|
4739
|
+
const cause = err.cause;
|
|
4740
|
+
process.stderr.write(`[DingTalk:${this.name}] proactive send error (${chunkLabel}): ${err}${cause ? ` (${cause})` : ""}
|
|
4741
|
+
`);
|
|
4742
|
+
throw new Error(`DingTalk proactive send failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
4743
|
+
}
|
|
4744
|
+
if (resp.status === 401 && attempt === 0) {
|
|
4745
|
+
this.proactiveToken = void 0;
|
|
4746
|
+
await resp.body?.cancel();
|
|
4747
|
+
continue;
|
|
4748
|
+
}
|
|
4749
|
+
if (!resp.ok) {
|
|
4750
|
+
const detail = sanitizeLogText(await resp.text().catch(() => ""), 300);
|
|
4751
|
+
process.stderr.write(`[DingTalk:${this.name}] proactive send failed (${chunkLabel}): HTTP ${resp.status} ${detail}
|
|
4752
|
+
`);
|
|
4753
|
+
throw new Error(`DingTalk proactive send failed: HTTP ${resp.status}${detail ? ` ${detail}` : ""}`);
|
|
4754
|
+
}
|
|
4755
|
+
await resp.body?.cancel();
|
|
4756
|
+
return;
|
|
4757
|
+
}
|
|
4758
|
+
}
|
|
4648
4759
|
getAccessToken() {
|
|
4649
4760
|
return this.client.getConfig().access_token;
|
|
4650
4761
|
}
|
|
@@ -4694,30 +4805,112 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
4694
4805
|
if (this.dedupTimer) {
|
|
4695
4806
|
clearInterval(this.dedupTimer);
|
|
4696
4807
|
}
|
|
4808
|
+
this.activeReactionKeys.clear();
|
|
4809
|
+
this.sessionReactionKeys.clear();
|
|
4697
4810
|
this.client.disconnect();
|
|
4698
4811
|
process.stderr.write(`[DingTalk:${this.name}] Disconnected.
|
|
4699
4812
|
`);
|
|
4700
4813
|
}
|
|
4701
4814
|
/**
|
|
4702
4815
|
* The chatId passed to onPromptStart/onPromptEnd is `conversationId ||
|
|
4703
|
-
* sessionWebhook` (see message handler below). Reactions
|
|
4704
|
-
* conversation ID — skip the webhook-URL fallback case.
|
|
4816
|
+
* sessionWebhook` (see message handler below). Reactions and proactive
|
|
4817
|
+
* sends require a real conversation ID — skip the webhook-URL fallback case.
|
|
4705
4818
|
*/
|
|
4706
4819
|
isConversationId(chatId) {
|
|
4707
4820
|
return !!chatId && !/^https?:\/\//i.test(chatId);
|
|
4708
4821
|
}
|
|
4709
|
-
|
|
4822
|
+
reactionKey(messageId, conversationId) {
|
|
4823
|
+
return `${conversationId}:${messageId}`;
|
|
4824
|
+
}
|
|
4825
|
+
rememberInboundMessageId(msgId) {
|
|
4826
|
+
this.inboundMessageIds.delete(msgId);
|
|
4827
|
+
this.inboundMessageIds.add(msgId);
|
|
4828
|
+
if (this.inboundMessageIds.size > 1e3) {
|
|
4829
|
+
const oldest = this.inboundMessageIds.values().next().value;
|
|
4830
|
+
if (oldest !== void 0)
|
|
4831
|
+
this.inboundMessageIds.delete(oldest);
|
|
4832
|
+
}
|
|
4833
|
+
}
|
|
4834
|
+
logReactionFailure(action, err) {
|
|
4835
|
+
process.stderr.write(`[DingTalk:${this.name}] ${action} failed: ${err instanceof Error ? err.message : err}
|
|
4836
|
+
`);
|
|
4837
|
+
}
|
|
4838
|
+
startReaction(chatId, messageId, sessionId) {
|
|
4710
4839
|
if (!messageId || !this.isConversationId(chatId))
|
|
4711
4840
|
return;
|
|
4712
|
-
this.
|
|
4841
|
+
if (!this.inboundMessageIds.has(messageId))
|
|
4842
|
+
return;
|
|
4843
|
+
const key = this.reactionKey(messageId, chatId);
|
|
4844
|
+
if (this.activeReactionKeys.has(key))
|
|
4845
|
+
return;
|
|
4846
|
+
this.activeReactionKeys.add(key);
|
|
4847
|
+
if (sessionId) {
|
|
4848
|
+
let keys = this.sessionReactionKeys.get(sessionId);
|
|
4849
|
+
if (!keys) {
|
|
4850
|
+
keys = /* @__PURE__ */ new Map();
|
|
4851
|
+
this.sessionReactionKeys.set(sessionId, keys);
|
|
4852
|
+
}
|
|
4853
|
+
keys.set(key, { messageId, chatId });
|
|
4854
|
+
}
|
|
4855
|
+
this.attachReaction(messageId, chatId).then(() => {
|
|
4856
|
+
if (!this.activeReactionKeys.has(key)) {
|
|
4857
|
+
void this.recallReaction(messageId, chatId).catch((err) => {
|
|
4858
|
+
this.logReactionFailure("late reaction recall", err);
|
|
4859
|
+
});
|
|
4860
|
+
}
|
|
4861
|
+
}).catch((err) => {
|
|
4862
|
+
this.activeReactionKeys.delete(key);
|
|
4863
|
+
this.logReactionFailure("reaction attach", err);
|
|
4713
4864
|
});
|
|
4714
4865
|
}
|
|
4715
|
-
|
|
4866
|
+
stopReaction(chatId, messageId, sessionId) {
|
|
4716
4867
|
if (!messageId || !this.isConversationId(chatId))
|
|
4717
4868
|
return;
|
|
4718
|
-
this.
|
|
4869
|
+
const key = this.reactionKey(messageId, chatId);
|
|
4870
|
+
if (sessionId) {
|
|
4871
|
+
const keys = this.sessionReactionKeys.get(sessionId);
|
|
4872
|
+
if (keys) {
|
|
4873
|
+
keys.delete(key);
|
|
4874
|
+
if (keys.size === 0)
|
|
4875
|
+
this.sessionReactionKeys.delete(sessionId);
|
|
4876
|
+
}
|
|
4877
|
+
}
|
|
4878
|
+
if (!this.activeReactionKeys.delete(key))
|
|
4879
|
+
return;
|
|
4880
|
+
this.recallReaction(messageId, chatId).catch((err) => {
|
|
4881
|
+
this.logReactionFailure("reaction recall", err);
|
|
4719
4882
|
});
|
|
4720
4883
|
}
|
|
4884
|
+
/** Recall reactions left behind when a session dies without terminal lifecycle events. */
|
|
4885
|
+
onSessionDied(sessionId) {
|
|
4886
|
+
const keys = this.sessionReactionKeys.get(sessionId);
|
|
4887
|
+
if (keys) {
|
|
4888
|
+
this.sessionReactionKeys.delete(sessionId);
|
|
4889
|
+
for (const [key, { messageId, chatId }] of keys) {
|
|
4890
|
+
if (this.activeReactionKeys.delete(key)) {
|
|
4891
|
+
void this.recallReaction(messageId, chatId).catch((err) => {
|
|
4892
|
+
this.logReactionFailure("session-death reaction recall", err);
|
|
4893
|
+
});
|
|
4894
|
+
}
|
|
4895
|
+
}
|
|
4896
|
+
}
|
|
4897
|
+
super.onSessionDied(sessionId);
|
|
4898
|
+
}
|
|
4899
|
+
onTaskLifecycle(event) {
|
|
4900
|
+
if (event.type === "started") {
|
|
4901
|
+
this.startReaction(event.chatId, event.messageId, event.sessionId);
|
|
4902
|
+
return;
|
|
4903
|
+
}
|
|
4904
|
+
if (isTerminalTaskLifecycleType(event.type)) {
|
|
4905
|
+
this.stopReaction(event.chatId, event.messageId, event.sessionId);
|
|
4906
|
+
}
|
|
4907
|
+
}
|
|
4908
|
+
onPromptStart(chatId, sessionId, messageId) {
|
|
4909
|
+
this.startReaction(chatId, messageId, sessionId);
|
|
4910
|
+
}
|
|
4911
|
+
onPromptEnd(chatId, sessionId, messageId) {
|
|
4912
|
+
this.stopReaction(chatId, messageId, sessionId);
|
|
4913
|
+
}
|
|
4721
4914
|
/**
|
|
4722
4915
|
* Extract quoted/referenced message context from a reply.
|
|
4723
4916
|
* DingTalk provides this via text.repliedMsg (newer) or quoteMessage (legacy).
|
|
@@ -4897,6 +5090,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
4897
5090
|
}
|
|
4898
5091
|
if (msgId) {
|
|
4899
5092
|
this.seenMessages.set(msgId, Date.now());
|
|
5093
|
+
this.rememberInboundMessageId(msgId);
|
|
4900
5094
|
}
|
|
4901
5095
|
const isGroup = data.conversationType === "2";
|
|
4902
5096
|
const sessionWebhook = typeof data.sessionWebhook === "string" ? data.sessionWebhook : void 0;
|
|
@@ -11,10 +11,11 @@ import {
|
|
|
11
11
|
sendMessage,
|
|
12
12
|
sendTyping,
|
|
13
13
|
uploadToCdn
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-5B2WNM6V.js";
|
|
15
15
|
import {
|
|
16
|
-
ChannelBase
|
|
17
|
-
|
|
16
|
+
ChannelBase,
|
|
17
|
+
isTerminalTaskLifecycleType
|
|
18
|
+
} from "./chunk-7DMQRPC7.js";
|
|
18
19
|
import "./chunk-UFC57OYT.js";
|
|
19
20
|
import "./chunk-K5PGHDBN.js";
|
|
20
21
|
import {
|
|
@@ -419,6 +420,7 @@ var WeixinChannel = class extends ChannelBase {
|
|
|
419
420
|
__name(this, "WeixinChannel");
|
|
420
421
|
}
|
|
421
422
|
abortController = null;
|
|
423
|
+
activeTypingChats = /* @__PURE__ */ new Set();
|
|
422
424
|
baseUrl;
|
|
423
425
|
token = "";
|
|
424
426
|
constructor(name, config, bridge, options) {
|
|
@@ -492,12 +494,19 @@ var WeixinChannel = class extends ChannelBase {
|
|
|
492
494
|
`);
|
|
493
495
|
}
|
|
494
496
|
onPromptStart(chatId) {
|
|
495
|
-
this.
|
|
496
|
-
});
|
|
497
|
+
this.startTyping(chatId);
|
|
497
498
|
}
|
|
498
499
|
onPromptEnd(chatId) {
|
|
499
|
-
this.
|
|
500
|
-
|
|
500
|
+
this.stopTyping(chatId);
|
|
501
|
+
}
|
|
502
|
+
onTaskLifecycle(event) {
|
|
503
|
+
if (event.type === "started") {
|
|
504
|
+
this.startTyping(event.chatId);
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
507
|
+
if (isTerminalTaskLifecycleType(event.type)) {
|
|
508
|
+
this.stopTyping(event.chatId);
|
|
509
|
+
}
|
|
501
510
|
}
|
|
502
511
|
async handleInboundWithMedia(envelope, image, file) {
|
|
503
512
|
if (image) {
|
|
@@ -597,6 +606,30 @@ var WeixinChannel = class extends ChannelBase {
|
|
|
597
606
|
this.abortController.abort();
|
|
598
607
|
this.abortController = null;
|
|
599
608
|
}
|
|
609
|
+
this.activeTypingChats.clear();
|
|
610
|
+
}
|
|
611
|
+
startTyping(chatId) {
|
|
612
|
+
if (this.activeTypingChats.has(chatId))
|
|
613
|
+
return;
|
|
614
|
+
this.activeTypingChats.add(chatId);
|
|
615
|
+
const controller = this.abortController;
|
|
616
|
+
void this.setTyping(chatId, true).then((started) => {
|
|
617
|
+
if (controller !== this.abortController || controller?.signal.aborted) {
|
|
618
|
+
return;
|
|
619
|
+
}
|
|
620
|
+
if (!started) {
|
|
621
|
+
this.activeTypingChats.delete(chatId);
|
|
622
|
+
return;
|
|
623
|
+
}
|
|
624
|
+
if (!this.activeTypingChats.has(chatId)) {
|
|
625
|
+
void this.setTyping(chatId, false);
|
|
626
|
+
}
|
|
627
|
+
});
|
|
628
|
+
}
|
|
629
|
+
stopTyping(chatId) {
|
|
630
|
+
if (!this.activeTypingChats.delete(chatId))
|
|
631
|
+
return;
|
|
632
|
+
void this.setTyping(chatId, false);
|
|
600
633
|
}
|
|
601
634
|
async setTyping(userId, typing) {
|
|
602
635
|
try {
|
|
@@ -610,13 +643,15 @@ var WeixinChannel = class extends ChannelBase {
|
|
|
610
643
|
}
|
|
611
644
|
}
|
|
612
645
|
if (!ticket)
|
|
613
|
-
return;
|
|
646
|
+
return false;
|
|
614
647
|
await sendTyping(this.baseUrl, this.token, {
|
|
615
648
|
ilink_user_id: userId,
|
|
616
649
|
typing_ticket: ticket,
|
|
617
650
|
status: typing ? TypingStatus.TYPING : TypingStatus.CANCEL
|
|
618
651
|
});
|
|
652
|
+
return true;
|
|
619
653
|
} catch {
|
|
654
|
+
return false;
|
|
620
655
|
}
|
|
621
656
|
}
|
|
622
657
|
};
|
|
@@ -8,40 +8,41 @@ import {
|
|
|
8
8
|
stopAndGetCapturedInput,
|
|
9
9
|
stopEarlyInputCapture
|
|
10
10
|
} from "./chunk-LWGLBVWA.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-6QTCOQX7.js";
|
|
12
12
|
import "./chunk-5P5XGNYH.js";
|
|
13
13
|
import "./chunk-K5PGHDBN.js";
|
|
14
14
|
import "./chunk-SKAZWEV5.js";
|
|
15
15
|
import "./chunk-QOMAHFYI.js";
|
|
16
16
|
import "./chunk-G7OQ3RFJ.js";
|
|
17
17
|
import "./chunk-LKWAVAB5.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-L7OJ3ZO3.js";
|
|
19
|
+
import "./chunk-R6RI2HIC.js";
|
|
20
20
|
import "./chunk-2MPVVENX.js";
|
|
21
21
|
import "./chunk-ZTQ26VBE.js";
|
|
22
22
|
import "./chunk-SJBIFVD2.js";
|
|
23
23
|
import "./chunk-MLZQVCF3.js";
|
|
24
|
-
import "./chunk-S5EQPDTM.js";
|
|
25
24
|
import "./chunk-LQ7TMOCE.js";
|
|
26
25
|
import "./chunk-E5A7LHNN.js";
|
|
26
|
+
import "./chunk-BPFJQGY7.js";
|
|
27
27
|
import "./chunk-GO6LNQXT.js";
|
|
28
28
|
import "./chunk-B236XPGF.js";
|
|
29
29
|
import "./chunk-YXK4GPYO.js";
|
|
30
30
|
import "./chunk-TOAUDIS7.js";
|
|
31
31
|
import "./chunk-NPQWQYU6.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-CHY5C5T4.js";
|
|
33
33
|
import "./chunk-E6US47KI.js";
|
|
34
34
|
import "./chunk-UWCTAVOD.js";
|
|
35
35
|
import "./chunk-OFEVLU4C.js";
|
|
36
36
|
import "./chunk-OMX7CUOE.js";
|
|
37
37
|
import "./chunk-MOUXUCXQ.js";
|
|
38
38
|
import "./chunk-BZHLWC6T.js";
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-DG573EOO.js";
|
|
40
|
+
import "./chunk-MTNTVOJR.js";
|
|
41
41
|
import "./chunk-TENOUWY2.js";
|
|
42
42
|
import "./chunk-GLPV75ES.js";
|
|
43
43
|
import "./chunk-22IFUCVR.js";
|
|
44
44
|
import "./chunk-T42ACHFI.js";
|
|
45
|
+
import "./chunk-SIUQ3YYX.js";
|
|
45
46
|
import "./chunk-YTFBURQD.js";
|
|
46
47
|
import "./chunk-YPCPZSZB.js";
|
|
47
48
|
import "./chunk-IRJWHZWU.js";
|
|
@@ -5,31 +5,30 @@ import {
|
|
|
5
5
|
} from "./chunk-XKSCTXPK.js";
|
|
6
6
|
import {
|
|
7
7
|
CommitAttributionService,
|
|
8
|
-
DEFAULT_DIFF_OPTIONS,
|
|
9
8
|
FileEncoding,
|
|
10
9
|
StructuredToolError,
|
|
11
10
|
checkPriorRead,
|
|
12
|
-
|
|
11
|
+
createPatchSmart,
|
|
13
12
|
detectLineEnding,
|
|
14
13
|
getDiffStat,
|
|
15
14
|
needsUtf8Bom,
|
|
16
15
|
safeLiteralReplace
|
|
17
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-6QTCOQX7.js";
|
|
18
17
|
import "./chunk-5P5XGNYH.js";
|
|
19
18
|
import "./chunk-K5PGHDBN.js";
|
|
20
19
|
import "./chunk-SKAZWEV5.js";
|
|
21
20
|
import "./chunk-QOMAHFYI.js";
|
|
22
21
|
import "./chunk-G7OQ3RFJ.js";
|
|
23
22
|
import "./chunk-LKWAVAB5.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-L7OJ3ZO3.js";
|
|
24
|
+
import "./chunk-R6RI2HIC.js";
|
|
26
25
|
import "./chunk-2MPVVENX.js";
|
|
27
26
|
import "./chunk-ZTQ26VBE.js";
|
|
28
27
|
import "./chunk-SJBIFVD2.js";
|
|
29
28
|
import "./chunk-MLZQVCF3.js";
|
|
30
|
-
import "./chunk-S5EQPDTM.js";
|
|
31
29
|
import "./chunk-LQ7TMOCE.js";
|
|
32
30
|
import "./chunk-E5A7LHNN.js";
|
|
31
|
+
import "./chunk-BPFJQGY7.js";
|
|
33
32
|
import "./chunk-GO6LNQXT.js";
|
|
34
33
|
import "./chunk-B236XPGF.js";
|
|
35
34
|
import "./chunk-YXK4GPYO.js";
|
|
@@ -42,7 +41,7 @@ import {
|
|
|
42
41
|
getLanguageFromFilePath,
|
|
43
42
|
getSpecificMimeType,
|
|
44
43
|
logFileOperation
|
|
45
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-CHY5C5T4.js";
|
|
46
45
|
import "./chunk-E6US47KI.js";
|
|
47
46
|
import "./chunk-UWCTAVOD.js";
|
|
48
47
|
import "./chunk-OFEVLU4C.js";
|
|
@@ -52,16 +51,17 @@ import {
|
|
|
52
51
|
isTeamAutoMemPath
|
|
53
52
|
} from "./chunk-MOUXUCXQ.js";
|
|
54
53
|
import "./chunk-BZHLWC6T.js";
|
|
55
|
-
import "./chunk-
|
|
54
|
+
import "./chunk-DG573EOO.js";
|
|
56
55
|
import {
|
|
57
56
|
BaseDeclarativeTool,
|
|
58
57
|
ToolDisplayNames,
|
|
59
58
|
ToolNames
|
|
60
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-MTNTVOJR.js";
|
|
61
60
|
import "./chunk-TENOUWY2.js";
|
|
62
61
|
import "./chunk-GLPV75ES.js";
|
|
63
62
|
import "./chunk-22IFUCVR.js";
|
|
64
63
|
import "./chunk-T42ACHFI.js";
|
|
64
|
+
import "./chunk-SIUQ3YYX.js";
|
|
65
65
|
import "./chunk-YTFBURQD.js";
|
|
66
66
|
import "./chunk-YPCPZSZB.js";
|
|
67
67
|
import "./chunk-IRJWHZWU.js";
|
|
@@ -641,13 +641,12 @@ var EditToolInvocation = class {
|
|
|
641
641
|
throw new StructuredToolError(editData.error.raw, editData.error.type);
|
|
642
642
|
}
|
|
643
643
|
const fileName = path.basename(this.params.file_path);
|
|
644
|
-
const fileDiff =
|
|
644
|
+
const fileDiff = createPatchSmart(
|
|
645
645
|
fileName,
|
|
646
646
|
editData.currentContent ?? "",
|
|
647
647
|
editData.newContent,
|
|
648
648
|
"Current",
|
|
649
|
-
"Proposed"
|
|
650
|
-
DEFAULT_DIFF_OPTIONS
|
|
649
|
+
"Proposed"
|
|
651
650
|
);
|
|
652
651
|
const confirmationDetails = {
|
|
653
652
|
type: "edit",
|
|
@@ -792,14 +791,12 @@ var EditToolInvocation = class {
|
|
|
792
791
|
originallyProposedContent,
|
|
793
792
|
editData.newContent
|
|
794
793
|
);
|
|
795
|
-
const fileDiff =
|
|
794
|
+
const fileDiff = createPatchSmart(
|
|
796
795
|
fileName,
|
|
797
796
|
editData.currentContent ?? "",
|
|
798
|
-
// Should not be null here if not isNewFile
|
|
799
797
|
editData.newContent,
|
|
800
798
|
"Current",
|
|
801
|
-
"Proposed"
|
|
802
|
-
DEFAULT_DIFF_OPTIONS
|
|
799
|
+
"Proposed"
|
|
803
800
|
);
|
|
804
801
|
const displayResult = {
|
|
805
802
|
fileDiff,
|
|
@@ -171,6 +171,7 @@ var en_default = {
|
|
|
171
171
|
"toolDisplayName.TaskStop": "toolDisplayName.TaskStop",
|
|
172
172
|
"toolDisplayName.TeamCreate": "toolDisplayName.TeamCreate",
|
|
173
173
|
"toolDisplayName.TeamDelete": "toolDisplayName.TeamDelete",
|
|
174
|
+
"toolDisplayName.TeamPlanApproval": "toolDisplayName.TeamPlanApproval",
|
|
174
175
|
"toolDisplayName.SendMessage": "toolDisplayName.SendMessage",
|
|
175
176
|
"toolDisplayName.StructuredOutput": "toolDisplayName.StructuredOutput",
|
|
176
177
|
"toolDisplayName.Monitor": "toolDisplayName.Monitor",
|
|
@@ -1806,6 +1807,7 @@ var en_default = {
|
|
|
1806
1807
|
"Hide tool output and thinking for a cleaner view (toggle with Ctrl+O).": "Hide tool output and thinking for a cleaner view (toggle with Ctrl+O).",
|
|
1807
1808
|
"Press Ctrl+O to show full tool output": "Press Ctrl+O to show full tool output",
|
|
1808
1809
|
"Switch to plan mode or exit plan mode": "Switch to plan mode or exit plan mode",
|
|
1810
|
+
"Set how hard reasoning-capable models think ({{tiers}}); mapped and clamped per provider.": "Set how hard reasoning-capable models think ({{tiers}}); mapped and clamped per provider.",
|
|
1809
1811
|
"Set a goal \u2014 keep working until the condition is met": "Set a goal \u2014 keep working until the condition is met",
|
|
1810
1812
|
"Exited plan mode. Previous approval mode restored.": "Exited plan mode. Previous approval mode restored.",
|
|
1811
1813
|
"Enabled plan mode. The agent will analyze and plan without executing tools.": "Enabled plan mode. The agent will analyze and plan without executing tools.",
|
|
@@ -4,45 +4,46 @@ import {
|
|
|
4
4
|
GitWorktreeService,
|
|
5
5
|
writeWorktreeSession,
|
|
6
6
|
writeWorktreeSessionMarker
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-6QTCOQX7.js";
|
|
8
8
|
import "./chunk-5P5XGNYH.js";
|
|
9
9
|
import "./chunk-K5PGHDBN.js";
|
|
10
10
|
import "./chunk-SKAZWEV5.js";
|
|
11
11
|
import "./chunk-QOMAHFYI.js";
|
|
12
12
|
import "./chunk-G7OQ3RFJ.js";
|
|
13
13
|
import "./chunk-LKWAVAB5.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-L7OJ3ZO3.js";
|
|
15
|
+
import "./chunk-R6RI2HIC.js";
|
|
16
16
|
import "./chunk-2MPVVENX.js";
|
|
17
17
|
import "./chunk-ZTQ26VBE.js";
|
|
18
18
|
import "./chunk-SJBIFVD2.js";
|
|
19
19
|
import "./chunk-MLZQVCF3.js";
|
|
20
|
-
import "./chunk-S5EQPDTM.js";
|
|
21
20
|
import "./chunk-LQ7TMOCE.js";
|
|
22
21
|
import "./chunk-E5A7LHNN.js";
|
|
22
|
+
import "./chunk-BPFJQGY7.js";
|
|
23
23
|
import "./chunk-GO6LNQXT.js";
|
|
24
24
|
import "./chunk-B236XPGF.js";
|
|
25
25
|
import "./chunk-YXK4GPYO.js";
|
|
26
26
|
import "./chunk-TOAUDIS7.js";
|
|
27
27
|
import "./chunk-NPQWQYU6.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-CHY5C5T4.js";
|
|
29
29
|
import "./chunk-E6US47KI.js";
|
|
30
30
|
import "./chunk-UWCTAVOD.js";
|
|
31
31
|
import "./chunk-OFEVLU4C.js";
|
|
32
32
|
import "./chunk-OMX7CUOE.js";
|
|
33
33
|
import "./chunk-MOUXUCXQ.js";
|
|
34
34
|
import "./chunk-BZHLWC6T.js";
|
|
35
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-DG573EOO.js";
|
|
36
36
|
import {
|
|
37
37
|
BaseDeclarativeTool,
|
|
38
38
|
BaseToolInvocation,
|
|
39
39
|
ToolDisplayNames,
|
|
40
40
|
ToolNames
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-MTNTVOJR.js";
|
|
42
42
|
import "./chunk-TENOUWY2.js";
|
|
43
43
|
import "./chunk-GLPV75ES.js";
|
|
44
44
|
import "./chunk-22IFUCVR.js";
|
|
45
45
|
import "./chunk-T42ACHFI.js";
|
|
46
|
+
import "./chunk-SIUQ3YYX.js";
|
|
46
47
|
import "./chunk-YTFBURQD.js";
|
|
47
48
|
import "./chunk-YPCPZSZB.js";
|
|
48
49
|
import "./chunk-IRJWHZWU.js";
|
|
@@ -1,47 +1,48 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
-
import "./chunk-
|
|
3
|
+
import "./chunk-6QTCOQX7.js";
|
|
4
4
|
import "./chunk-5P5XGNYH.js";
|
|
5
5
|
import "./chunk-K5PGHDBN.js";
|
|
6
6
|
import "./chunk-SKAZWEV5.js";
|
|
7
7
|
import "./chunk-QOMAHFYI.js";
|
|
8
8
|
import "./chunk-G7OQ3RFJ.js";
|
|
9
9
|
import "./chunk-LKWAVAB5.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-L7OJ3ZO3.js";
|
|
11
|
+
import "./chunk-R6RI2HIC.js";
|
|
12
12
|
import "./chunk-2MPVVENX.js";
|
|
13
13
|
import "./chunk-ZTQ26VBE.js";
|
|
14
14
|
import "./chunk-SJBIFVD2.js";
|
|
15
15
|
import "./chunk-MLZQVCF3.js";
|
|
16
|
+
import "./chunk-LQ7TMOCE.js";
|
|
17
|
+
import "./chunk-E5A7LHNN.js";
|
|
16
18
|
import {
|
|
17
19
|
buildSubagentPlanToolBlockedResult,
|
|
18
20
|
isPlanLifecycleToolUnavailableInSubagent
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-LQ7TMOCE.js";
|
|
21
|
-
import "./chunk-E5A7LHNN.js";
|
|
21
|
+
} from "./chunk-BPFJQGY7.js";
|
|
22
22
|
import "./chunk-GO6LNQXT.js";
|
|
23
23
|
import "./chunk-B236XPGF.js";
|
|
24
24
|
import "./chunk-YXK4GPYO.js";
|
|
25
25
|
import "./chunk-TOAUDIS7.js";
|
|
26
26
|
import "./chunk-NPQWQYU6.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-CHY5C5T4.js";
|
|
28
28
|
import "./chunk-E6US47KI.js";
|
|
29
29
|
import "./chunk-UWCTAVOD.js";
|
|
30
30
|
import "./chunk-OFEVLU4C.js";
|
|
31
31
|
import "./chunk-OMX7CUOE.js";
|
|
32
32
|
import "./chunk-MOUXUCXQ.js";
|
|
33
33
|
import "./chunk-BZHLWC6T.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-DG573EOO.js";
|
|
35
35
|
import {
|
|
36
36
|
BaseDeclarativeTool,
|
|
37
37
|
BaseToolInvocation,
|
|
38
38
|
ToolDisplayNames,
|
|
39
39
|
ToolNames
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-MTNTVOJR.js";
|
|
41
41
|
import "./chunk-TENOUWY2.js";
|
|
42
42
|
import "./chunk-GLPV75ES.js";
|
|
43
43
|
import "./chunk-22IFUCVR.js";
|
|
44
44
|
import "./chunk-T42ACHFI.js";
|
|
45
|
+
import "./chunk-SIUQ3YYX.js";
|
|
45
46
|
import "./chunk-YTFBURQD.js";
|
|
46
47
|
import "./chunk-YPCPZSZB.js";
|
|
47
48
|
import "./chunk-IRJWHZWU.js";
|