@qwen-code/qwen-code 0.19.3 → 0.19.4
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/loop/SKILL.md +22 -3
- package/bundled/loop/SKILL.test.ts +20 -0
- package/bundled/loop/autonomous-loop.test.ts +59 -0
- package/bundled/loop/autonomous-loop.ts +102 -0
- package/bundled/loop/loop-task-file.test.ts +1064 -0
- package/bundled/loop/loop-task-file.ts +404 -0
- package/bundled/loop/loop-tick-resolver.test.ts +906 -0
- package/bundled/loop/loop-tick-resolver.ts +416 -0
- package/bundled/qc-helper/SKILL.md +12 -5
- package/bundled/qc-helper/docs/configuration/auth.md +1 -1
- package/bundled/qc-helper/docs/configuration/settings.md +40 -26
- package/bundled/qc-helper/docs/features/approval-mode.md +3 -0
- package/bundled/qc-helper/docs/features/auto-mode.md +40 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +81 -18
- package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
- package/bundled/qc-helper/docs/features/code-review.md +17 -61
- package/bundled/qc-helper/docs/features/commands.md +6 -6
- package/bundled/qc-helper/docs/features/hooks.md +6 -1
- package/bundled/qc-helper/docs/features/mcp.md +3 -1
- package/bundled/qc-helper/docs/features/memory.md +1 -1
- package/bundled/qc-helper/docs/features/scheduled-tasks.md +10 -0
- package/bundled/qc-helper/docs/features/status-line.md +3 -3
- package/bundled/qc-helper/docs/ide-integration/ide-integration.md +4 -4
- package/bundled/qc-helper/docs/qwen-serve.md +19 -0
- package/bundled/qc-helper/docs/support/troubleshooting.md +6 -0
- package/bundled/review/DESIGN.md +21 -26
- package/bundled/review/SKILL.md +45 -129
- package/chunks/MaxSizedBox-ERTNFI22.js +68 -0
- package/chunks/{StandaloneSessionPicker-Z52JTYST.js → StandaloneSessionPicker-Y5NGRLRY.js} +48 -42
- package/chunks/{acpAgent-7RZUOWOM.js → acpAgent-UMN6OYTR.js} +1319 -361
- package/chunks/{agent-4FG7WTHJ.js → agent-56DZU4ZU.js} +30 -25
- package/chunks/agent-headless-SR7N2IJG.js +61 -0
- package/chunks/{anthropicContentGenerator-PFITVL7Y.js → anthropicContentGenerator-5OZFO6WQ.js} +11 -8
- package/chunks/{artifact-tool-D2X7G3C3.js → artifact-tool-JVZMHA4B.js} +3 -3
- package/chunks/{askUserQuestion-UGETICJQ.js → askUserQuestion-CMJZ2F3D.js} +2 -2
- package/chunks/bridge-AUHNFOUS.js +72 -0
- package/chunks/{ca-IUFWESZL.js → ca-RYOETBUW.js} +9 -9
- package/chunks/channel-worker-supervisor-A74FV522.js +308 -0
- package/chunks/{chunk-T4T2FNV4.js → chunk-2X2JUE47.js} +2 -2
- package/chunks/{chunk-BX5YO7UW.js → chunk-4VZH35PN.js} +540 -370
- package/chunks/{chunk-M2U5NM24.js → chunk-54YZOP7P.js} +309 -72
- package/chunks/chunk-5P5XGNYH.js +93 -0
- package/chunks/{chunk-QWFNTRH4.js → chunk-6AQR7732.js} +1 -1
- package/chunks/{chunk-HZT4UCFB.js → chunk-6CIIP6OE.js} +4 -4
- package/chunks/{chunk-ADCIHOQZ.js → chunk-6TLY5W3B.js} +16 -8
- package/chunks/{chunk-BXSHL2SF.js → chunk-73H73ASU.js} +1 -1
- package/chunks/{chunk-3TV3HUWZ.js → chunk-75X2VLSH.js} +60 -30
- package/chunks/{chunk-6V4NZFUS.js → chunk-7KPI4LAI.js} +5 -5
- package/chunks/{chunk-PDE7CSDS.js → chunk-7VPC7D7O.js} +2 -2
- package/chunks/chunk-AHNXYU4O.js +24 -0
- package/chunks/{chunk-UX4SGCGN.js → chunk-AVQDCKNF.js} +96 -22
- package/chunks/{chunk-HYCC3XM3.js → chunk-B236XPGF.js} +1 -1
- package/chunks/{chunk-N4EJFBN5.js → chunk-B7KGXIPZ.js} +419 -262
- package/chunks/{chunk-YAINVQ3Q.js → chunk-BFG6OZN7.js} +17392 -16335
- package/chunks/{chunk-5DWXLGOM.js → chunk-BJBWRCSK.js} +1 -1
- package/chunks/{chunk-BTLJ2MF5.js → chunk-BNJLLAQ7.js} +3 -3
- package/chunks/{chunk-UYT3MWEB.js → chunk-BQNJBEUA.js} +16 -2
- package/chunks/{chunk-SKQZZVAV.js → chunk-BZHLWC6T.js} +2 -2
- package/chunks/{chunk-HPZTOP4I.js → chunk-C2IHHGBZ.js} +131 -21
- package/chunks/chunk-CG7SVARK.js +367 -0
- package/chunks/{chunk-CNLEDYE3.js → chunk-CS5XYDBO.js} +5 -5
- package/chunks/{chunk-O75BHFQW.js → chunk-CUGEBAKG.js} +2 -2
- package/chunks/{chunk-U3KSMM7G.js → chunk-D5KISTLW.js} +339 -383
- package/chunks/{chunk-STUWFKGD.js → chunk-DQ74W65K.js} +431 -535
- package/chunks/{chunk-VVLOGDB6.js → chunk-DX3TKXNT.js} +2 -2
- package/chunks/chunk-E5A7LHNN.js +51 -0
- package/chunks/{chunk-3PJXIDKI.js → chunk-E6US47KI.js} +3 -27
- package/chunks/chunk-EDAGQADF.js +21 -0
- package/chunks/{chunk-QBZ22PQX.js → chunk-EWALXUAD.js} +3 -1
- package/chunks/{chunk-4QK3O43S.js → chunk-FNLXLI4I.js} +4 -4
- package/chunks/{chunk-I2LYBGNI.js → chunk-FYKX6XOT.js} +1 -1
- package/chunks/{chunk-QLDPRILK.js → chunk-G7OQ3RFJ.js} +3 -3
- package/chunks/{chunk-R2BXK7SX.js → chunk-GHOTR7HL.js} +6 -1
- package/chunks/{chunk-L7OKCI7T.js → chunk-GICCHL2Q.js} +15 -1
- package/chunks/{chunk-KMGMKW5Q.js → chunk-GLPV75ES.js} +9 -3
- package/chunks/{chunk-LD2XBG6Z.js → chunk-GO6LNQXT.js} +1 -39
- package/chunks/chunk-HI55Z6PR.js +3523 -0
- package/chunks/{chunk-QNKBEJO2.js → chunk-HJDF3ZVU.js} +2776 -1289
- package/chunks/{chunk-JJXWTVSK.js → chunk-HRZB5CSC.js} +34 -1
- package/chunks/{chunk-I4H7PRWQ.js → chunk-HTWHAN44.js} +1 -1
- package/chunks/{chunk-EJYJYJZ2.js → chunk-IRJWHZWU.js} +3 -70
- package/chunks/{chunk-CKQA6AWF.js → chunk-J3F7X3LW.js} +1 -1
- package/chunks/{chunk-QI7GOGJR.js → chunk-KKQWC6WS.js} +1 -1
- package/chunks/{chunk-VBZ452JT.js → chunk-KVPFPC4J.js} +494 -114
- package/chunks/{chunk-NDOC6M5S.js → chunk-L7QPM2YD.js} +2 -2
- package/chunks/{chunk-SLNKLLEO.js → chunk-L7VH7HQA.js} +12 -8
- package/chunks/{chunk-BVSVIN45.js → chunk-LKWAVAB5.js} +3 -3
- package/chunks/{chunk-ZP6UKOPB.js → chunk-LWGLBVWA.js} +1 -1
- package/chunks/{chunk-SBBN4BWR.js → chunk-MEQWZGK5.js} +1 -1
- package/chunks/{chunk-FKAVULLM.js → chunk-MKHC4BYZ.js} +58 -10
- package/chunks/{chunk-UFLGERMB.js → chunk-MNDTD5E5.js} +178 -124
- package/chunks/{chunk-RD6YJJJ6.js → chunk-MOUXUCXQ.js} +1 -1
- package/chunks/{chunk-EDMZZFDU.js → chunk-MVZXZWGT.js} +905 -795
- package/chunks/chunk-MX2YXRER.js +44 -0
- package/chunks/{chunk-JVHEVCAU.js → chunk-ND25GXEU.js} +23 -6
- package/chunks/chunk-NIOPRZNN.js +27 -0
- package/chunks/{chunk-DDMOU62Q.js → chunk-NPQWQYU6.js} +1 -1
- package/chunks/{chunk-PR32FRT6.js → chunk-OAFUMTWW.js} +3 -3
- package/chunks/chunk-OJCECIJA.js +238 -0
- package/chunks/{chunk-GGBIN5K7.js → chunk-PIYV6COW.js} +1 -1
- package/chunks/{chunk-CF6BB3LT.js → chunk-PPFWEV7G.js} +10 -1
- package/chunks/{chunk-4LUZAKMK.js → chunk-Q7VHIRDD.js} +1 -1
- package/chunks/{chunk-ODLIHNOY.js → chunk-QAFQLTXG.js} +1 -1
- package/chunks/{chunk-Y6YMRS3U.js → chunk-QMIND2AS.js} +3 -3
- package/chunks/{chunk-XJYUPHRC.js → chunk-QOMAHFYI.js} +3 -3
- package/chunks/{chunk-J37FGIOA.js → chunk-QXPI7FEC.js} +38 -4
- package/chunks/chunk-RM3PGSGL.js +66 -0
- package/chunks/chunk-RNBYOUGV.js +42 -0
- package/chunks/chunk-S5EQPDTM.js +91 -0
- package/chunks/chunk-SEZC2725.js +36 -0
- package/chunks/{chunk-FNJ7BDPH.js → chunk-SFN4TEHY.js} +10 -7
- package/chunks/{chunk-O2VBQ3Y2.js → chunk-SJBIFVD2.js} +2 -2
- package/chunks/chunk-SYCJMSIJ.js +82 -0
- package/chunks/{chunk-JE5FVRPC.js → chunk-T22H4V4R.js} +48 -23
- package/chunks/{chunk-3227DZO4.js → chunk-T42ACHFI.js} +1 -1
- package/chunks/{chunk-UO5GVXQE.js → chunk-TENOUWY2.js} +3 -3
- package/chunks/{chunk-JOLIREYR.js → chunk-TOAUDIS7.js} +1 -1
- package/chunks/{chunk-J7FA27RO.js → chunk-TTFNVEO5.js} +3 -3
- package/chunks/{chunk-S7AKE7HL.js → chunk-UANCYOOQ.js} +63 -9
- package/chunks/{chunk-BUUQ5HPX.js → chunk-UQFP2FEF.js} +1 -1
- package/chunks/{chunk-R5OP2ATH.js → chunk-UQYOMM6J.js} +11 -11
- package/chunks/{chunk-J33ZR6OJ.js → chunk-UT5JU5DJ.js} +16 -16
- package/chunks/{chunk-QE6KJYLT.js → chunk-VKGG724L.js} +122 -25
- package/chunks/{chunk-SMXULRAN.js → chunk-VXGPYF7U.js} +1 -1
- package/chunks/{chunk-MNF6S5PR.js → chunk-W2ZOAX7F.js} +4 -4
- package/chunks/{chunk-GT2FGICD.js → chunk-W6X4FGWX.js} +1 -1
- package/chunks/{chunk-SMYQZVZ3.js → chunk-XCUFHOAD.js} +1 -1
- package/chunks/{chunk-K5XU6E4T.js → chunk-XKSCTXPK.js} +2 -2
- package/chunks/{chunk-FXKVLFFY.js → chunk-YBDZ63KI.js} +3 -3
- package/chunks/{chunk-BKXBARJZ.js → chunk-YPCPZSZB.js} +1 -1
- package/chunks/chunk-YTFBURQD.js +313 -0
- package/chunks/{chunk-NL4C3H6C.js → chunk-YXK4GPYO.js} +1 -1
- package/chunks/{chunk-F3ZYSEY6.js → chunk-ZJP5T7IA.js} +3 -3
- package/chunks/{chunk-RYLJU2DY.js → chunk-ZN5T4BHI.js} +1 -1
- package/chunks/{chunk-RRFZXMYP.js → chunk-ZXCVPMIK.js} +553 -138
- package/chunks/{computer-use-JGB36FDW.js → computer-use-VWN5HH6A.js} +33 -28
- package/chunks/contextCommand-DFFG5KDJ.js +66 -0
- package/chunks/{cron-create-SKEY55RG.js → cron-create-CSSWJ67I.js} +4 -4
- package/chunks/{cron-delete-I3NAT32Z.js → cron-delete-E56CFQ7A.js} +4 -4
- package/chunks/{cron-list-6XRRL6TH.js → cron-list-BKSINY6Y.js} +4 -4
- package/chunks/daemon-5T6IHWJV.js +8430 -0
- package/chunks/daemon-status-provider-V5UY7O7J.js +70 -0
- package/chunks/{de-EOW5PVHF.js → de-HB5NJXGB.js} +9 -9
- package/chunks/{dist-NHEYYB2B.js → dist-2HDL5SHQ.js} +2 -2
- package/chunks/{dist-663NZ6MI.js → dist-B7SSDVWT.js} +116 -11
- package/chunks/{dist-PQPZ5Q4N.js → dist-BL3SL665.js} +20 -9
- package/chunks/{dist-J37VXPLD.js → dist-TAVAGZU6.js} +40 -15
- package/chunks/{dist-LB6OGPVM.js → dist-XBOVZ3R5.js} +26 -5
- package/chunks/{earlyInputCapture-44RISVVJ.js → earlyInputCapture-VVYU4FDO.js} +31 -26
- package/chunks/{edit-NN6GM5DT.js → edit-F35PTMBA.js} +35 -29
- package/chunks/{en-HPWEJBTR.js → en-FZREZFPO.js} +30 -10
- package/chunks/{enter-worktree-PB3O2C7D.js → enter-worktree-3DIW7EGJ.js} +30 -25
- package/chunks/{enterPlanMode-YQFNNSUA.js → enterPlanMode-QNXT77KP.js} +40 -25
- package/chunks/{errors-LS7XU5DZ.js → errors-M53YG76R.js} +32 -27
- package/chunks/{exit-worktree-E2FTNSBK.js → exit-worktree-BSDWNWHZ.js} +30 -25
- package/chunks/{exitPlanMode-GLYK2BUB.js → exitPlanMode-EL7AY327.js} +54 -33
- package/chunks/{fast-path-WQ6M7LI7.js → fast-path-DUCSMUFW.js} +30 -13
- package/chunks/{fast-path-settings-OAGU3X5H.js → fast-path-settings-UQLRFDQP.js} +2 -2
- package/chunks/{fr-BN5NKSAC.js → fr-XY3NQFCM.js} +9 -9
- package/chunks/{gemini-2YFLVA2M.js → gemini-F3IERB37.js} +80 -67
- package/chunks/{geminiContentGenerator-XV6SV6CD.js → geminiContentGenerator-6OULAKFQ.js} +4 -4
- package/chunks/{glob-2H6CDDMK.js → glob-ZMLFTD4T.js} +30 -25
- package/chunks/{grep-VXIUXM3C.js → grep-H5X66EI7.js} +30 -25
- package/chunks/initializer-LEOT2OLH.js +66 -0
- package/chunks/{ja-7DEUB2TS.js → ja-J7YAG7SA.js} +9 -9
- package/chunks/{keychain-token-storage-YLMDLKXT.js → keychain-token-storage-GPAKRDKQ.js} +2 -2
- package/chunks/list-M3DKXML6.js +70 -0
- package/chunks/loadedSettingsAdapter-OKMQFGGG.js +65 -0
- package/chunks/{loop-wakeup-CITGGQHA.js → loop-wakeup-FPBAVVPR.js} +5 -5
- package/chunks/{ls-R5WP4BGZ.js → ls-UGWQXPTY.js} +4 -4
- package/chunks/{lsp-GSICJMMW.js → lsp-24WV7NXB.js} +2 -2
- package/chunks/{monitor-HKLRS2HQ.js → monitor-ARL5P45R.js} +32 -26
- package/chunks/nonInteractiveCli-NUVLF3YR.js +108 -0
- package/chunks/{notebook-edit-Y6SKSGTT.js → notebook-edit-ANTZ2DDY.js} +31 -26
- package/chunks/{openaiContentGenerator-J7G2FYJT.js → openaiContentGenerator-TFGMKGHN.js} +15 -13
- package/chunks/pidfile-AWTL4C63.js +72 -0
- package/chunks/{pt-TNZRNLQB.js → pt-6RTAA6SS.js} +9 -9
- package/chunks/{qwenContentGenerator-5XIEM5GV.js → qwenContentGenerator-6QWAYTWS.js} +32 -27
- package/chunks/{qwenOAuth2-AG3PFFLZ.js → qwenOAuth2-LWLA6MQG.js} +5 -4
- package/chunks/{read-file-J7D552ZJ.js → read-file-EJY73XQ3.js} +11 -10
- package/chunks/{read-mcp-resource-DQQW7H7T.js → read-mcp-resource-NCBTPP7X.js} +2 -2
- package/chunks/ripGrep-HC4SA6CQ.js +59 -0
- package/chunks/{ru-NIAUBKCN.js → ru-AUBGJ2C4.js} +9 -9
- package/chunks/{run-qwen-serve-SGEEVMXD.js → run-qwen-serve-AGLZ642J.js} +454 -94
- package/chunks/{scheduler-7CQI3S4Q.js → scheduler-TURO7NGY.js} +30 -25
- package/chunks/{send-message-EE4TWKVU.js → send-message-3S2NYS3O.js} +6 -4
- package/chunks/serve-5DAMOIDW.js +70 -0
- package/chunks/{server-4QMUWXPW.js → server-4AGEK2HC.js} +4098 -1173
- package/chunks/{session-NRO7UFOY.js → session-7ZOQUC4Y.js} +204 -64
- package/chunks/{settings-SGWRDQSC.js → settings-DR4V6L5Y.js} +34 -29
- package/chunks/{shell-62ANGIHL.js → shell-H5WFKUXH.js} +30 -25
- package/chunks/{skill-VWAQAWW6.js → skill-ANHU5ZCR.js} +13 -12
- package/chunks/spawnChannel-VN5LJV7Z.js +68 -0
- package/chunks/{src-KUV5J5Q2.js → src-OVZLTVVM.js} +114 -30
- package/chunks/{startInteractiveUI-6EYJN3JV.js → startInteractiveUI-OA22V32P.js} +15970 -15430
- package/chunks/{syntheticOutput-T5YHQ6S2.js → syntheticOutput-SV7GBHZ5.js} +3 -3
- package/chunks/{task-create-BLY7RHXX.js → task-create-W2H2UJCH.js} +8 -7
- package/chunks/{task-list-3QUYNVYR.js → task-list-THBOPV4G.js} +7 -6
- package/chunks/{task-stop-U4RATK2V.js → task-stop-33FVCNCJ.js} +2 -2
- package/chunks/{task-update-U54O7KJX.js → task-update-LVFQLXEI.js} +8 -7
- package/chunks/{team-create-LPOGCPM7.js → team-create-OYL5CAQO.js} +30 -25
- package/chunks/{team-delete-LKBYPASD.js → team-delete-NTUQ25UY.js} +7 -6
- package/chunks/theme-manager-XCMPF2SI.js +63 -0
- package/chunks/{todoWrite-OYXKTVYN.js → todoWrite-SEPO2RI3.js} +4 -4
- package/chunks/{tool-search-YPUFJ3ZQ.js → tool-search-YXW55X6Z.js} +36 -11
- package/chunks/{trustedFolders-5B24TMEA.js → trustedFolders-TEPGM5YL.js} +31 -26
- package/chunks/{validateNonInterActiveAuth-BTDTYOVT.js → validateNonInterActiveAuth-OQIS7WUE.js} +65 -55
- package/chunks/{web-fetch-EEB5LZYU.js → web-fetch-OE7LHURA.js} +5 -4
- package/chunks/{workflow-LAWIW5LI.js → workflow-RTUWORAP.js} +67 -39
- package/chunks/workspace-providers-status-DM2XANVB.js +67 -0
- package/chunks/workspace-service-VKBI2KZD.js +77 -0
- package/chunks/{write-file-PCV226DJ.js → write-file-WGALQ53L.js} +35 -30
- package/chunks/{zh-TW-TR3XYGE5.js → zh-TW-6GIKXEAN.js} +30 -10
- package/chunks/{zh-5EUYXASN.js → zh-V3B4TFWL.js} +30 -10
- package/cli.js +6 -6
- package/locales/ca.js +13 -13
- package/locales/de.js +13 -13
- package/locales/en.js +49 -15
- package/locales/fr.js +13 -14
- package/locales/ja.js +13 -14
- package/locales/pt.js +13 -13
- package/locales/ru.js +13 -13
- package/locales/zh-TW.js +47 -14
- package/locales/zh.js +47 -14
- 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 +15 -6
- package/patches/chrome-devtools-mcp+1.4.0.patch +31 -0
- package/postinstall.js +50 -0
- package/web-shell/assets/{arc-DA7r8Ueo.js → arc-Det5Ccum.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-ZDUxPtZ2.js → architectureDiagram-3BPJPVTR-DqNWVFpl.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-vrtOf1kJ.js → blockDiagram-GPEHLZMM-CYl7tYBi.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BHFjzIi4.js → c4Diagram-AAUBKEIU-DaAEi0NQ.js} +1 -1
- package/web-shell/assets/channel-Bm0bFauD.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-mdeQVz59.js → chunk-2J33WTMH-Df2CDEE2.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BkKMlwBX.js → chunk-4BX2VUAB-DNBFcyL2.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-B7bnXNfu.js → chunk-55IACEB6-BKjF-0HI.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DGz8Mm6i.js → chunk-727SXJPM-DYwAwfIM.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BQAydUNk.js → chunk-AQP2D5EJ-C6FswLqy.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-GHr2LN_p.js → chunk-FMBD7UC4-DRWAcZSY.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-7R91lnUx.js → chunk-ND2GUHAM-AoL16mNR.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-aTJD3lSQ.js → chunk-QZHKN3VN-a8PtLMck.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK--NgUfb55.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2--NgUfb55.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BTf8t1RL.js → cose-bilkent-S5V4N54A-C4Aeu5qf.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-_sgp3WuA.js → dagre-BM42HDAG-BOulamjo.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-CROtRy1w.js → diagram-2AECGRRQ-D1wt2ykO.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BqGRzwSc.js → diagram-5GNKFQAL-BRseus-O.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CMrcEtA7.js → diagram-KO2AKTUF-XSMkNzpZ.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BRydGNW5.js → diagram-LMA3HP47-21KNLqoi.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-D0ilgNjV.js → diagram-OG6HWLK6-DnUI8F5G.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-2lnQeJUM.js → erDiagram-TEJ5UH35-BVSOMuM2.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-C_ZMdQiC.js → flowDiagram-I6XJVG4X-fYtDPJsW.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-Dw9V_Ny0.js → ganttDiagram-6RSMTGT7-CmRXosW_.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-HDXI-F1B.js → gitGraphDiagram-PVQCEYII-DPrmySxO.js} +1 -1
- package/web-shell/assets/index-BpKnmyFV.js +717 -0
- package/web-shell/assets/index-fLrtxpOG.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CuB8Ebua.js → infoDiagram-5YYISTIA-x3VbEuCV.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D_tyhVwh.js → ishikawaDiagram-YF4QCWOH-SmitHRMC.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-CgCwJQNU.js → journeyDiagram-JHISSGLW-BxvA551S.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-PZUtcbPx.js → kanban-definition-UN3LZRKU-DNHC16jY.js} +1 -1
- package/web-shell/assets/{linear-CZqRdJIU.js → linear-CQ6irBL9.js} +1 -1
- package/web-shell/assets/{mermaid.core-CPW_4UEF.js → mermaid.core-DtB6NO1e.js} +72 -72
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-D_Y75ID7.js → mindmap-definition-RKZ34NQL-QKMAgV2v.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-Q4dTyLeF.js → pieDiagram-4H26LBE5-bvb6dGn6.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-ckw329Ft.js → quadrantDiagram-W4KKPZXB-DLgdlG4D.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-DbVDm4It.js → requirementDiagram-4Y6WPE33-2M9YH4GF.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CHuZ_ecH.js → sankeyDiagram-5OEKKPKP-DzwfclTH.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DU2YSpq-.js → sequenceDiagram-3UESZ5HK-BvPmTuy2.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CA9PEBUo.js → stateDiagram-AJRCARHV-BjwUmrJF.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-C4L8zXeL.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-Bhlo4WVc.js → timeline-definition-PNZ67QCA-CXzS6qqz.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-6xtPLsyl.js → vennDiagram-CIIHVFJN-yRSolF5B.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-3eozmXPf.js → wardley-L42UT6IY-ClLJjHPG.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BOn6hKss.js → wardleyDiagram-YWT4CUSO-VIa6t2p2.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BsP4-I_y.js → xychartDiagram-2RQKCTM6-CtmrkezW.js} +1 -1
- package/web-shell/index.html +18 -2
- package/chunks/MaxSizedBox-QNF3EIGU.js +0 -63
- package/chunks/agent-headless-RQ5BTX3G.js +0 -56
- package/chunks/bridge-JL2PMCIW.js +0 -66
- package/chunks/chunk-5GOVVXEV.js +0 -73
- package/chunks/chunk-BC3C4F3Q.js +0 -40
- package/chunks/chunk-BW4KCQFD.js +0 -1103
- package/chunks/chunk-RKIZXJMB.js +0 -13
- package/chunks/contextCommand-WYU6OQ2F.js +0 -61
- package/chunks/daemon-status-provider-HH2EC5FI.js +0 -65
- package/chunks/headlessSafetyWarnings-TBE35GJ4.js +0 -55
- package/chunks/initializer-2Y7SLOKV.js +0 -61
- package/chunks/list-ZAFHZ7OS.js +0 -65
- package/chunks/loadedSettingsAdapter-6KJXD6M3.js +0 -60
- package/chunks/nonInteractiveCli-5W4GIZQM.js +0 -96
- package/chunks/ripGrep-IEIFIWP4.js +0 -54
- package/chunks/serve-V6GVZR6U.js +0 -65
- package/chunks/spawnChannel-3VHW5EPY.js +0 -63
- package/chunks/theme-manager-LYLGAERF.js +0 -58
- package/chunks/workspace-providers-status-PIAFVYHA.js +0 -62
- package/chunks/workspace-service-YAIOD4HG.js +0 -71
- package/web-shell/assets/channel-iRo68q4Q.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-iHF24a8X.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-iHF24a8X.js +0 -1
- package/web-shell/assets/index-CHmzAWys.css +0 -5
- package/web-shell/assets/index-w6GTOHh1.js +0 -713
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-t1LRI0oY.js +0 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
init_esbuild_shims
|
|
5
|
+
} from "./chunk-A4BMJM77.js";
|
|
6
|
+
import {
|
|
7
|
+
__name
|
|
8
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
9
|
+
|
|
10
|
+
// packages/cli/src/serve/loopback-binds.ts
|
|
11
|
+
init_esbuild_shims();
|
|
12
|
+
var LOOPBACK_BINDS = /* @__PURE__ */ new Set([
|
|
13
|
+
"127.0.0.1",
|
|
14
|
+
"localhost",
|
|
15
|
+
"::1",
|
|
16
|
+
"[::1]"
|
|
17
|
+
]);
|
|
18
|
+
function isIpv4Loopback(hostname) {
|
|
19
|
+
const octets = hostname.split(".");
|
|
20
|
+
if (octets.length !== 4) return false;
|
|
21
|
+
const [first, ...rest] = octets;
|
|
22
|
+
return first === "127" && rest.every((octet) => {
|
|
23
|
+
if (!/^\d+$/.test(octet)) return false;
|
|
24
|
+
const value = Number(octet);
|
|
25
|
+
return value >= 0 && value <= 255;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
__name(isIpv4Loopback, "isIpv4Loopback");
|
|
29
|
+
function isLoopbackBind(hostname) {
|
|
30
|
+
const normalized = hostname.toLowerCase();
|
|
31
|
+
return LOOPBACK_BINDS.has(normalized) || isIpv4Loopback(normalized);
|
|
32
|
+
}
|
|
33
|
+
__name(isLoopbackBind, "isLoopbackBind");
|
|
34
|
+
|
|
35
|
+
export {
|
|
36
|
+
isLoopbackBind
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* @license
|
|
40
|
+
* Copyright 2025 Qwen Team
|
|
41
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
42
|
+
*/
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
isTeammate
|
|
5
|
+
} from "./chunk-GO6LNQXT.js";
|
|
6
|
+
import {
|
|
7
|
+
ToolNames
|
|
8
|
+
} from "./chunk-4VZH35PN.js";
|
|
9
|
+
import {
|
|
10
|
+
init_esbuild_shims
|
|
11
|
+
} from "./chunk-A4BMJM77.js";
|
|
12
|
+
import {
|
|
13
|
+
__name
|
|
14
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
15
|
+
|
|
16
|
+
// packages/core/src/agents/runtime/agent-context.ts
|
|
17
|
+
init_esbuild_shims();
|
|
18
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
19
|
+
var storage = new AsyncLocalStorage();
|
|
20
|
+
function runWithAgentContext(agentId, fn) {
|
|
21
|
+
const current = storage.getStore() ?? {};
|
|
22
|
+
const depth = (current.depth ?? -1) + 1;
|
|
23
|
+
return storage.run({ ...current, agentId, depth }, fn);
|
|
24
|
+
}
|
|
25
|
+
__name(runWithAgentContext, "runWithAgentContext");
|
|
26
|
+
function runWithRuntimeContentGenerator(view, fn) {
|
|
27
|
+
const current = storage.getStore() ?? {};
|
|
28
|
+
return storage.run({ ...current, runtimeView: view }, fn);
|
|
29
|
+
}
|
|
30
|
+
__name(runWithRuntimeContentGenerator, "runWithRuntimeContentGenerator");
|
|
31
|
+
function getCurrentAgentId() {
|
|
32
|
+
return storage.getStore()?.agentId ?? null;
|
|
33
|
+
}
|
|
34
|
+
__name(getCurrentAgentId, "getCurrentAgentId");
|
|
35
|
+
function getCurrentAgentDepth() {
|
|
36
|
+
return storage.getStore()?.depth ?? 0;
|
|
37
|
+
}
|
|
38
|
+
__name(getCurrentAgentDepth, "getCurrentAgentDepth");
|
|
39
|
+
function getRuntimeContentGenerator() {
|
|
40
|
+
return storage.getStore()?.runtimeView;
|
|
41
|
+
}
|
|
42
|
+
__name(getRuntimeContentGenerator, "getRuntimeContentGenerator");
|
|
43
|
+
|
|
44
|
+
// packages/core/src/agents/runtime/subagent-plan-tool-policy.ts
|
|
45
|
+
init_esbuild_shims();
|
|
46
|
+
var SUBAGENT_PLAN_LIFECYCLE_TOOLS = /* @__PURE__ */ new Set([
|
|
47
|
+
ToolNames.ENTER_PLAN_MODE,
|
|
48
|
+
ToolNames.EXIT_PLAN_MODE
|
|
49
|
+
]);
|
|
50
|
+
function isSubagentLikeExecutionContext() {
|
|
51
|
+
return getCurrentAgentId() !== null || isTeammate();
|
|
52
|
+
}
|
|
53
|
+
__name(isSubagentLikeExecutionContext, "isSubagentLikeExecutionContext");
|
|
54
|
+
function isPlanLifecycleToolUnavailableInSubagent(toolName) {
|
|
55
|
+
return isSubagentLikeExecutionContext() && SUBAGENT_PLAN_LIFECYCLE_TOOLS.has(toolName);
|
|
56
|
+
}
|
|
57
|
+
__name(isPlanLifecycleToolUnavailableInSubagent, "isPlanLifecycleToolUnavailableInSubagent");
|
|
58
|
+
function getSubagentPlanToolUnavailableMessage(toolName) {
|
|
59
|
+
return `${toolName} is not available inside subagents or team agents. Plan mode is owned by the caller/main session; return your plan, findings, or constraints to the caller in your normal response instead of entering or exiting plan mode.`;
|
|
60
|
+
}
|
|
61
|
+
__name(getSubagentPlanToolUnavailableMessage, "getSubagentPlanToolUnavailableMessage");
|
|
62
|
+
function buildSubagentPlanToolBlockedResult(toolName, logTag, logger) {
|
|
63
|
+
const message = getSubagentPlanToolUnavailableMessage(toolName);
|
|
64
|
+
logger.warn(
|
|
65
|
+
`[${logTag}] Blocked plan lifecycle tool call from subagent: ${toolName}`
|
|
66
|
+
);
|
|
67
|
+
return {
|
|
68
|
+
llmContent: message,
|
|
69
|
+
returnDisplay: message,
|
|
70
|
+
error: { message }
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
__name(buildSubagentPlanToolBlockedResult, "buildSubagentPlanToolBlockedResult");
|
|
74
|
+
|
|
75
|
+
export {
|
|
76
|
+
runWithAgentContext,
|
|
77
|
+
runWithRuntimeContentGenerator,
|
|
78
|
+
getCurrentAgentId,
|
|
79
|
+
getCurrentAgentDepth,
|
|
80
|
+
getRuntimeContentGenerator,
|
|
81
|
+
SUBAGENT_PLAN_LIFECYCLE_TOOLS,
|
|
82
|
+
isSubagentLikeExecutionContext,
|
|
83
|
+
isPlanLifecycleToolUnavailableInSubagent,
|
|
84
|
+
getSubagentPlanToolUnavailableMessage,
|
|
85
|
+
buildSubagentPlanToolBlockedResult
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* @license
|
|
89
|
+
* Copyright 2025 Qwen
|
|
90
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
91
|
+
*/
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
init_esbuild_shims
|
|
5
|
+
} from "./chunk-A4BMJM77.js";
|
|
6
|
+
import {
|
|
7
|
+
__name
|
|
8
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
9
|
+
|
|
10
|
+
// packages/acp-bridge/src/workspacePaths.ts
|
|
11
|
+
init_esbuild_shims();
|
|
12
|
+
import { realpathSync } from "node:fs";
|
|
13
|
+
import * as path from "node:path";
|
|
14
|
+
function canonicalizeWorkspace(p) {
|
|
15
|
+
const resolved = path.resolve(p);
|
|
16
|
+
try {
|
|
17
|
+
return realpathSync.native(resolved);
|
|
18
|
+
} catch (err) {
|
|
19
|
+
if (err && typeof err === "object" && err.code === "ENOENT") {
|
|
20
|
+
return resolved;
|
|
21
|
+
}
|
|
22
|
+
throw err;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
__name(canonicalizeWorkspace, "canonicalizeWorkspace");
|
|
26
|
+
var MAX_WORKSPACE_PATH_LENGTH = 4096;
|
|
27
|
+
|
|
28
|
+
export {
|
|
29
|
+
canonicalizeWorkspace,
|
|
30
|
+
MAX_WORKSPACE_PATH_LENGTH
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* @license
|
|
34
|
+
* Copyright 2025 Qwen Team
|
|
35
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
36
|
+
*/
|
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
t
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-UQYOMM6J.js";
|
|
6
6
|
import {
|
|
7
7
|
computeThresholds,
|
|
8
8
|
getCoreSystemPrompt
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-BFG6OZN7.js";
|
|
10
10
|
import {
|
|
11
11
|
buildSkillLlmContent
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-B236XPGF.js";
|
|
13
13
|
import {
|
|
14
14
|
DiscoveredMCPTool,
|
|
15
15
|
uiTelemetryService
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-HJDF3ZVU.js";
|
|
17
17
|
import {
|
|
18
18
|
ToolNames
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-4VZH35PN.js";
|
|
20
20
|
import {
|
|
21
21
|
DEFAULT_TOKEN_LIMIT
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-YTFBURQD.js";
|
|
23
23
|
import {
|
|
24
24
|
init_esbuild_shims
|
|
25
25
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -145,7 +145,10 @@ ${skill.level}
|
|
|
145
145
|
};
|
|
146
146
|
});
|
|
147
147
|
const skillsTokens = skillToolDefinitionTokens + loadedBodiesTokens;
|
|
148
|
-
const thresholds = computeThresholds(
|
|
148
|
+
const thresholds = computeThresholds(
|
|
149
|
+
contextWindowSize,
|
|
150
|
+
config.getAutoCompactThreshold()
|
|
151
|
+
);
|
|
149
152
|
const autocompactBuffer = Math.max(
|
|
150
153
|
0,
|
|
151
154
|
Math.round(contextWindowSize - thresholds.auto)
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
} from "./chunk-OMX7CUOE.js";
|
|
6
6
|
import {
|
|
7
7
|
atomicWriteJSON
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-T42ACHFI.js";
|
|
9
9
|
import {
|
|
10
10
|
Storage,
|
|
11
11
|
getProjectHash
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-AVQDCKNF.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esbuild_shims
|
|
15
15
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
init_esbuild_shims
|
|
5
|
+
} from "./chunk-A4BMJM77.js";
|
|
6
|
+
import {
|
|
7
|
+
__commonJS,
|
|
8
|
+
__require
|
|
9
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
10
|
+
|
|
11
|
+
// node_modules/safer-buffer/safer.js
|
|
12
|
+
var require_safer = __commonJS({
|
|
13
|
+
"node_modules/safer-buffer/safer.js"(exports, module) {
|
|
14
|
+
"use strict";
|
|
15
|
+
init_esbuild_shims();
|
|
16
|
+
var buffer = __require("buffer");
|
|
17
|
+
var Buffer = buffer.Buffer;
|
|
18
|
+
var safer = {};
|
|
19
|
+
var key;
|
|
20
|
+
for (key in buffer) {
|
|
21
|
+
if (!buffer.hasOwnProperty(key)) continue;
|
|
22
|
+
if (key === "SlowBuffer" || key === "Buffer") continue;
|
|
23
|
+
safer[key] = buffer[key];
|
|
24
|
+
}
|
|
25
|
+
var Safer = safer.Buffer = {};
|
|
26
|
+
for (key in Buffer) {
|
|
27
|
+
if (!Buffer.hasOwnProperty(key)) continue;
|
|
28
|
+
if (key === "allocUnsafe" || key === "allocUnsafeSlow") continue;
|
|
29
|
+
Safer[key] = Buffer[key];
|
|
30
|
+
}
|
|
31
|
+
safer.Buffer.prototype = Buffer.prototype;
|
|
32
|
+
if (!Safer.from || Safer.from === Uint8Array.from) {
|
|
33
|
+
Safer.from = function(value, encodingOrOffset, length) {
|
|
34
|
+
if (typeof value === "number") {
|
|
35
|
+
throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value);
|
|
36
|
+
}
|
|
37
|
+
if (value && typeof value.length === "undefined") {
|
|
38
|
+
throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);
|
|
39
|
+
}
|
|
40
|
+
return Buffer(value, encodingOrOffset, length);
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
if (!Safer.alloc) {
|
|
44
|
+
Safer.alloc = function(size, fill, encoding) {
|
|
45
|
+
if (typeof size !== "number") {
|
|
46
|
+
throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size);
|
|
47
|
+
}
|
|
48
|
+
if (size < 0 || size >= 2 * (1 << 30)) {
|
|
49
|
+
throw new RangeError('The value "' + size + '" is invalid for option "size"');
|
|
50
|
+
}
|
|
51
|
+
var buf = Buffer(size);
|
|
52
|
+
if (!fill || fill.length === 0) {
|
|
53
|
+
buf.fill(0);
|
|
54
|
+
} else if (typeof encoding === "string") {
|
|
55
|
+
buf.fill(fill, encoding);
|
|
56
|
+
} else {
|
|
57
|
+
buf.fill(fill);
|
|
58
|
+
}
|
|
59
|
+
return buf;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
if (!safer.kStringMaxLength) {
|
|
63
|
+
try {
|
|
64
|
+
safer.kStringMaxLength = process.binding("buffer").kStringMaxLength;
|
|
65
|
+
} catch (e) {
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (!safer.constants) {
|
|
69
|
+
safer.constants = {
|
|
70
|
+
MAX_LENGTH: safer.kMaxLength
|
|
71
|
+
};
|
|
72
|
+
if (safer.kStringMaxLength) {
|
|
73
|
+
safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
module.exports = safer;
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
export {
|
|
81
|
+
require_safer
|
|
82
|
+
};
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
MAX_WORKSPACE_PATH_LENGTH
|
|
5
|
+
} from "./chunk-SEZC2725.js";
|
|
3
6
|
import {
|
|
4
7
|
init_esbuild_shims
|
|
5
8
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -7,24 +10,6 @@ import {
|
|
|
7
10
|
__name
|
|
8
11
|
} from "./chunk-J2S4EL5Y.js";
|
|
9
12
|
|
|
10
|
-
// packages/acp-bridge/src/workspacePaths.ts
|
|
11
|
-
init_esbuild_shims();
|
|
12
|
-
import { realpathSync } from "node:fs";
|
|
13
|
-
import * as path from "node:path";
|
|
14
|
-
function canonicalizeWorkspace(p) {
|
|
15
|
-
const resolved = path.resolve(p);
|
|
16
|
-
try {
|
|
17
|
-
return realpathSync.native(resolved);
|
|
18
|
-
} catch (err) {
|
|
19
|
-
if (err && typeof err === "object" && err.code === "ENOENT") {
|
|
20
|
-
return resolved;
|
|
21
|
-
}
|
|
22
|
-
throw err;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
__name(canonicalizeWorkspace, "canonicalizeWorkspace");
|
|
26
|
-
var MAX_WORKSPACE_PATH_LENGTH = 4096;
|
|
27
|
-
|
|
28
13
|
// packages/acp-bridge/src/bridgeErrors.ts
|
|
29
14
|
init_esbuild_shims();
|
|
30
15
|
var NOT_CURRENTLY_GENERATING_CANCEL_MESSAGE = "Not currently generating";
|
|
@@ -53,6 +38,45 @@ var SessionNotFoundError = class extends Error {
|
|
|
53
38
|
this.sessionId = sessionId;
|
|
54
39
|
}
|
|
55
40
|
};
|
|
41
|
+
var SessionArchivedError = class extends Error {
|
|
42
|
+
static {
|
|
43
|
+
__name(this, "SessionArchivedError");
|
|
44
|
+
}
|
|
45
|
+
sessionId;
|
|
46
|
+
constructor(sessionId) {
|
|
47
|
+
super(`Session "${sessionId}" is archived. Unarchive it before loading.`);
|
|
48
|
+
this.name = "SessionArchivedError";
|
|
49
|
+
this.sessionId = sessionId;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var SessionConflictError = class extends Error {
|
|
53
|
+
static {
|
|
54
|
+
__name(this, "SessionConflictError");
|
|
55
|
+
}
|
|
56
|
+
sessionId;
|
|
57
|
+
constructor(sessionId) {
|
|
58
|
+
super(
|
|
59
|
+
`Session "${sessionId}" exists in both active and archived directories. Delete the session with POST /sessions/delete before loading.`
|
|
60
|
+
);
|
|
61
|
+
this.name = "SessionConflictError";
|
|
62
|
+
this.sessionId = sessionId;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
var SessionArchivingError = class extends Error {
|
|
66
|
+
static {
|
|
67
|
+
__name(this, "SessionArchivingError");
|
|
68
|
+
}
|
|
69
|
+
sessionId;
|
|
70
|
+
lockKind;
|
|
71
|
+
constructor(sessionId, lockKind = "exclusive") {
|
|
72
|
+
super(
|
|
73
|
+
`Session "${sessionId}" is being archived or unarchived; retry later.`
|
|
74
|
+
);
|
|
75
|
+
this.name = "SessionArchivingError";
|
|
76
|
+
this.sessionId = sessionId;
|
|
77
|
+
this.lockKind = lockKind;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
56
80
|
var RestoreInProgressError = class extends Error {
|
|
57
81
|
static {
|
|
58
82
|
__name(this, "RestoreInProgressError");
|
|
@@ -235,12 +259,12 @@ var WorkspaceInitConflictError = class extends Error {
|
|
|
235
259
|
}
|
|
236
260
|
path;
|
|
237
261
|
existingSize;
|
|
238
|
-
constructor(
|
|
262
|
+
constructor(path, existingSize) {
|
|
239
263
|
super(
|
|
240
|
-
`Workspace file ${
|
|
264
|
+
`Workspace file ${path} already exists (${existingSize} bytes); pass {force: true} to overwrite.`
|
|
241
265
|
);
|
|
242
266
|
this.name = "WorkspaceInitConflictError";
|
|
243
|
-
this.path =
|
|
267
|
+
this.path = path;
|
|
244
268
|
this.existingSize = existingSize;
|
|
245
269
|
}
|
|
246
270
|
};
|
|
@@ -361,11 +385,12 @@ var CdWhilePromptActiveError = class extends Error {
|
|
|
361
385
|
};
|
|
362
386
|
|
|
363
387
|
export {
|
|
364
|
-
canonicalizeWorkspace,
|
|
365
|
-
MAX_WORKSPACE_PATH_LENGTH,
|
|
366
388
|
NOT_CURRENTLY_GENERATING_CANCEL_MESSAGE,
|
|
367
389
|
isNotCurrentlyGeneratingCancelError,
|
|
368
390
|
SessionNotFoundError,
|
|
391
|
+
SessionArchivedError,
|
|
392
|
+
SessionConflictError,
|
|
393
|
+
SessionArchivingError,
|
|
369
394
|
RestoreInProgressError,
|
|
370
395
|
InvalidSessionScopeError,
|
|
371
396
|
SessionLimitExceededError,
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
formatFetchErrorForUser
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-GLPV75ES.js";
|
|
6
6
|
import {
|
|
7
7
|
openBrowserSecurely
|
|
8
8
|
} from "./chunk-22IFUCVR.js";
|
|
9
9
|
import {
|
|
10
10
|
atomicWriteFile
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-T42ACHFI.js";
|
|
12
12
|
import {
|
|
13
13
|
combineAbortSignals
|
|
14
14
|
} from "./chunk-64WXLC72.js";
|
|
15
15
|
import {
|
|
16
16
|
Storage,
|
|
17
17
|
createDebugLogger
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-AVQDCKNF.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getEffectiveSupportedModes
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-75X2VLSH.js";
|
|
6
6
|
import {
|
|
7
7
|
require_jsx_runtime
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-2X2JUE47.js";
|
|
9
9
|
import {
|
|
10
10
|
require_react
|
|
11
11
|
} from "./chunk-KYMBIKIW.js";
|
|
12
12
|
import {
|
|
13
13
|
uiTelemetryService
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-HJDF3ZVU.js";
|
|
15
15
|
import {
|
|
16
16
|
init_esbuild_shims
|
|
17
17
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -15,15 +15,15 @@ import {
|
|
|
15
15
|
readCronTasks,
|
|
16
16
|
removeCronTasks,
|
|
17
17
|
updateCronTasks
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-SJBIFVD2.js";
|
|
19
19
|
import {
|
|
20
20
|
ToolNames
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-4VZH35PN.js";
|
|
22
22
|
import {
|
|
23
23
|
Storage,
|
|
24
24
|
createDebugLogger,
|
|
25
25
|
getProjectHash
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-AVQDCKNF.js";
|
|
27
27
|
import {
|
|
28
28
|
init_esbuild_shims
|
|
29
29
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -242,6 +242,14 @@ var CronScheduler = class {
|
|
|
242
242
|
_disabled = false;
|
|
243
243
|
timer = null;
|
|
244
244
|
onFire = null;
|
|
245
|
+
// Guard a consumer installs when it cannot execute certain durable jobs. A
|
|
246
|
+
// headless run can't expand a `.qwen/loop.md` sentinel, so it marks such
|
|
247
|
+
// durable jobs skippable here: they are then neither fired NOR have their
|
|
248
|
+
// persisted fired-state advanced (lastFiredAt stamp / one-shot removal),
|
|
249
|
+
// leaving the tick for the owning interactive session instead of silently
|
|
250
|
+
// consuming it for work the consumer never ran. Session-only jobs and durable
|
|
251
|
+
// jobs in a consumer that can run them are unaffected (predicate unset/false).
|
|
252
|
+
skipDurableFire = null;
|
|
245
253
|
// --- Durable (file-backed) support ---
|
|
246
254
|
durableEnabled = false;
|
|
247
255
|
// Bumped by stop(). Async durable work captures the value before each
|
|
@@ -623,12 +631,27 @@ var CronScheduler = class {
|
|
|
623
631
|
deliverPending(pending, onFire) {
|
|
624
632
|
switch (pending.kind) {
|
|
625
633
|
case "missed": {
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
634
|
+
const skipped = [];
|
|
635
|
+
const runnable = pending.tasks.filter((t) => {
|
|
636
|
+
const job = durableTaskToJob(t);
|
|
637
|
+
if (job.durable && this.skipDurableFire?.(job)) {
|
|
638
|
+
debugLogger.debug(
|
|
639
|
+
`Skipping durable job ${t.id} (missed): consumer cannot run it`
|
|
640
|
+
);
|
|
641
|
+
skipped.push(t.id);
|
|
642
|
+
return false;
|
|
643
|
+
}
|
|
644
|
+
return true;
|
|
630
645
|
});
|
|
631
|
-
this.
|
|
646
|
+
for (const id of skipped) this.pendingRemoval.delete(id);
|
|
647
|
+
if (runnable.length > 0) {
|
|
648
|
+
onFire({
|
|
649
|
+
...durableTaskToJob(runnable[0]),
|
|
650
|
+
prompt: buildMissedCronNotification(runnable),
|
|
651
|
+
missed: true
|
|
652
|
+
});
|
|
653
|
+
this.removeMissedFromDisk(runnable.map((t) => t.id));
|
|
654
|
+
}
|
|
632
655
|
break;
|
|
633
656
|
}
|
|
634
657
|
case "catch-up": {
|
|
@@ -636,6 +659,12 @@ var CronScheduler = class {
|
|
|
636
659
|
for (const id of pending.ids) {
|
|
637
660
|
const job = this.jobs.get(id);
|
|
638
661
|
if (!job) continue;
|
|
662
|
+
if (job.durable && this.skipDurableFire?.(job)) {
|
|
663
|
+
debugLogger.debug(
|
|
664
|
+
`Skipping durable job ${job.id} (catch-up): consumer cannot run it`
|
|
665
|
+
);
|
|
666
|
+
continue;
|
|
667
|
+
}
|
|
639
668
|
onFire(job);
|
|
640
669
|
fired.push(id);
|
|
641
670
|
}
|
|
@@ -643,10 +672,19 @@ var CronScheduler = class {
|
|
|
643
672
|
break;
|
|
644
673
|
}
|
|
645
674
|
case "final": {
|
|
675
|
+
const fired = [];
|
|
646
676
|
for (const job of pending.jobs) {
|
|
677
|
+
if (job.durable && this.skipDurableFire?.(job)) {
|
|
678
|
+
debugLogger.debug(
|
|
679
|
+
`Skipping durable job ${job.id} (final): consumer cannot run it`
|
|
680
|
+
);
|
|
681
|
+
this.pendingRemoval.delete(job.id);
|
|
682
|
+
continue;
|
|
683
|
+
}
|
|
647
684
|
onFire(job);
|
|
685
|
+
fired.push(job.id);
|
|
648
686
|
}
|
|
649
|
-
this.removeMissedFromDisk(
|
|
687
|
+
this.removeMissedFromDisk(fired);
|
|
650
688
|
break;
|
|
651
689
|
}
|
|
652
690
|
default: {
|
|
@@ -730,6 +768,16 @@ var CronScheduler = class {
|
|
|
730
768
|
} catch {
|
|
731
769
|
}
|
|
732
770
|
}
|
|
771
|
+
/**
|
|
772
|
+
* Installs a predicate marking durable jobs the active consumer cannot run
|
|
773
|
+
* (see the `skipDurableFire` field). Such jobs are skipped before any fire or
|
|
774
|
+
* persist, so their durable schedule is left intact for an owning session that
|
|
775
|
+
* can run them. Set before `start()` so a buffered catch-up flush also honors
|
|
776
|
+
* it. A no-op for session-only jobs.
|
|
777
|
+
*/
|
|
778
|
+
setSkipDurableFire(predicate) {
|
|
779
|
+
this.skipDurableFire = predicate;
|
|
780
|
+
}
|
|
733
781
|
/**
|
|
734
782
|
* Starts the scheduler tick. Calls `onFire` when a job is due.
|
|
735
783
|
* Only fires when called — does not auto-fire missed intervals.
|
|
@@ -847,6 +895,12 @@ var CronScheduler = class {
|
|
|
847
895
|
const removedIds = [];
|
|
848
896
|
for (const job of this.jobs.values()) {
|
|
849
897
|
if (job.durable && !this.isOwner) continue;
|
|
898
|
+
if (job.durable && this.skipDurableFire?.(job)) {
|
|
899
|
+
debugLogger.debug(
|
|
900
|
+
`Skipping durable job ${job.id} (tick): consumer cannot run it`
|
|
901
|
+
);
|
|
902
|
+
continue;
|
|
903
|
+
}
|
|
850
904
|
const result = this.processJob(job, currentDate, currentMs);
|
|
851
905
|
if (!job.durable || result === "none") continue;
|
|
852
906
|
if (result === "fired-final" || !job.recurring) {
|
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
} from "./chunk-Y6Z2O3WR.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveBundleDir
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-BFG6OZN7.js";
|
|
9
9
|
import {
|
|
10
10
|
Storage
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-AVQDCKNF.js";
|
|
12
12
|
import {
|
|
13
13
|
init_esbuild_shims
|
|
14
14
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -158,15 +158,15 @@ init_esbuild_shims();
|
|
|
158
158
|
|
|
159
159
|
// import("./locales/**/*.js") in packages/cli/src/i18n/index.ts
|
|
160
160
|
var globImport_locales_js = __glob({
|
|
161
|
-
"./locales/ca.js": () => import("./ca-
|
|
162
|
-
"./locales/de.js": () => import("./de-
|
|
163
|
-
"./locales/en.js": () => import("./en-
|
|
164
|
-
"./locales/fr.js": () => import("./fr-
|
|
165
|
-
"./locales/ja.js": () => import("./ja-
|
|
166
|
-
"./locales/pt.js": () => import("./pt-
|
|
167
|
-
"./locales/ru.js": () => import("./ru-
|
|
168
|
-
"./locales/zh-TW.js": () => import("./zh-TW-
|
|
169
|
-
"./locales/zh.js": () => import("./zh-
|
|
161
|
+
"./locales/ca.js": () => import("./ca-RYOETBUW.js"),
|
|
162
|
+
"./locales/de.js": () => import("./de-HB5NJXGB.js"),
|
|
163
|
+
"./locales/en.js": () => import("./en-FZREZFPO.js"),
|
|
164
|
+
"./locales/fr.js": () => import("./fr-XY3NQFCM.js"),
|
|
165
|
+
"./locales/ja.js": () => import("./ja-J7YAG7SA.js"),
|
|
166
|
+
"./locales/pt.js": () => import("./pt-6RTAA6SS.js"),
|
|
167
|
+
"./locales/ru.js": () => import("./ru-AUBGJ2C4.js"),
|
|
168
|
+
"./locales/zh-TW.js": () => import("./zh-TW-6GIKXEAN.js"),
|
|
169
|
+
"./locales/zh.js": () => import("./zh-V3B4TFWL.js")
|
|
170
170
|
});
|
|
171
171
|
|
|
172
172
|
// packages/cli/src/i18n/index.ts
|