@qwen-code/qwen-code 0.22.2 → 0.22.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/computer-use/SKILL.md +3 -3
- package/bundled/qc-helper/docs/configuration/settings.md +37 -36
- package/bundled/qc-helper/docs/features/channels/dws.md +2 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +34 -3
- package/bundled/qc-helper/docs/features/code-review.md +3 -3
- package/bundled/qc-helper/docs/features/computer-use.md +2 -2
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +1 -1
- package/bundled/review/SKILL.md +81 -31
- package/bundled/review/references/persistence.md +7 -3
- package/bundled/review/references/posting.md +10 -4
- package/chunks/{MaxSizedBox-X5FZSNAJ.js → MaxSizedBox-X42SXBJH.js} +33 -35
- package/chunks/{StandaloneSessionPicker-AVLI6VJP.js → StandaloneSessionPicker-2FJAOLGG.js} +51 -53
- package/chunks/{acpAgent-MXEAN54C.js → acpAgent-2ZMIJAFV.js} +268 -186
- package/chunks/{agent-PJIPDWHB.js → agent-X5WX3L2I.js} +24 -26
- package/chunks/{agent-headless-B4JVD7UK.js → agent-headless-IZM25LJA.js} +24 -26
- package/chunks/{anthropicContentGenerator-HGMBACVE.js → anthropicContentGenerator-YVTB6QX7.js} +43 -47
- package/chunks/{artifact-tool-5YT4QF7Y.js → artifact-tool-XSMPHZBT.js} +9 -1
- package/chunks/{bridge-FKZTVIS3.js → bridge-ME6QXZNA.js} +37 -39
- package/chunks/{channel-management-service-X4AZ6IXX.js → channel-management-service-HQ6KDS7C.js} +6 -6
- package/chunks/{channel-settings-store-4UFCLBBG.js → channel-settings-store-PEOI7XCG.js} +47 -44
- package/chunks/{channel-worker-group-27HMGD5S.js → channel-worker-group-6NA6BBZV.js} +5 -5
- package/chunks/{channel-worker-manager-QEGX646Z.js → channel-worker-manager-NEZ2J6RK.js} +5 -5
- package/chunks/{channel-worker-supervisor-UEW2WWCC.js → channel-worker-supervisor-FKU7DIHJ.js} +4 -4
- package/chunks/{chunk-P5GGM4KS.js → chunk-2HYKTO7V.js} +3 -3
- package/chunks/{chunk-XDFHY4R3.js → chunk-2LNNVAUV.js} +2 -2
- package/chunks/{chunk-ZFKOCECU.js → chunk-2OBKDPZZ.js} +2 -2
- package/chunks/{chunk-3DXFGHAJ.js → chunk-2OUD5T67.js} +1 -1
- package/chunks/{chunk-EOGELB3H.js → chunk-2SXSLSQE.js} +1 -1
- package/chunks/{chunk-4JWNNLPT.js → chunk-2YOHKHYR.js} +2 -2
- package/chunks/{chunk-JU4EEXC7.js → chunk-36GSQ3MM.js} +2 -2
- package/chunks/chunk-36LGBEM6.js +130 -0
- package/chunks/{chunk-H2WDGQ6D.js → chunk-3JXM2CVW.js} +1 -1
- package/chunks/{chunk-G34IR3D6.js → chunk-3SZC4VP4.js} +26 -109
- package/chunks/{chunk-HVEYF6VT.js → chunk-3WK3QDNV.js} +1 -1
- package/chunks/{chunk-5XBFCMWD.js → chunk-3XKLXHGK.js} +17 -9
- package/chunks/{chunk-SFPGAQUL.js → chunk-42IDLQWS.js} +24 -18
- package/chunks/{chunk-43GGFFLY.js → chunk-4K7KNVWH.js} +1 -1
- package/chunks/{chunk-F6FV3C5K.js → chunk-4NDLQAY2.js} +24 -272
- package/chunks/{chunk-VVW4ZNFY.js → chunk-4QHPPXK2.js} +15 -7
- package/chunks/{chunk-IJKTMLBE.js → chunk-4TT3IVGA.js} +1 -1
- package/chunks/{chunk-C6K43ZDE.js → chunk-4VPCTGH6.js} +5 -5
- package/chunks/chunk-4VQBQLIZ.js +293 -0
- package/chunks/{chunk-OIVXBW3W.js → chunk-62GQFYID.js} +1 -1
- package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
- package/chunks/{chunk-AGR5UROZ.js → chunk-6X7EU5TI.js} +17 -29
- package/chunks/{chunk-PFCQ62V4.js → chunk-6ZPDLGHN.js} +6 -6
- package/chunks/{chunk-RIEFGNTP.js → chunk-734C6JGI.js} +207 -43
- package/chunks/{chunk-FBSSIAAQ.js → chunk-73RM4POK.js} +7 -7
- package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
- package/chunks/chunk-7J6OTNGO.js +424 -0
- package/chunks/{chunk-O2UN57NX.js → chunk-7LOELM2I.js} +19 -2
- package/chunks/{chunk-DIMEPKCW.js → chunk-7S226YTK.js} +1 -1
- package/chunks/{chunk-CPGJJJLU.js → chunk-7T52W4SW.js} +1 -1
- package/chunks/{chunk-5O72BNDD.js → chunk-7VMIMAVB.js} +7 -7
- package/chunks/{chunk-XRSOI3DL.js → chunk-A3LWD5MK.js} +1 -1
- package/chunks/{chunk-F7TNAPZ4.js → chunk-AIAOIFY4.js} +5 -5
- package/chunks/{chunk-4CDSK5AZ.js → chunk-AYFA7MZV.js} +2 -2
- package/chunks/{chunk-3JGZSIDA.js → chunk-B466ZSHZ.js} +1 -1
- package/chunks/{chunk-L6BZRIUL.js → chunk-B5PHIJGI.js} +182 -4
- package/chunks/{chunk-3I6UTTDX.js → chunk-BKWNKLZB.js} +19 -19
- package/chunks/{chunk-3FDFA4MZ.js → chunk-BOWFGCEU.js} +1 -1
- package/chunks/{chunk-3AFMQUTI.js → chunk-C2X7KY45.js} +1 -1
- package/chunks/{chunk-FY76G3G5.js → chunk-C3PEFRKD.js} +4 -4
- package/chunks/{chunk-FDY5RMGH.js → chunk-CFJY4DGX.js} +1 -1
- package/chunks/{chunk-CCBZDVUA.js → chunk-CIZCL2MW.js} +33 -20
- package/chunks/{chunk-LDP5OD6N.js → chunk-CLWO3B77.js} +2 -2
- package/chunks/chunk-DJBQCO2E.js +842 -0
- package/chunks/{chunk-4J657AJR.js → chunk-DJECZIJX.js} +40 -40
- package/chunks/{chunk-F5SZP77N.js → chunk-DJEZ55D4.js} +71 -65
- package/chunks/{chunk-BAJKAAOY.js → chunk-DJPASAUV.js} +3840 -1055
- package/chunks/{chunk-RUGNCYNO.js → chunk-DMLVSW7L.js} +532 -22
- package/chunks/{chunk-4FTKQNWJ.js → chunk-DYXFD5RO.js} +181 -2
- package/chunks/{chunk-PDMJ3KGS.js → chunk-EB6QRGHM.js} +1 -1
- package/chunks/{chunk-DZWPESIF.js → chunk-EFWRMA2I.js} +3 -3
- package/chunks/{chunk-4MQEPP3Y.js → chunk-EQSBPBZ3.js} +5 -119
- package/chunks/{chunk-Z7TGYN5F.js → chunk-FROAFEFB.js} +2 -2
- package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
- package/chunks/{chunk-Z7VOMGDC.js → chunk-FTJMWDND.js} +0 -24
- package/chunks/{chunk-43UYNAWX.js → chunk-G6FECKTJ.js} +2 -2
- package/chunks/{chunk-SJ3ZUWFK.js → chunk-GBJBJ4HX.js} +4 -4
- package/chunks/{chunk-IOPCFOTF.js → chunk-GPGU4S2N.js} +2 -2
- package/chunks/{chunk-6LFJEACX.js → chunk-GVIVASYK.js} +7 -7
- package/chunks/{chunk-Z4X5MTRT.js → chunk-HCOBAG2L.js} +2 -4
- package/chunks/{chunk-A7YP63XN.js → chunk-HP5LR5HL.js} +5 -5
- package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
- package/chunks/{chunk-TRZTNIQ6.js → chunk-I6LYRJPB.js} +2 -2
- package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
- package/chunks/{chunk-4HV6HH33.js → chunk-ISKH4QX3.js} +9 -9
- package/chunks/{chunk-WKK5BQNP.js → chunk-JHYH6PYQ.js} +43 -420
- package/chunks/{chunk-6IUNAPLR.js → chunk-K5KXUXWC.js} +1 -1
- package/chunks/{chunk-JHS74YAB.js → chunk-KID24ZFN.js} +1 -1
- package/chunks/{chunk-EFUM7RVY.js → chunk-KJO2LBUK.js} +942 -16
- package/chunks/{chunk-B7CDU2SL.js → chunk-KYWTPLBJ.js} +17 -20
- package/chunks/{chunk-JSHHYW6T.js → chunk-LHBUKJG2.js} +3 -3
- package/chunks/{chunk-P2SU6ZTI.js → chunk-LUEHOUHM.js} +1 -1
- package/chunks/{chunk-66KDY3LV.js → chunk-M3QRM3DE.js} +1 -1
- package/chunks/{chunk-V4QXXQJ2.js → chunk-MF7HCQWZ.js} +2 -2
- package/chunks/{chunk-W5MJJ2V7.js → chunk-MK2GIB46.js} +1 -1
- package/chunks/{chunk-Y6LSMB6J.js → chunk-MO3FC2WT.js} +1 -1
- package/chunks/{chunk-L6YT5H34.js → chunk-MPNBVAEU.js} +4 -4
- package/chunks/{chunk-CSMI4FP5.js → chunk-MSBO7X2W.js} +1 -1
- package/chunks/{chunk-5PA6UEYA.js → chunk-MZCJWS5Y.js} +1 -1
- package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
- package/chunks/{chunk-6LFTG244.js → chunk-NMOD2FXQ.js} +15 -5
- package/chunks/{chunk-KUX5D6DK.js → chunk-NV55WWD6.js} +11330 -10971
- package/chunks/{chunk-Q26AYA62.js → chunk-OU5APVWO.js} +2 -2
- package/chunks/{chunk-2K6ORIHJ.js → chunk-P2G476QN.js} +11 -11
- package/chunks/{chunk-OIP7C4FE.js → chunk-PADPMMYM.js} +4 -4
- package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
- package/chunks/{chunk-TGWAQ5RB.js → chunk-PZ66FRIC.js} +2071 -2124
- package/chunks/{chunk-7UYV53BC.js → chunk-Q2MSPKIJ.js} +1 -1
- package/chunks/{chunk-L2M46FP5.js → chunk-QYMAKPY5.js} +5 -5
- package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
- package/chunks/chunk-SEONHUS3.js +275 -0
- package/chunks/{chunk-ZGXYO7DY.js → chunk-SS4MRMKE.js} +122 -13
- package/chunks/{chunk-T32W2JHI.js → chunk-SS5SDCD3.js} +2 -2
- package/chunks/{chunk-3SGB2UHX.js → chunk-ST5MDGH3.js} +23 -11
- package/chunks/{chunk-MIIVI25Q.js → chunk-ST5V3ZOC.js} +2 -2
- package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
- package/chunks/{chunk-TWSKM647.js → chunk-T7KMERIX.js} +1 -1
- package/chunks/{chunk-77RG5SFQ.js → chunk-TEBDFQBZ.js} +1 -1
- package/chunks/{chunk-6CGL7E7G.js → chunk-TVC6HQ2U.js} +2 -2
- package/chunks/{chunk-BBWV7ONL.js → chunk-TZBSGJ6C.js} +6 -6
- package/chunks/{chunk-T3WXYEZ4.js → chunk-U54AYGEC.js} +38 -5
- package/chunks/{chunk-JCQD3INC.js → chunk-URE3QBBB.js} +1 -1
- package/chunks/{chunk-Y3QL45LS.js → chunk-V4264FEG.js} +8 -8
- package/chunks/{chunk-KEKZFOL6.js → chunk-V7EESTJV.js} +1 -1
- package/chunks/{chunk-R4PMVSR5.js → chunk-VBCPNIQD.js} +18 -20
- package/chunks/{chunk-RJC5EIKY.js → chunk-VGIFXISB.js} +3 -3
- package/chunks/{chunk-Z7FLBQPR.js → chunk-W3JH33JE.js} +7 -7
- package/chunks/{chunk-K2NQPH5D.js → chunk-WGY3AVGM.js} +3 -3
- package/chunks/{chunk-PKAYJDB3.js → chunk-WNPDGUJO.js} +21 -2
- package/chunks/{chunk-IZIVM7LZ.js → chunk-WXEA74YB.js} +1 -1
- package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
- package/chunks/{chunk-IK5BW3CS.js → chunk-XHF7WQ6B.js} +2 -2
- package/chunks/{chunk-2NYCN6F2.js → chunk-XSG6G3G6.js} +43 -26
- package/chunks/{chunk-HVQ3B7FF.js → chunk-Y5S7LBOZ.js} +43 -6
- package/chunks/{chunk-LXIBMVRN.js → chunk-YLSQLSH7.js} +13 -7
- package/chunks/{chunk-JSC3H3TD.js → chunk-ZEYFMJQA.js} +14 -6
- package/chunks/chunk-ZWJDJ6RU.js +2597 -0
- package/chunks/{chunk-QP4C6WCE.js → chunk-ZYMLPEZQ.js} +2 -2
- package/chunks/{chunk-BNMF3K5X.js → chunk-ZZMSC3RG.js} +52 -36
- package/chunks/{chunk-XDLEZ5HX.js → chunk-ZZUKP7HV.js} +1 -1
- package/chunks/{config-utils-BBOCOGZW.js → config-utils-R6M3TA34.js} +39 -39
- package/chunks/{contextCommand-EET67MQ2.js → contextCommand-ZCAP23J6.js} +36 -38
- package/chunks/{core-runtime-677KFX6Q.js → core-runtime-AXB6SK5D.js} +41 -43
- package/chunks/{create-sub-session-JKZAYZX7.js → create-sub-session-4QNE64MR.js} +34 -36
- package/chunks/{daemon-MJQUO7RA.js → daemon-3GNHB3M2.js} +495 -7
- package/chunks/{daemon-git-worktree-guard-6MVAAZZZ.js → daemon-git-worktree-guard-IVAJJWYK.js} +33 -35
- package/chunks/{daemon-status-provider-RFKZOK3S.js → daemon-status-provider-K3SJ5C2U.js} +42 -44
- package/chunks/{daemon-trust-policy-DRZPFB4Q.js → daemon-trust-policy-DOR3YG62.js} +41 -43
- package/chunks/{daemon-trust-policy-monitor-B5U6TQX5.js → daemon-trust-policy-monitor-KGGROSIV.js} +41 -43
- package/chunks/{deferred-core-runtime-BBVIOP24.js → deferred-core-runtime-WOYLUQQ7.js} +33 -35
- package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
- package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
- package/chunks/{dist-QODVOVWI.js → dist-6BPYWHVD.js} +31 -30
- package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
- package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
- package/chunks/{dist-ILDBUWDB.js → dist-LVZCXVPF.js} +1 -1
- package/chunks/{dist-7CKN54NL.js → dist-N6W6E753.js} +71 -64
- package/chunks/{dist-4Q7NTUNB.js → dist-NSV4NBPK.js} +31 -14
- package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
- package/chunks/{earlyInputCapture-2JOMMNQ4.js → earlyInputCapture-OHBEVO4K.js} +33 -35
- package/chunks/{edit-BSV6YRVW.js → edit-LEQLAGPZ.js} +24 -26
- package/chunks/{enter-worktree-MQXFFPKM.js → enter-worktree-35QCAAFP.js} +3 -3
- package/chunks/{enterPlanMode-PKNF35FE.js → enterPlanMode-ONQN3WHE.js} +27 -29
- package/chunks/{environment-MOZMPUHR.js → environment-UANTR7A4.js} +37 -39
- package/chunks/{errors-DMPQVYJL.js → errors-WAK6KFBC.js} +36 -38
- package/chunks/{exit-worktree-L344UY7K.js → exit-worktree-XQD6D543.js} +3 -3
- package/chunks/{exitPlanMode-UE4FGCY4.js → exitPlanMode-UEYBG6P5.js} +24 -26
- package/chunks/{fast-path-773PV7PU.js → fast-path-WUL7UZ6H.js} +4 -4
- package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-XH426LUU.js} +3 -3
- package/chunks/{glob-CZHOWUEA.js → glob-Y54QUWDY.js} +24 -26
- package/chunks/{goal-tools-YZQJXTGH.js → goal-tools-PTD3MBA7.js} +2 -1
- package/chunks/{handleAutoUpdate-SGXKTQM6.js → handleAutoUpdate-FP3NWNSG.js} +37 -39
- package/chunks/{i18n-B42HKHKH.js → i18n-INIU5X7A.js} +35 -37
- package/chunks/{image-gen-HAYOEQ4O.js → image-gen-J6FDGUZP.js} +4 -6
- package/chunks/{initializer-FB66WYR3.js → initializer-TYODV6GE.js} +41 -43
- package/chunks/{installationInfo-Y7AULNMX.js → installationInfo-AAPKYDSZ.js} +33 -35
- package/chunks/{list-2HWGSVRA.js → list-TUODDN6J.js} +44 -46
- package/chunks/{gemini-IP4FJAP5.js → llm-NSAVK5V3.js} +84 -82
- package/chunks/{geminiContentGenerator-PUNEBWJW.js → llm-content-generator-AY2QKXHE.js} +25 -25
- package/chunks/{loadedSettingsAdapter-7Y7IEI6T.js → loadedSettingsAdapter-KJCLZ3C4.js} +41 -43
- package/chunks/{loggingContentGenerator-2GGZNGLG.js → loggingContentGenerator-DSFQHXIF.js} +305 -27
- package/chunks/{managed-npm-update-5TEV2E3J.js → managed-npm-update-TSWENTK5.js} +33 -35
- package/chunks/{mcp-QGG5NMJJ.js → mcp-MWSAPFOL.js} +41 -43
- package/chunks/{monitor-FI7PY36Z.js → monitor-RW4GWJHB.js} +24 -26
- package/chunks/{nonInteractiveCli-4LO2TL72.js → nonInteractiveCli-JXKL343Q.js} +77 -78
- package/chunks/{notebook-edit-TPGMGBST.js → notebook-edit-CQNYS5OR.js} +24 -26
- package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-YN3QZHVM.js} +1 -1
- package/chunks/{openaiContentGenerator-SUCYANUZ.js → openaiContentGenerator-J6QIF7EX.js} +13 -15
- package/chunks/{pidfile-JMF2CLMY.js → pidfile-QOIQZFT2.js} +33 -35
- package/chunks/process-registry-OAEG6WGC.js +662 -0
- package/chunks/{processUtils-IQZBYWSB.js → processUtils-GPHNANKZ.js} +2 -2
- package/chunks/{prompt-terminal-ledger-DCZO6S7C.js → prompt-terminal-ledger-FOMFTYOM.js} +34 -36
- package/chunks/{qwenContentGenerator-J4TXFGJT.js → qwenContentGenerator-WWDXPYQI.js} +28 -30
- package/chunks/{qwenOAuth2-RF33DNZW.js → qwenOAuth2-OF5WRBQT.js} +4 -6
- package/chunks/{read-file-QE2B5FTX.js → read-file-FQUQHC6N.js} +5 -5
- package/chunks/{record-artifact-RZGZBENU.js → record-artifact-VW23GS4F.js} +2 -2
- package/chunks/{report-findings-Q3SYKKW5.js → report-findings-AO5VYFLR.js} +7 -3
- package/chunks/{resumeHistoryUtils-CZ4JRDVW.js → resumeHistoryUtils-NSGF3UCB.js} +37 -39
- package/chunks/{ripGrep-R6B6HWPX.js → ripGrep-4CAT6SKV.js} +7 -7
- package/chunks/{run-qwen-serve-TPHZMSXJ.js → run-qwen-serve-5X6IDZER.js} +271 -86
- package/chunks/{runtime-TTIGSBM4.js → runtime-HK27GMPF.js} +46 -48
- package/chunks/{scheduled-tasks-QB4ZVUQS.js → scheduled-tasks-MN2ZZ5P6.js} +39 -41
- package/chunks/{scheduler-YRUG22M7.js → scheduler-WD4MHMO5.js} +35 -37
- package/chunks/{sdk-exporters-http-KCJ4ZFG7.js → sdk-exporters-http-TTU2CHBU.js} +1 -1
- package/chunks/{sdk-impl-HLSEDAEP.js → sdk-impl-UUMVYMAL.js} +10 -4
- package/chunks/{send-message-Y5I6NYAM.js → send-message-AJ4OCUBV.js} +18 -2
- package/chunks/{serve-MXXCDAQN.js → serve-2XCHPPGG.js} +41 -43
- package/chunks/{server-DFUSSSHI.js → server-GO2N5DH7.js} +4148 -3348
- package/chunks/{session-3TEHNENZ.js → session-IFNHTUBT.js} +81 -82
- package/chunks/session-pr-refresh-I3UBWMVP.js +364 -0
- package/chunks/{settings-VOZYKLTT.js → settings-L6N54CU6.js} +40 -42
- package/chunks/{shell-6RTKZVMI.js → shell-4Y5LLW6N.js} +24 -26
- package/chunks/{skill-FEOKFX26.js → skill-YOWTRAKQ.js} +58 -14
- package/chunks/{skill-settings-VA4XVYVL.js → skill-settings-ZL4JY5UE.js} +41 -43
- package/chunks/{spawnChannel-F6WVP723.js → spawnChannel-ZST6XJVJ.js} +35 -37
- package/chunks/{standalone-update-RGILUQVK.js → standalone-update-THVU3OKY.js} +36 -38
- package/chunks/{startInteractiveUI-WHJPFOGH.js → startInteractiveUI-XDFSHBZD.js} +401 -334
- package/chunks/{stdioHelpers-7A2EE64Z.js → stdioHelpers-AY6XCDY2.js} +3 -1
- package/chunks/{task-create-TMSV7RD5.js → task-create-QN4LYRSE.js} +3 -3
- package/chunks/{task-list-W55RBFRX.js → task-list-JPLGK45U.js} +2 -2
- package/chunks/{task-update-N536I4GQ.js → task-update-IWEOJFV2.js} +3 -3
- package/chunks/{team-create-QYSWCYCL.js → team-create-OOPXCDBA.js} +24 -26
- package/chunks/{team-delete-FJRFX33M.js → team-delete-RZVVSGCY.js} +2 -2
- package/chunks/{team-plan-approval-P7DAD644.js → team-plan-approval-DSX5EWAT.js} +24 -26
- package/chunks/{terminal-image-renderer-SMQE46UJ.js → terminal-image-renderer-KS25G33E.js} +33 -35
- package/chunks/{theme-manager-RFO5WWFF.js → theme-manager-YMZNG45F.js} +33 -35
- package/chunks/{tool-search-F2EMIAPV.js → tool-search-J5Q6U7DN.js} +9 -9
- package/chunks/{total-session-admission-HTVTP4BS.js → total-session-admission-PVN64JVV.js} +37 -39
- package/chunks/{trustedFolders-7OCNMUQE.js → trustedFolders-FATSC4YI.js} +35 -37
- package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
- package/chunks/{update-relaunch-4GF3OXMB.js → update-relaunch-SIKHLHVR.js} +6 -6
- package/chunks/{updateCheck-7QBDXZRT.js → updateCheck-D3YG2WCD.js} +36 -38
- package/chunks/{useAutoAcceptIndicator-UI4SNL2O.js → useAutoAcceptIndicator-ILINOSAS.js} +43 -45
- package/chunks/{validateNonInterActiveAuth-BPPA563H.js → validateNonInterActiveAuth-JUDQP6V4.js} +74 -75
- package/chunks/{version-ANP4TS6O.js → version-C63GDDWN.js} +1 -1
- package/chunks/{web-fetch-QJADSAH3.js → web-fetch-FOQZMNSC.js} +8 -10
- package/chunks/{web-search-7TTQKEKM.js → web-search-PUJTBFUC.js} +5 -7
- package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-HNB4FDOE.js} +2 -2
- package/chunks/{workflow-5XN6XSOT.js → workflow-Y5IPINVH.js} +47 -58
- package/chunks/{workspace-providers-status-PDFZWL5Q.js → workspace-providers-status-IJ4VHFMB.js} +45 -47
- package/chunks/{workspace-registration-store-XKVW2YVH.js → workspace-registration-store-SMJWI2AI.js} +1 -1
- package/chunks/{workspace-registry-23R7XRB5.js → workspace-registry-BTGZIMPK.js} +37 -39
- package/chunks/{workspace-service-MUYO2QIC.js → workspace-service-SIN67ITC.js} +46 -51
- package/chunks/{workspace-skills-status-IKECTOOQ.js → workspace-skills-status-F3RKCUIX.js} +44 -46
- package/chunks/{workspace-trust-reconciler-KLGOB53D.js → workspace-trust-reconciler-PLIDLJZX.js} +45 -47
- package/chunks/{write-file-GGRBB5TZ.js → write-file-PAIGB33C.js} +26 -28
- package/chunks/{zoom-image-6ASG6J4C.js → zoom-image-LYQD7BQA.js} +5 -5
- package/cli.js +14 -14
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-uS-vtfs3.js → abnfDiagram-VCTEODGH-TRCMSA_6.js} +1 -1
- package/web-shell/assets/{arc-BSTnk5pu.js → arc-D9Uls5b3.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-DCMyiqzy.js → architectureDiagram-5GKGNRK7-Bwb8jPXg.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-C7_gt0r1.js → blockDiagram-NRAW4CY4-DHj71TSX.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BeQg2L8B.js → c4Diagram-UCG6FXSJ-uKBBdbyr.js} +1 -1
- package/web-shell/assets/channel-CXjVLaBa.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DnV9bKBe.js → chunk-2Q5K7J3B-BZd0Phrl.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-rT1GAcT7.js → chunk-5VM5RSS4-7KNeNBqN.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-BcgSxqGA.js → chunk-F27PBJKO-BeboS7Fi.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-Bw1ZhyZq.js → chunk-G27WJ6UU-RV3JONoj.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-D4iDw-96.js → chunk-JWPE2WC7-Yw9FCFsP.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-D3MB3GTZ.js → chunk-LCL6LL3I-GIMnydDe.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-Cep2ndrS.js → chunk-POPQ4Y6H-Cfrux7bL.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-BuahMHJc.js → chunk-SVP7TREG-BlvIN0CO.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-BdujIvJY.js → chunk-XXDRQBXY-DMs7Rr4t.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-CGLLUbF8.js → cose-bilkent-JH36ORCC-DNGqTNwI.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-D6kDsRSh.js → cynefin-OW5HDTMX-CojMpaoH.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CCy78qZx.js → cynefinDiagram-5FMLGOSQ-DF07YXGo.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-D5gJuJsf.js → dagre-3AP2YEHR-17-4WtCH.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-ZwEZ5W__.js → diagram-S7CK7UJ4-G3Wuyz9m.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-B036APjv.js → diagram-UQ7AKVKN-nyWIKZ8P.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-BfDJ57Fq.js → diagram-VSXAHHWV-tKHhmYSC.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-Wha0p5rT.js → diagram-VX7I27RA-CpDf1hYk.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-L20bz2K1.js → diagram-Z3DM3KII-Cah2IFXG.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-D1ZM0Cp7.js → ebnfDiagram-PWID7BFC-DNaCkgxy.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-CMtA19v8.js → erDiagram-SSCWMZ5O-CAdRgcf1.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-D96m326S.js → flowDiagram-A5DVABFB-CMUJAShL.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BuHiYG2o.js → ganttDiagram-EL5Y4UJY-o-_MUNey.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Ck3NmkSw.js → gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js} +1 -1
- package/web-shell/assets/{index-CBGz4Qjl.js → index-BK_NKxiJ.js} +1 -1
- package/web-shell/assets/index-Ci-z4zWY.js +1913 -0
- package/web-shell/assets/index-LDlXZRHA.css +36 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-B6DAOyXe.js → infoDiagram-RXCK75RN-qJPeZbGP.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-Bpg-joFo.js → ishikawaDiagram-5VMMS53U-7Om4vNo1.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-BclrHzGa.js → journeyDiagram-EYS64GPL-BNtXqmBW.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-5gJzNTYG.js → kanban-definition-3QL26DDD-COgFec8P.js} +1 -1
- package/web-shell/assets/{layout-CEz_1L8z.js → layout-B9n81PC9.js} +1 -1
- package/web-shell/assets/{linear-CBjTq9Hc.js → linear-Bb6nXZQq.js} +1 -1
- package/web-shell/assets/{mermaid.core-Dzhbxx_I.js → mermaid.core-Cgrm3JVT.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-DQdVqlBF.js → mindmap-definition-FBJOCRG2-TKwLTjnG.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-D1JZlYXL.js → pegDiagram-XKGWAZYB-BJPuvlpi.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BmkpYL0w.js → pieDiagram-E7YTZNPT-D01VkNsW.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-DRvD6co5.js → quadrantDiagram-AXDQQJYC-C4hHsiv-.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-CEdjDuoo.js → railroadDiagram-O6MQD6OU-CuEO4xK2.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BCHG-ie8.js → requirementDiagram-EFPCY7ZU-D5J_vIo5.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C9cZMnye.js → sankeyDiagram-P5KCCOFB-DQKY223V.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DYHRV4zL.js → sequenceDiagram-WJ2MYXX4-D27YV_cm.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-DlK21aye.js → sizeCapture-X5ZJPWSS-TJg8UcwV.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BrmZssvk.js → stateDiagram-HBIQ2CUA-CmnPzUIx.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-D9xfcayR.js → swimlanes-XN3QIQJK-ByeP3_Nu.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-D4gdDL_d.js → timeline-definition-24CTP7MA-BsFA5juR.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-DdhIExjI.js → vennDiagram-4TSXK5OY-DREP2ECo.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9RS_Zof.js → wardleyDiagram-VM6X3IG4-iyd9lKi2.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-orRgmxWk.js → xychartDiagram-S5SC5T6Z-CVr1_j9q.js} +1 -1
- package/web-shell/index.html +3 -3
- package/chunks/chunk-7DJCPZE3.js +0 -945
- package/chunks/chunk-J2OSJFP3.js +0 -202
- package/chunks/chunk-K2OJUPOE.js +0 -78
- package/chunks/chunk-P3QQPMQA.js +0 -19
- package/chunks/process-registry-PMJOA5CO.js +0 -172
- package/web-shell/assets/channel-CENAhErJ.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-CM6FArGH.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-CM6FArGH.js +0 -1
- package/web-shell/assets/index-8hXIpvo4.js +0 -1865
- package/web-shell/assets/index-DclEv91i.css +0 -5
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B2Q7XDaE.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DpZPOSbX.js +0 -8
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
isSessionAttachmentReference,
|
|
12
12
|
withAttachmentDegradationMarker,
|
|
13
13
|
writeStderrLine
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-SS4MRMKE.js";
|
|
15
15
|
import {
|
|
16
16
|
DEFAULT_RING_SIZE,
|
|
17
17
|
EVENT_SCHEMA_VERSION,
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
} from "./chunk-OCPBI7J5.js";
|
|
32
32
|
import {
|
|
33
33
|
defaultSpawnChannelFactory
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-DMLVSW7L.js";
|
|
35
35
|
import {
|
|
36
36
|
BridgeChannelClosedError,
|
|
37
37
|
BridgeTimeoutError,
|
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
SessionRestoreTimeoutError,
|
|
42
42
|
createIdleWorkspaceExtensionsStatus,
|
|
43
43
|
createIdleWorkspaceHooksStatus
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-KID24ZFN.js";
|
|
45
45
|
import {
|
|
46
46
|
ACTIVE_WORK_CLOSE_IF_UNHELD_PARAM,
|
|
47
47
|
ACTIVE_WORK_CLOSE_TIMEOUT_MS,
|
|
@@ -120,9 +120,8 @@ import {
|
|
|
120
120
|
isOfficeDocumentExtension,
|
|
121
121
|
isRecordableDerivedChild,
|
|
122
122
|
pathHasSkippedDirectoryComponent
|
|
123
|
-
} from "./chunk-
|
|
123
|
+
} from "./chunk-K5KXUXWC.js";
|
|
124
124
|
import {
|
|
125
|
-
SESSION_ARTIFACT_PERSISTENCE_VERSION,
|
|
126
125
|
SESSION_PR_LIST_LIMIT,
|
|
127
126
|
SESSION_PR_URL_MAX_LENGTH,
|
|
128
127
|
SESSION_TRANSCRIPT_MAX_LIMIT,
|
|
@@ -130,24 +129,31 @@ import {
|
|
|
130
129
|
TURN_RESULT_CODE_TEXT_TRUNCATED,
|
|
131
130
|
TURN_RESULT_TEXT_MAX_CHARS,
|
|
132
131
|
TrustGateError,
|
|
132
|
+
canonicalSessionPrUrl,
|
|
133
|
+
normalizeTurnResultError
|
|
134
|
+
} from "./chunk-PZ66FRIC.js";
|
|
135
|
+
import {
|
|
136
|
+
PUBLISHED_CONTENT_SHA256_METADATA_KEY,
|
|
137
|
+
SESSION_ARTIFACT_PERSISTENCE_VERSION,
|
|
133
138
|
WORKSPACE_CONTENT_MTIME_MS_METADATA_KEY,
|
|
134
139
|
WORKSPACE_CONTENT_SHA256_METADATA_KEY,
|
|
140
|
+
WORKSPACE_CONTENT_SIZE_BYTES_METADATA_KEY,
|
|
141
|
+
isAdoptableContentFingerprintKey,
|
|
135
142
|
isPrototypeMetadataKey,
|
|
136
143
|
isReservedWorkspaceMetadataKey,
|
|
137
144
|
metadataBudgetBytes,
|
|
138
145
|
normalizeSnapshotPayload,
|
|
139
|
-
normalizeTurnResultError,
|
|
140
146
|
stableSessionArtifactId
|
|
141
|
-
} from "./chunk-
|
|
147
|
+
} from "./chunk-DJBQCO2E.js";
|
|
142
148
|
import {
|
|
143
149
|
DAEMON_TRACEPARENT_META_KEY,
|
|
144
150
|
DAEMON_TRACESTATE_META_KEY
|
|
145
|
-
} from "./chunk-
|
|
151
|
+
} from "./chunk-3WK3QDNV.js";
|
|
146
152
|
import {
|
|
147
153
|
INVOCATION_CONTEXT_META_KEY,
|
|
148
154
|
PRIVATE_ACP_CAPABILITY_ENV,
|
|
149
155
|
PRIVATE_PARENT_CAPABILITY_META_KEY
|
|
150
|
-
} from "./chunk-
|
|
156
|
+
} from "./chunk-QYMAKPY5.js";
|
|
151
157
|
import {
|
|
152
158
|
init_esbuild_shims
|
|
153
159
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -1498,7 +1504,10 @@ var GenerationStreamQueue = class {
|
|
|
1498
1504
|
// packages/acp-bridge/src/sessionArtifacts.ts
|
|
1499
1505
|
init_esbuild_shims();
|
|
1500
1506
|
import { createHash } from "node:crypto";
|
|
1501
|
-
import {
|
|
1507
|
+
import {
|
|
1508
|
+
constants as fsConstants,
|
|
1509
|
+
promises as fs
|
|
1510
|
+
} from "node:fs";
|
|
1502
1511
|
import path from "node:path";
|
|
1503
1512
|
var SOURCE_RESERVATIONS = {
|
|
1504
1513
|
tool: 100,
|
|
@@ -1581,6 +1590,7 @@ var SessionArtifactStore = class {
|
|
|
1581
1590
|
async list() {
|
|
1582
1591
|
return this.enqueue(async () => {
|
|
1583
1592
|
await this.refreshWorkspaceStatuses();
|
|
1593
|
+
await this.forgetVanishedAutoRecordedArtifacts();
|
|
1584
1594
|
return {
|
|
1585
1595
|
v: 1,
|
|
1586
1596
|
sessionId: this.sessionId,
|
|
@@ -1596,9 +1606,14 @@ var SessionArtifactStore = class {
|
|
|
1596
1606
|
return this.enqueue(async () => {
|
|
1597
1607
|
const artifact = this.artifacts.get(artifactId);
|
|
1598
1608
|
if (!artifact) return void 0;
|
|
1599
|
-
if (artifact.workspacePath &&
|
|
1609
|
+
if (artifact.workspacePath && needsWorkspaceStatusRefresh(artifact, Date.now())) {
|
|
1600
1610
|
await this.refreshWorkspaceStatus(artifact, { onError: "missing" });
|
|
1601
1611
|
}
|
|
1612
|
+
if (isVanishedAutoRecordedWorkspaceArtifact(artifact)) {
|
|
1613
|
+
await this.forgetVanishedAutoRecordedArtifacts([artifact]);
|
|
1614
|
+
const kept = this.artifacts.get(artifactId);
|
|
1615
|
+
return kept ? toPublicArtifact(kept) : void 0;
|
|
1616
|
+
}
|
|
1602
1617
|
return toPublicArtifact(artifact);
|
|
1603
1618
|
});
|
|
1604
1619
|
}
|
|
@@ -1693,7 +1708,7 @@ var SessionArtifactStore = class {
|
|
|
1693
1708
|
const removeChange = {
|
|
1694
1709
|
action: "removed",
|
|
1695
1710
|
artifactId: existing.id,
|
|
1696
|
-
artifact:
|
|
1711
|
+
artifact: toRemovedPublicArtifact(existing),
|
|
1697
1712
|
reason: "explicit",
|
|
1698
1713
|
durableTombstoneRequired: existing.durableTombstoneRequired || existing.persistedAt !== void 0,
|
|
1699
1714
|
removedClientId: existing.clientId
|
|
@@ -1704,7 +1719,7 @@ var SessionArtifactStore = class {
|
|
|
1704
1719
|
changes.push({
|
|
1705
1720
|
action: "removed",
|
|
1706
1721
|
artifactId: existing.id,
|
|
1707
|
-
artifact:
|
|
1722
|
+
artifact: toRemovedPublicArtifact(existing),
|
|
1708
1723
|
reason: "unpin_to_ephemeral",
|
|
1709
1724
|
durableTombstoneRequired: true
|
|
1710
1725
|
});
|
|
@@ -1836,10 +1851,11 @@ var SessionArtifactStore = class {
|
|
|
1836
1851
|
return { v: 1, sessionId: this.sessionId, changes: [] };
|
|
1837
1852
|
}
|
|
1838
1853
|
this.denyCrossClientMutation("remove", artifactId, existing, options);
|
|
1854
|
+
const removedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
1839
1855
|
const removeChange = {
|
|
1840
1856
|
action: "removed",
|
|
1841
1857
|
artifactId,
|
|
1842
|
-
artifact:
|
|
1858
|
+
artifact: toRemovedPublicArtifact(existing, removedAt),
|
|
1843
1859
|
reason: "explicit",
|
|
1844
1860
|
durableTombstoneRequired: existing.durableTombstoneRequired || existing.retention !== "ephemeral" ? true : void 0,
|
|
1845
1861
|
removedClientId: existing.clientId
|
|
@@ -2634,7 +2650,8 @@ var SessionArtifactStore = class {
|
|
|
2634
2650
|
}
|
|
2635
2651
|
const metadata = withWorkspaceContentHashMetadata(
|
|
2636
2652
|
normalizeMetadata(input.metadata, {
|
|
2637
|
-
budget: options.metadataBudget ?? "user"
|
|
2653
|
+
budget: options.metadataBudget ?? "user",
|
|
2654
|
+
trustedPublisher
|
|
2638
2655
|
}),
|
|
2639
2656
|
workspaceStatus
|
|
2640
2657
|
);
|
|
@@ -2698,7 +2715,7 @@ var SessionArtifactStore = class {
|
|
|
2698
2715
|
}
|
|
2699
2716
|
async refreshWorkspaceStatuses() {
|
|
2700
2717
|
const now = Date.now();
|
|
2701
|
-
const staleWorkspaceArtifacts = Array.from(this.artifacts.values()).filter((artifact) => artifact.workspacePath).filter((artifact) =>
|
|
2718
|
+
const staleWorkspaceArtifacts = Array.from(this.artifacts.values()).filter((artifact) => artifact.workspacePath).filter((artifact) => needsWorkspaceStatusRefresh(artifact, now));
|
|
2702
2719
|
await runInBatches(
|
|
2703
2720
|
staleWorkspaceArtifacts,
|
|
2704
2721
|
WORKSPACE_STATUS_REFRESH_BATCH_SIZE,
|
|
@@ -2739,27 +2756,55 @@ var SessionArtifactStore = class {
|
|
|
2739
2756
|
if (!artifact.workspacePath) {
|
|
2740
2757
|
return;
|
|
2741
2758
|
}
|
|
2759
|
+
const previousStatus = artifact.status;
|
|
2760
|
+
const previousSizeBytes = artifact.sizeBytes;
|
|
2742
2761
|
try {
|
|
2743
2762
|
const status = await getWorkspaceStatus(
|
|
2744
2763
|
artifact.workspacePath,
|
|
2745
2764
|
this.getRealWorkspaceCwd(),
|
|
2746
2765
|
{
|
|
2747
|
-
sizeBytes: artifact
|
|
2766
|
+
sizeBytes: recordedWorkspaceSizeBytes(artifact),
|
|
2748
2767
|
mtimeMs: artifact.metadata?.[WORKSPACE_CONTENT_MTIME_MS_METADATA_KEY],
|
|
2749
2768
|
sha256: artifact.metadata?.[WORKSPACE_CONTENT_SHA256_METADATA_KEY]
|
|
2750
2769
|
}
|
|
2751
2770
|
);
|
|
2752
|
-
const
|
|
2753
|
-
artifact.status =
|
|
2754
|
-
|
|
2755
|
-
artifact.sizeBytes = status.sizeBytes;
|
|
2756
|
-
}
|
|
2771
|
+
const contentChanged = isWorkspaceContentChanged(artifact, status);
|
|
2772
|
+
artifact.status = contentChanged ? "changed" : status.status;
|
|
2773
|
+
artifact.missingFromStatError = void 0;
|
|
2757
2774
|
if (status.escaped) {
|
|
2758
2775
|
artifact.status = "missing";
|
|
2759
2776
|
artifact.sizeBytes = void 0;
|
|
2760
2777
|
artifact.hideWorkspacePath = true;
|
|
2778
|
+
} else if (status.status === "missing") {
|
|
2779
|
+
artifact.sizeBytes = void 0;
|
|
2780
|
+
} else if (status.sizeBytes !== void 0) {
|
|
2781
|
+
if (artifact.status === "changed" && artifact.metadata?.[WORKSPACE_CONTENT_SIZE_BYTES_METADATA_KEY] === void 0) {
|
|
2782
|
+
const baseline = recordedWorkspaceSizeBytes(artifact);
|
|
2783
|
+
if (baseline !== void 0) {
|
|
2784
|
+
artifact.metadata = {
|
|
2785
|
+
...artifact.metadata,
|
|
2786
|
+
[WORKSPACE_CONTENT_SIZE_BYTES_METADATA_KEY]: baseline
|
|
2787
|
+
};
|
|
2788
|
+
}
|
|
2789
|
+
}
|
|
2790
|
+
artifact.sizeBytes = status.sizeBytes;
|
|
2791
|
+
}
|
|
2792
|
+
if (artifact.status === "available" && !status.escaped) {
|
|
2793
|
+
artifact.metadata = withWorkspaceContentHashMetadata(
|
|
2794
|
+
artifact.metadata,
|
|
2795
|
+
{
|
|
2796
|
+
status: "available",
|
|
2797
|
+
sha256: status.sha256,
|
|
2798
|
+
mtimeMs: status.mtimeMs,
|
|
2799
|
+
sizeBytes: status.sizeBytes
|
|
2800
|
+
}
|
|
2801
|
+
);
|
|
2761
2802
|
}
|
|
2762
2803
|
artifact.lastStatAt = options.now ?? Date.now();
|
|
2804
|
+
const observationChanged = !status.escaped && status.status !== "missing" && recordWorkspaceObservation(artifact, status);
|
|
2805
|
+
if (artifact.status !== previousStatus || artifact.sizeBytes !== previousSizeBytes || observationChanged) {
|
|
2806
|
+
artifact.updatedAt = new Date(artifact.lastStatAt).toISOString();
|
|
2807
|
+
}
|
|
2763
2808
|
} catch (error) {
|
|
2764
2809
|
writeStderrLine(
|
|
2765
2810
|
`[artifacts] session=${this.sessionId} action=status_refresh_failed artifactId=${artifact.id} reason=${JSON.stringify(
|
|
@@ -2769,11 +2814,53 @@ var SessionArtifactStore = class {
|
|
|
2769
2814
|
if (options.onError === "missing") {
|
|
2770
2815
|
artifact.status = "missing";
|
|
2771
2816
|
artifact.sizeBytes = void 0;
|
|
2817
|
+
artifact.missingFromStatError = true;
|
|
2772
2818
|
artifact.lastStatAt = options.now ?? Date.now();
|
|
2819
|
+
if (previousStatus !== "missing" || previousSizeBytes !== void 0) {
|
|
2820
|
+
artifact.updatedAt = new Date(artifact.lastStatAt).toISOString();
|
|
2821
|
+
}
|
|
2773
2822
|
}
|
|
2774
2823
|
return;
|
|
2775
2824
|
}
|
|
2776
2825
|
}
|
|
2826
|
+
async forgetVanishedAutoRecordedArtifacts(candidates) {
|
|
2827
|
+
const vanished = (candidates ?? Array.from(this.artifacts.values())).filter(
|
|
2828
|
+
isVanishedAutoRecordedWorkspaceArtifact
|
|
2829
|
+
);
|
|
2830
|
+
if (vanished.length === 0) {
|
|
2831
|
+
return;
|
|
2832
|
+
}
|
|
2833
|
+
const removedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
2834
|
+
const changes = vanished.map(
|
|
2835
|
+
(existing) => ({
|
|
2836
|
+
action: "removed",
|
|
2837
|
+
artifactId: existing.id,
|
|
2838
|
+
artifact: toRemovedPublicArtifact(existing, removedAt),
|
|
2839
|
+
reason: "eviction",
|
|
2840
|
+
durableTombstoneRequired: existing.durableTombstoneRequired || existing.retention !== "ephemeral" ? true : void 0,
|
|
2841
|
+
removedClientId: existing.clientId
|
|
2842
|
+
})
|
|
2843
|
+
);
|
|
2844
|
+
const needsDurableTombstone = changes.some(
|
|
2845
|
+
(change) => change.durableTombstoneRequired === true
|
|
2846
|
+
);
|
|
2847
|
+
const before = this.cloneState();
|
|
2848
|
+
for (const artifact of vanished) {
|
|
2849
|
+
this.artifacts.delete(artifact.id);
|
|
2850
|
+
}
|
|
2851
|
+
try {
|
|
2852
|
+
await this.persistChanges(changes, needsDurableTombstone);
|
|
2853
|
+
} catch (error) {
|
|
2854
|
+
writeStderrLine(
|
|
2855
|
+
`[artifacts] session=${this.sessionId} action=vanish_forget_failed artifactIds=${JSON.stringify(
|
|
2856
|
+
vanished.map((artifact) => artifact.id)
|
|
2857
|
+
)} reason=${JSON.stringify(
|
|
2858
|
+
error instanceof Error ? error.message : String(error)
|
|
2859
|
+
)}`
|
|
2860
|
+
);
|
|
2861
|
+
this.restoreState(before);
|
|
2862
|
+
}
|
|
2863
|
+
}
|
|
2777
2864
|
getRealWorkspaceCwd() {
|
|
2778
2865
|
if (!this.realWorkspaceCwdPromise) {
|
|
2779
2866
|
const promise = fs.realpath(this.workspaceCwd).catch((error) => {
|
|
@@ -2807,7 +2894,7 @@ var SessionArtifactStore = class {
|
|
|
2807
2894
|
(artifact) => !createdInThisBatch.has(artifact.id)
|
|
2808
2895
|
);
|
|
2809
2896
|
const now = Date.now();
|
|
2810
|
-
const staleWorkspaceCandidates = candidates.filter((artifact) => artifact.workspacePath).filter((artifact) =>
|
|
2897
|
+
const staleWorkspaceCandidates = candidates.filter((artifact) => artifact.workspacePath).filter((artifact) => needsWorkspaceStatusRefresh(artifact, now));
|
|
2811
2898
|
await runInBatches(
|
|
2812
2899
|
staleWorkspaceCandidates,
|
|
2813
2900
|
WORKSPACE_STATUS_REFRESH_BATCH_SIZE,
|
|
@@ -2824,7 +2911,7 @@ var SessionArtifactStore = class {
|
|
|
2824
2911
|
removed.push({
|
|
2825
2912
|
action: "removed",
|
|
2826
2913
|
artifactId: artifact.id,
|
|
2827
|
-
artifact:
|
|
2914
|
+
artifact: toRemovedPublicArtifact(artifact),
|
|
2828
2915
|
durableTombstoneRequired: artifact.durableTombstoneRequired,
|
|
2829
2916
|
reason: "eviction"
|
|
2830
2917
|
});
|
|
@@ -2947,7 +3034,10 @@ function mergeArtifact(existing, incoming) {
|
|
|
2947
3034
|
trustedPublisher: existing.trustedPublisher || incoming.trustedPublisher,
|
|
2948
3035
|
clientRetained: existing.clientRetained || incoming.clientRetained,
|
|
2949
3036
|
lastStatAt: publishedUpdate || existing.storage === "published" ? void 0 : incoming.lastStatAt ?? existing.lastStatAt,
|
|
2950
|
-
updatedAt: existing.updatedAt
|
|
3037
|
+
updatedAt: existing.updatedAt,
|
|
3038
|
+
lastObservedSha256: void 0,
|
|
3039
|
+
lastObservedSizeBytes: void 0,
|
|
3040
|
+
lastObservedMtimeMs: void 0
|
|
2951
3041
|
};
|
|
2952
3042
|
if (publishedUpdate) {
|
|
2953
3043
|
next.title = incoming.title;
|
|
@@ -3046,7 +3136,7 @@ function mergeMetadata(existing, incoming) {
|
|
|
3046
3136
|
const merged = { ...existing.metadata ?? {} };
|
|
3047
3137
|
let changed = false;
|
|
3048
3138
|
for (const [key, value] of Object.entries(incoming.metadata)) {
|
|
3049
|
-
if ((key
|
|
3139
|
+
if (isAdoptableContentFingerprintKey(key) && merged[key] !== value) {
|
|
3050
3140
|
merged[key] = value;
|
|
3051
3141
|
changed = true;
|
|
3052
3142
|
} else if (!Object.hasOwn(merged, key)) {
|
|
@@ -3082,14 +3172,26 @@ function countByRetentionSource(artifacts) {
|
|
|
3082
3172
|
return counts;
|
|
3083
3173
|
}
|
|
3084
3174
|
__name(countByRetentionSource, "countByRetentionSource");
|
|
3175
|
+
function isVanishedAutoRecordedWorkspaceArtifact(artifact) {
|
|
3176
|
+
return artifact.toolName === "write_file" && artifact.workspacePath !== void 0 && artifact.status === "missing" && artifact.missingFromStatError !== true && artifact.hideWorkspacePath !== true;
|
|
3177
|
+
}
|
|
3178
|
+
__name(isVanishedAutoRecordedWorkspaceArtifact, "isVanishedAutoRecordedWorkspaceArtifact");
|
|
3085
3179
|
function shouldRefreshWorkspaceStatus(artifact, now) {
|
|
3086
3180
|
return artifact.lastStatAt === void 0 || now - artifact.lastStatAt >= WORKSPACE_STATUS_REFRESH_TTL_MS;
|
|
3087
3181
|
}
|
|
3088
3182
|
__name(shouldRefreshWorkspaceStatus, "shouldRefreshWorkspaceStatus");
|
|
3183
|
+
function needsWorkspaceStatusRefresh(artifact, now) {
|
|
3184
|
+
return shouldRefreshWorkspaceStatus(artifact, now) || shouldRecheckWriteFilePresence(artifact);
|
|
3185
|
+
}
|
|
3186
|
+
__name(needsWorkspaceStatusRefresh, "needsWorkspaceStatusRefresh");
|
|
3187
|
+
function shouldRecheckWriteFilePresence(artifact) {
|
|
3188
|
+
return artifact.toolName === "write_file" && (artifact.status === "available" || artifact.status === "missing" && artifact.missingFromStatError !== true && artifact.hideWorkspacePath !== true);
|
|
3189
|
+
}
|
|
3190
|
+
__name(shouldRecheckWriteFilePresence, "shouldRecheckWriteFilePresence");
|
|
3089
3191
|
function selectEvictionCandidate(candidates, sourceCounts) {
|
|
3090
3192
|
return oldest(
|
|
3091
3193
|
candidates,
|
|
3092
|
-
(artifact) => artifact.status === "missing" && !artifact.clientRetained
|
|
3194
|
+
(artifact) => artifact.status === "missing" && artifact.missingFromStatError !== true && !artifact.clientRetained
|
|
3093
3195
|
) ?? oldest(
|
|
3094
3196
|
candidates,
|
|
3095
3197
|
(artifact) => !artifact.clientRetained && sourceCounts[artifact.retentionSource] > SOURCE_RESERVATIONS[artifact.retentionSource]
|
|
@@ -3176,6 +3278,10 @@ function toPublicArtifact(artifact) {
|
|
|
3176
3278
|
};
|
|
3177
3279
|
}
|
|
3178
3280
|
__name(toPublicArtifact, "toPublicArtifact");
|
|
3281
|
+
function toRemovedPublicArtifact(artifact, removedAt = (/* @__PURE__ */ new Date()).toISOString()) {
|
|
3282
|
+
return { ...toPublicArtifact(artifact), updatedAt: removedAt };
|
|
3283
|
+
}
|
|
3284
|
+
__name(toRemovedPublicArtifact, "toRemovedPublicArtifact");
|
|
3179
3285
|
function persistedArtifactToInput(artifact) {
|
|
3180
3286
|
return {
|
|
3181
3287
|
title: artifact.title,
|
|
@@ -3202,7 +3308,7 @@ function workspaceExpectedFromArtifact(artifact) {
|
|
|
3202
3308
|
return void 0;
|
|
3203
3309
|
}
|
|
3204
3310
|
return {
|
|
3205
|
-
sizeBytes: artifact
|
|
3311
|
+
sizeBytes: recordedWorkspaceSizeBytes(artifact),
|
|
3206
3312
|
mtimeMs: artifact.metadata?.[WORKSPACE_CONTENT_MTIME_MS_METADATA_KEY],
|
|
3207
3313
|
sha256: artifact.metadata?.[WORKSPACE_CONTENT_SHA256_METADATA_KEY]
|
|
3208
3314
|
};
|
|
@@ -3649,8 +3755,13 @@ function normalizeMetadata(metadata, options = {}) {
|
|
|
3649
3755
|
if (isPrototypeMetadataKey(key)) {
|
|
3650
3756
|
continue;
|
|
3651
3757
|
}
|
|
3652
|
-
if (options.budget !== "persisted"
|
|
3653
|
-
|
|
3758
|
+
if (options.budget !== "persisted") {
|
|
3759
|
+
if (isReservedWorkspaceMetadataKey(key)) {
|
|
3760
|
+
continue;
|
|
3761
|
+
}
|
|
3762
|
+
if (key === PUBLISHED_CONTENT_SHA256_METADATA_KEY && options.trustedPublisher !== true) {
|
|
3763
|
+
continue;
|
|
3764
|
+
}
|
|
3654
3765
|
}
|
|
3655
3766
|
if (!key) {
|
|
3656
3767
|
throw new SessionArtifactValidationError(
|
|
@@ -3768,16 +3879,16 @@ async function getWorkspaceStatus(workspacePath, realWorkspaceCwd, expected, opt
|
|
|
3768
3879
|
if (!relative || isOutsidePath(relative)) {
|
|
3769
3880
|
return { status: "missing", escaped: true };
|
|
3770
3881
|
}
|
|
3771
|
-
const preOpenStat = await fs.lstat(realPath);
|
|
3882
|
+
const preOpenStat = await fs.lstat(realPath, { bigint: true });
|
|
3772
3883
|
const handle = await fs.open(
|
|
3773
3884
|
realPath,
|
|
3774
3885
|
fsConstants.O_RDONLY | fsConstants.O_NOFOLLOW
|
|
3775
3886
|
);
|
|
3776
3887
|
try {
|
|
3777
|
-
|
|
3778
|
-
if (!isSameFile(preOpenStat, stat)) {
|
|
3888
|
+
if (!isSameFile(preOpenStat, await handle.stat({ bigint: true }))) {
|
|
3779
3889
|
return { status: "missing", escaped: true };
|
|
3780
3890
|
}
|
|
3891
|
+
const stat = await handle.stat();
|
|
3781
3892
|
if (!stat.isFile()) {
|
|
3782
3893
|
throw new Error("path is not a regular file");
|
|
3783
3894
|
}
|
|
@@ -3818,7 +3929,8 @@ async function getWorkspaceStatus(workspacePath, realWorkspaceCwd, expected, opt
|
|
|
3818
3929
|
return {
|
|
3819
3930
|
status: "changed",
|
|
3820
3931
|
sizeBytes: stat.size,
|
|
3821
|
-
mtimeMs: stat.mtimeMs
|
|
3932
|
+
mtimeMs: stat.mtimeMs,
|
|
3933
|
+
sha256
|
|
3822
3934
|
};
|
|
3823
3935
|
}
|
|
3824
3936
|
return {
|
|
@@ -3857,23 +3969,51 @@ async function hashFile(handle) {
|
|
|
3857
3969
|
}
|
|
3858
3970
|
__name(hashFile, "hashFile");
|
|
3859
3971
|
function withWorkspaceContentHashMetadata(metadata, workspaceStatus) {
|
|
3860
|
-
if (workspaceStatus?.status !== "available" ||
|
|
3972
|
+
if (workspaceStatus?.status !== "available" || workspaceStatus.sha256 === void 0 && workspaceStatus.sizeBytes === void 0) {
|
|
3861
3973
|
return metadata;
|
|
3862
3974
|
}
|
|
3863
3975
|
const next = {
|
|
3864
3976
|
...metadata ?? {},
|
|
3865
|
-
[WORKSPACE_CONTENT_SHA256_METADATA_KEY]: workspaceStatus.sha256,
|
|
3866
|
-
...workspaceStatus.mtimeMs !== void 0 ? { [WORKSPACE_CONTENT_MTIME_MS_METADATA_KEY]: workspaceStatus.mtimeMs } : {}
|
|
3977
|
+
...workspaceStatus.sha256 ? { [WORKSPACE_CONTENT_SHA256_METADATA_KEY]: workspaceStatus.sha256 } : {},
|
|
3978
|
+
...workspaceStatus.mtimeMs !== void 0 ? { [WORKSPACE_CONTENT_MTIME_MS_METADATA_KEY]: workspaceStatus.mtimeMs } : {},
|
|
3979
|
+
...workspaceStatus.sizeBytes !== void 0 ? {
|
|
3980
|
+
[WORKSPACE_CONTENT_SIZE_BYTES_METADATA_KEY]: workspaceStatus.sizeBytes
|
|
3981
|
+
} : {}
|
|
3867
3982
|
};
|
|
3868
3983
|
return next;
|
|
3869
3984
|
}
|
|
3870
3985
|
__name(withWorkspaceContentHashMetadata, "withWorkspaceContentHashMetadata");
|
|
3986
|
+
function recordedWorkspaceSizeBytes(artifact) {
|
|
3987
|
+
const recorded = artifact.metadata?.[WORKSPACE_CONTENT_SIZE_BYTES_METADATA_KEY];
|
|
3988
|
+
if (typeof recorded === "number" && Number.isFinite(recorded)) {
|
|
3989
|
+
return recorded;
|
|
3990
|
+
}
|
|
3991
|
+
return artifact.sizeBytes;
|
|
3992
|
+
}
|
|
3993
|
+
__name(recordedWorkspaceSizeBytes, "recordedWorkspaceSizeBytes");
|
|
3994
|
+
function recordWorkspaceObservation(artifact, status) {
|
|
3995
|
+
const hadObservation = artifact.lastObservedSha256 !== void 0 || artifact.lastObservedSizeBytes !== void 0 || artifact.lastObservedMtimeMs !== void 0;
|
|
3996
|
+
let changed = false;
|
|
3997
|
+
if (hadObservation) {
|
|
3998
|
+
if (status.sha256 !== void 0 && artifact.lastObservedSha256 !== void 0) {
|
|
3999
|
+
changed = status.sha256 !== artifact.lastObservedSha256;
|
|
4000
|
+
} else {
|
|
4001
|
+
changed = status.sizeBytes !== artifact.lastObservedSizeBytes || status.mtimeMs !== artifact.lastObservedMtimeMs;
|
|
4002
|
+
}
|
|
4003
|
+
}
|
|
4004
|
+
artifact.lastObservedSha256 = status.sha256;
|
|
4005
|
+
artifact.lastObservedSizeBytes = status.sizeBytes;
|
|
4006
|
+
artifact.lastObservedMtimeMs = status.mtimeMs;
|
|
4007
|
+
return changed;
|
|
4008
|
+
}
|
|
4009
|
+
__name(recordWorkspaceObservation, "recordWorkspaceObservation");
|
|
3871
4010
|
function isWorkspaceContentChanged(artifact, status) {
|
|
3872
4011
|
if (status.status !== "available") {
|
|
3873
4012
|
return false;
|
|
3874
4013
|
}
|
|
3875
4014
|
const expectedSha256 = artifact.metadata?.[WORKSPACE_CONTENT_SHA256_METADATA_KEY];
|
|
3876
|
-
|
|
4015
|
+
const expectedSize = recordedWorkspaceSizeBytes(artifact);
|
|
4016
|
+
if (expectedSize !== void 0 && status.sizeBytes !== void 0 && status.sizeBytes !== expectedSize) {
|
|
3877
4017
|
return true;
|
|
3878
4018
|
}
|
|
3879
4019
|
return typeof expectedSha256 === "string" && status.sha256 !== void 0 && status.sha256 !== expectedSha256;
|
|
@@ -10065,10 +10205,10 @@ function createAcpSessionBridge(opts) {
|
|
|
10065
10205
|
if (pr === null || typeof pr !== "object" || typeof pr.number !== "number" || !Number.isInteger(pr.number) || pr.number <= 0 || typeof pr.url !== "string" || pr.url.length > SESSION_PR_URL_MAX_LENGTH || !/^https?:\/\//i.test(pr.url) || // The url is interpolated into the stderr audit line — control
|
|
10066
10206
|
// characters would let a client forge log lines (the displayName
|
|
10067
10207
|
// branch rejects them for the same reason).
|
|
10068
|
-
hasControlCharacter2(pr.url)) {
|
|
10208
|
+
hasControlCharacter2(pr.url) || pr.state !== void 0 && pr.state !== "open" && pr.state !== "merged" && pr.state !== "closed") {
|
|
10069
10209
|
throw new InvalidSessionMetadataError(
|
|
10070
10210
|
"pr",
|
|
10071
|
-
`must be an object with a positive integer \`number\` and an http(s) \`url\` of at most ${SESSION_PR_URL_MAX_LENGTH} characters, without control characters
|
|
10211
|
+
`must be an object with a positive integer \`number\` and an http(s) \`url\` of at most ${SESSION_PR_URL_MAX_LENGTH} characters, without control characters, and an optional \`state\` of \`open\`, \`merged\`, or \`closed\``
|
|
10072
10212
|
);
|
|
10073
10213
|
}
|
|
10074
10214
|
}
|
|
@@ -10124,11 +10264,22 @@ function createAcpSessionBridge(opts) {
|
|
|
10124
10264
|
const bound = metadata.pr;
|
|
10125
10265
|
const existing = entry.prs ?? [];
|
|
10126
10266
|
const latest = existing[existing.length - 1];
|
|
10127
|
-
if (latest?.number === bound.number && latest.url === bound.url
|
|
10267
|
+
if (latest?.number === bound.number && latest.url === bound.url && // A re-bind carrying a new state is a change: the live entry,
|
|
10268
|
+
// the metadata event, and the catalog revision must all see it.
|
|
10269
|
+
(bound.state === void 0 || bound.state === latest.state)) {
|
|
10128
10270
|
} else {
|
|
10271
|
+
const known = existing.find(
|
|
10272
|
+
(p) => p.number === bound.number && canonicalSessionPrUrl(p.url) === canonicalSessionPrUrl(bound.url)
|
|
10273
|
+
);
|
|
10129
10274
|
entry.prs = [
|
|
10130
10275
|
...existing.filter((p) => p.number !== bound.number),
|
|
10131
|
-
{
|
|
10276
|
+
{
|
|
10277
|
+
number: bound.number,
|
|
10278
|
+
url: bound.url,
|
|
10279
|
+
...bound.state ?? known?.state ? {
|
|
10280
|
+
state: bound.state ?? known?.state
|
|
10281
|
+
} : {}
|
|
10282
|
+
}
|
|
10132
10283
|
].slice(-SESSION_PR_LIST_LIMIT);
|
|
10133
10284
|
markSessionCatalogChanged();
|
|
10134
10285
|
writeStderrLine(
|
|
@@ -10158,7 +10309,20 @@ function createAcpSessionBridge(opts) {
|
|
|
10158
10309
|
seedSessionPrs(sessionId, prs) {
|
|
10159
10310
|
const entry = byId.get(sessionId);
|
|
10160
10311
|
if (!entry || entry.prs && entry.prs.length > 0) return;
|
|
10161
|
-
entry.prs = prs.map(({ number, url }) => ({
|
|
10312
|
+
entry.prs = prs.map(({ number, url, state }) => ({
|
|
10313
|
+
number,
|
|
10314
|
+
url,
|
|
10315
|
+
...state ? { state } : {}
|
|
10316
|
+
})).slice(-SESSION_PR_LIST_LIMIT);
|
|
10317
|
+
},
|
|
10318
|
+
setSessionPrs(sessionId, prs) {
|
|
10319
|
+
const entry = byId.get(sessionId);
|
|
10320
|
+
if (!entry) return;
|
|
10321
|
+
entry.prs = prs.map(({ number, url, state }) => ({
|
|
10322
|
+
number,
|
|
10323
|
+
url,
|
|
10324
|
+
...state ? { state } : {}
|
|
10325
|
+
})).slice(-SESSION_PR_LIST_LIMIT);
|
|
10162
10326
|
},
|
|
10163
10327
|
async getSessionArtifacts(sessionId, context) {
|
|
10164
10328
|
const entry = byId.get(sessionId);
|
|
@@ -2,30 +2,30 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getExtensionManager
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6ZPDLGHN.js";
|
|
6
6
|
import {
|
|
7
7
|
parseChannelConfig
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-Y5S7LBOZ.js";
|
|
9
9
|
import {
|
|
10
10
|
getPlugin,
|
|
11
11
|
registerPlugin
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-3XKLXHGK.js";
|
|
13
13
|
import {
|
|
14
14
|
sanitizeLogText
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ICURCKIU.js";
|
|
16
16
|
import {
|
|
17
17
|
loadSettings
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-AIAOIFY4.js";
|
|
19
19
|
import {
|
|
20
20
|
hashDaemonWorkspace
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-3WK3QDNV.js";
|
|
22
22
|
import {
|
|
23
23
|
Storage
|
|
24
24
|
} from "./chunk-UHQFIS7N.js";
|
|
25
25
|
import {
|
|
26
26
|
writeStderrLine,
|
|
27
27
|
writeStdoutLine
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-7FA2II6K.js";
|
|
29
29
|
import {
|
|
30
30
|
init_esbuild_shims
|
|
31
31
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -32,13 +32,22 @@ var writeStderrLineSafe = /* @__PURE__ */ __name((message) => {
|
|
|
32
32
|
var clearScreen = /* @__PURE__ */ __name(() => {
|
|
33
33
|
console.clear();
|
|
34
34
|
}, "clearScreen");
|
|
35
|
+
var ignoreBrokenPipe = /* @__PURE__ */ __name(() => {
|
|
36
|
+
process.stdout.on("error", (err) => {
|
|
37
|
+
if (err.code === "EPIPE") process.stdout.destroy();
|
|
38
|
+
});
|
|
39
|
+
process.stderr.on("error", (err) => {
|
|
40
|
+
if (err.code === "EPIPE") process.stderr.destroy();
|
|
41
|
+
});
|
|
42
|
+
}, "ignoreBrokenPipe");
|
|
35
43
|
|
|
36
44
|
export {
|
|
37
45
|
writeStdoutLine,
|
|
38
46
|
writeStderrLine,
|
|
39
47
|
writeStdoutLineSafe,
|
|
40
48
|
writeStderrLineSafe,
|
|
41
|
-
clearScreen
|
|
49
|
+
clearScreen,
|
|
50
|
+
ignoreBrokenPipe
|
|
42
51
|
};
|
|
43
52
|
/**
|
|
44
53
|
* @license
|