@qwen-code/qwen-code 0.23.0 → 0.23.1-preview.1
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/new-app/SKILL.md +1 -1
- package/bundled/qc-helper/docs/configuration/auth.md +84 -12
- package/bundled/qc-helper/docs/configuration/settings.md +76 -74
- package/bundled/qc-helper/docs/features/arena.md +15 -20
- package/bundled/qc-helper/docs/features/channels/overview.md +7 -2
- package/bundled/qc-helper/docs/features/code-review.md +22 -19
- package/bundled/qc-helper/docs/features/commands.md +51 -10
- package/bundled/qc-helper/docs/features/followup-suggestions.md +1 -1
- package/bundled/qc-helper/docs/features/goals.md +8 -0
- package/bundled/qc-helper/docs/features/headless.md +2 -2
- package/bundled/qc-helper/docs/features/hooks.md +19 -19
- package/bundled/qc-helper/docs/features/output-styles.md +35 -2
- package/bundled/qc-helper/docs/qwen-serve.md +67 -52
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +3 -1
- package/bundled/qc-helper/docs/support/troubleshooting.md +3 -3
- package/bundled/review/SKILL.md +45 -41
- package/bundled/review/references/aone.md +1 -1
- package/bundled/review/references/posting.md +1 -1
- package/bundled/workflow-creator/SKILL.md +48 -0
- package/bundled/zvec-grep-install/SKILL.md +57 -0
- package/chunks/MaxSizedBox-5ARLO5PR.js +116 -0
- package/chunks/{StandaloneSessionPicker-QUMO4LLQ.js → StandaloneSessionPicker-T6B322CB.js} +87 -82
- package/chunks/{acp-startup-profiler-M4X5F3VK.js → acp-startup-profiler-6ULXXQMS.js} +2 -2
- package/chunks/{acpAgent-2GTFCIEP.js → acpAgent-WTDEY5KD.js} +1041 -364
- package/chunks/{agent-XKF5SZWU.js → agent-NXPUXEVZ.js} +46 -43
- package/chunks/agent-headless-QQZTWOKO.js +88 -0
- package/chunks/{anthropicContentGenerator-L76MR5OR.js → anthropicContentGenerator-6XDHXIII.js} +16 -9
- package/chunks/{artifact-tool-MYCL2QCS.js → artifact-tool-DFVVJXL2.js} +3 -3
- package/chunks/askUserQuestion-GF7VQ44M.js +14 -0
- package/chunks/bridge-OHY5OGOZ.js +123 -0
- package/chunks/{ca-BNU7YNDE.js → ca-KC2AISNS.js} +1 -0
- package/chunks/{channel-management-service-4MTCEGJB.js → channel-management-service-ZDDG3G5S.js} +4 -4
- package/chunks/channel-settings-store-7BJAS2SU.js +126 -0
- package/chunks/{channel-worker-group-47F4ISUZ.js → channel-worker-group-2ISMRENV.js} +6 -6
- package/chunks/{channel-worker-manager-I5Y44GYR.js → channel-worker-manager-VSRPVPRH.js} +6 -6
- package/chunks/{channel-worker-supervisor-6VCLUXFE.js → channel-worker-supervisor-SRJBK72Z.js} +4 -4
- package/chunks/{chunk-5RTTI4GE.js → chunk-2RYWGYB3.js} +4 -3
- package/chunks/{chunk-FUO5V5KI.js → chunk-2UWQX4FP.js} +2 -2
- package/chunks/{chunk-L26ONV2Y.js → chunk-2WGJG2KW.js} +9 -8
- package/chunks/{chunk-JHN7UIDW.js → chunk-2XRE4KE4.js} +1 -1
- package/chunks/chunk-32CM56LO.js +20 -0
- package/chunks/{chunk-SI7WDR3U.js → chunk-32YDNYXP.js} +129 -14
- package/chunks/{chunk-ZHO2CW6D.js → chunk-3CZ2BQV6.js} +1 -1
- package/chunks/{chunk-FD5SJOWT.js → chunk-3K456UJF.js} +9 -4
- package/chunks/{chunk-5M6IDOMF.js → chunk-3K65MUKD.js} +105 -0
- package/chunks/chunk-3UMWOKJC.js +78 -0
- package/chunks/{chunk-UM2FFKXN.js → chunk-43JNQAHO.js} +3 -3
- package/chunks/{chunk-KM3XVTMO.js → chunk-43NOB5NM.js} +112 -12
- package/chunks/{chunk-G5PBOQWI.js → chunk-47BZVBTE.js} +3 -3
- package/chunks/{chunk-32LU3APX.js → chunk-4F2QRVW6.js} +1 -1
- package/chunks/{chunk-KMU3ZHH4.js → chunk-4HC4DYKN.js} +2 -2
- package/chunks/{chunk-22UH7VTP.js → chunk-4HOEU2OR.js} +1 -1
- package/chunks/{chunk-NXKOVOM5.js → chunk-4IQKBLTQ.js} +15 -9
- package/chunks/{chunk-M4KFODIP.js → chunk-4JAGXZR3.js} +1 -1
- package/chunks/{chunk-PDAKFU7M.js → chunk-4LIPOIXS.js} +1 -1
- package/chunks/{chunk-LEPCWS5A.js → chunk-4MCY33Y2.js} +3 -3
- package/chunks/{chunk-U6D2PPMN.js → chunk-4VUVBN3Y.js} +1 -1
- package/chunks/{chunk-37JFWFCD.js → chunk-4VZCORNT.js} +1 -1
- package/chunks/{daemon-RKDGBFLK.js → chunk-537SQ2AI.js} +2216 -1721
- package/chunks/{chunk-VNAYZAFX.js → chunk-54TF2ZIQ.js} +4 -4
- package/chunks/{chunk-OKTNXDVO.js → chunk-565U2ANU.js} +1 -1
- package/chunks/chunk-5ETULJLP.js +74 -0
- package/chunks/{chunk-ADYN7P2Y.js → chunk-5JLQWQK6.js} +8 -6
- package/chunks/{chunk-BFY33IB4.js → chunk-5MTARK4Y.js} +7 -7
- package/chunks/{chunk-BJXCYUGM.js → chunk-5YY5MZT6.js} +1 -1
- package/chunks/{chunk-4PSDSCW3.js → chunk-64MQTIX7.js} +3 -3
- package/chunks/{chunk-54C6PIGT.js → chunk-6UIACMGH.js} +3 -3
- package/chunks/{chunk-ALUYNJPM.js → chunk-7BZS4ZDV.js} +1362 -1140
- package/chunks/{chunk-LB3WQQJK.js → chunk-7OCIQNKX.js} +2 -2
- package/chunks/{chunk-QKDNS6FU.js → chunk-7VEYUF3N.js} +13 -2
- package/chunks/{chunk-AZJLY2XZ.js → chunk-AHBLRVD5.js} +5 -5
- package/chunks/{chunk-VWTSRH6C.js → chunk-AQ5NAGWI.js} +89 -17
- package/chunks/{chunk-MOF6VZN2.js → chunk-AXPOOQAW.js} +2 -2
- package/chunks/{chunk-CVX63TFJ.js → chunk-B44JBZBB.js} +3 -3
- package/chunks/{chunk-AI35S34R.js → chunk-B54PFQS5.js} +3 -3
- package/chunks/{chunk-373DQUVA.js → chunk-BF3RUIVP.js} +5 -4
- package/chunks/{chunk-RJUVTJEZ.js → chunk-BKNY7PDI.js} +1 -1
- package/chunks/{chunk-UKYXYWI2.js → chunk-BUQN5LTI.js} +2 -2
- package/chunks/{chunk-O5CD7T4T.js → chunk-BW4333PP.js} +0 -95
- package/chunks/{chunk-UPFRILIL.js → chunk-CWNC7M73.js} +2 -2
- package/chunks/{chunk-3L724BJ5.js → chunk-CZACBHAW.js} +6 -6
- package/chunks/{chunk-EBDGRBZX.js → chunk-D4CU6DKR.js} +6 -6
- package/chunks/{chunk-G7HBEEX7.js → chunk-D6PIMKY3.js} +9 -9
- package/chunks/{chunk-ENYUKMFK.js → chunk-DJXSOEFB.js} +1 -1
- package/chunks/{chunk-C2VWOXHS.js → chunk-DNPHKA72.js} +8 -8
- package/chunks/{chunk-UUASLXHW.js → chunk-E4L5BM2B.js} +5 -5
- package/chunks/{chunk-HT5S5TRQ.js → chunk-EDIDYZBT.js} +4 -11
- package/chunks/{chunk-5H5S4UY5.js → chunk-EFT7OMDN.js} +1 -1
- package/chunks/{chunk-GB4UKWY5.js → chunk-EJNYBDYC.js} +2 -2
- package/chunks/{chunk-NQ4L2CMD.js → chunk-ER273QE6.js} +53 -9
- package/chunks/{chunk-RKW36UWC.js → chunk-EWNKP4V4.js} +1 -1
- package/chunks/{chunk-UJ4DUYIH.js → chunk-F53KKZUD.js} +2 -2
- package/chunks/{chunk-EFTPIZIC.js → chunk-FDOGGKAA.js} +21 -0
- package/chunks/{chunk-AQ37AY7B.js → chunk-FKJM6JKY.js} +5 -0
- package/chunks/{chunk-KEVYJSI4.js → chunk-G34YLYCS.js} +13 -13
- package/chunks/{chunk-P6UIF2OW.js → chunk-GCFZ2LAX.js} +195 -10
- package/chunks/{chunk-VGHZT6JR.js → chunk-GELRJXE2.js} +1 -1
- package/chunks/{chunk-ZDFQGHZH.js → chunk-GMNLYQOS.js} +1 -1
- package/chunks/{chunk-KOGW3YWJ.js → chunk-GVVCLL2P.js} +12 -12
- package/chunks/{chunk-OSSTATJF.js → chunk-GXZHYPHZ.js} +428 -30
- package/chunks/{chunk-IPATA3T2.js → chunk-GZWW2QWR.js} +2 -2
- package/chunks/{chunk-C4TIXFDZ.js → chunk-H3UDNQLO.js} +6 -4
- package/chunks/chunk-HD7O6WLV.js +18 -0
- package/chunks/{chunk-4UANMABT.js → chunk-HFTB354P.js} +259 -49
- package/chunks/{chunk-LOBDDFYK.js → chunk-HJ34U5J4.js} +5 -5
- package/chunks/{chunk-M4LBBSVP.js → chunk-HY3DXYZK.js} +2 -2
- package/chunks/{chunk-4F7GQGXB.js → chunk-I72PHOKL.js} +1451 -415
- package/chunks/{chunk-YPWZTR7F.js → chunk-IFD3BTEA.js} +3 -3
- package/chunks/{chunk-EWRW2WQC.js → chunk-IKLFS6SC.js} +5 -5
- package/chunks/{chunk-VPSIC437.js → chunk-IQN2CCIE.js} +66 -6
- package/chunks/{chunk-F7NF2IOE.js → chunk-IXSGOSEG.js} +7 -7
- package/chunks/{chunk-ODZF64DM.js → chunk-IZ2U57NY.js} +1 -1
- package/chunks/{chunk-4BGDFKQE.js → chunk-J3O5I5ZD.js} +24 -7
- package/chunks/{chunk-DYTW3QVG.js → chunk-J6MB5ZHZ.js} +1 -1
- package/chunks/{chunk-HJBHMANB.js → chunk-JBTZUFR4.js} +11 -8
- package/chunks/{chunk-SRF4KTAG.js → chunk-JLWFGYXU.js} +4 -4
- package/chunks/{chunk-SX2QIMJV.js → chunk-JOPC3FND.js} +5 -5
- package/chunks/chunk-JPEAQJNS.js +2142 -0
- package/chunks/{chunk-ZTPGUFQV.js → chunk-JRYL3T2O.js} +24 -5
- package/chunks/{chunk-GXUTFQXK.js → chunk-KE3Q4JMY.js} +4 -4
- package/chunks/{chunk-LKODFJRD.js → chunk-KFFCDLKV.js} +1 -1
- package/chunks/{chunk-4M24B5J5.js → chunk-KJJPJYHI.js} +79 -30
- package/chunks/chunk-KK2GZGBK.js +21080 -0
- package/chunks/{chunk-64QH2UC6.js → chunk-KPXRFTT7.js} +12 -1
- package/chunks/{chunk-JZWOCUZ3.js → chunk-L4R7BCVV.js} +1 -1
- package/chunks/{chunk-IG4W5SJR.js → chunk-LDS57224.js} +3 -3
- package/chunks/{chunk-UAKRDON5.js → chunk-LK7S2D6V.js} +4 -4
- package/chunks/{chunk-4HVH57J3.js → chunk-LMJQSPWB.js} +21 -6
- package/chunks/{chunk-ANVG3BVV.js → chunk-LNYV4GXX.js} +13 -3
- package/chunks/{chunk-RM4WT2XB.js → chunk-LPBQODMR.js} +4 -4
- package/chunks/{chunk-XEAAO654.js → chunk-M3JGHRMQ.js} +1 -1
- package/chunks/{chunk-AMDSOFFV.js → chunk-MATEIJZF.js} +1 -0
- package/chunks/{chunk-LHBNR6EU.js → chunk-MNEYUNOE.js} +2 -2
- package/chunks/{chunk-I4NRYS6A.js → chunk-MUZCSTOO.js} +11 -11
- package/chunks/{chunk-I5N4EAS6.js → chunk-MWHY26G3.js} +1 -1
- package/chunks/{chunk-7XL4WRXM.js → chunk-N6VQ37ZZ.js} +2 -2
- package/chunks/{chunk-AHYTURFB.js → chunk-N7EYO2E7.js} +1 -1
- package/chunks/{chunk-LU77UT4D.js → chunk-N7VURC4O.js} +24 -26
- package/chunks/{chunk-DSX7KQPM.js → chunk-NAKALAL4.js} +227 -29
- package/chunks/{chunk-QQD2GART.js → chunk-NGX4NUNP.js} +3 -3
- package/chunks/{chunk-2M3EWQNG.js → chunk-NUQFUXOG.js} +17 -1
- package/chunks/{chunk-E4JNFXNI.js → chunk-NXWYCSPL.js} +3 -3
- package/chunks/{chunk-6A2D4QSO.js → chunk-O2GG7H4C.js} +4 -4
- package/chunks/{chunk-ZKFTS3OV.js → chunk-O45WBTNS.js} +6 -6
- package/chunks/{chunk-KGV55H53.js → chunk-OECNP26L.js} +1 -1
- package/chunks/{chunk-S6H3ELPG.js → chunk-P4RUUG64.js} +1 -1
- package/chunks/{chunk-GH2S4GD5.js → chunk-P5LDR7FI.js} +21 -68
- package/chunks/{chunk-RN3YGDCA.js → chunk-P6LATTDG.js} +4 -4
- package/chunks/{chunk-WP4AX3XD.js → chunk-PTFFWTTO.js} +3 -3
- package/chunks/{chunk-DTVQSSNM.js → chunk-PZUOHCWI.js} +3 -3
- package/chunks/{chunk-VYIUNFEA.js → chunk-PZV2FASB.js} +3 -3
- package/chunks/{chunk-XLXAZLDR.js → chunk-Q2SAQTEJ.js} +1 -1
- package/chunks/{chunk-47RYEQW5.js → chunk-QMFOYPGV.js} +2 -2
- package/chunks/{chunk-SULZPKTA.js → chunk-QSC5YOEC.js} +3 -3
- package/chunks/{chunk-F33GFWPR.js → chunk-QWZOOIR3.js} +58 -18
- package/chunks/{chunk-H43PSPYS.js → chunk-R355CUNQ.js} +4 -4
- package/chunks/{chunk-DQCKVAF5.js → chunk-RDKXZ2LS.js} +3 -3
- package/chunks/{chunk-7JMGTOH7.js → chunk-RPBMP6BN.js} +21 -1
- package/chunks/{chunk-5Q5RC2WE.js → chunk-RVNS7NWN.js} +2 -2
- package/chunks/{chunk-7RB56BRJ.js → chunk-SAZS4IWW.js} +6 -4
- package/chunks/{chunk-5EIOJGCR.js → chunk-SFMCYMVF.js} +4 -4
- package/chunks/{chunk-TMKTOTMQ.js → chunk-SN5FV4FY.js} +5 -5
- package/chunks/{chunk-QJGYU5PG.js → chunk-TDP7UULF.js} +1 -1
- package/chunks/{chunk-EIJT2PQ6.js → chunk-TIGXX4PA.js} +2 -2
- package/chunks/{chunk-PCRBLMIN.js → chunk-TMWB67LS.js} +21 -3
- package/chunks/{chunk-JUARRUMA.js → chunk-UEZOXZNI.js} +1358 -646
- package/chunks/{chunk-KFN2IZYR.js → chunk-UKADFFL2.js} +3 -3
- package/chunks/{chunk-TJYRTS4S.js → chunk-UKKYOIVT.js} +2 -2
- package/chunks/{chunk-EVFDRBUM.js → chunk-URSCX7S7.js} +12 -7
- package/chunks/{chunk-U4DJ5XB3.js → chunk-VDXYYVCD.js} +269 -70
- package/chunks/{chunk-4LIFGNI4.js → chunk-VEFRT7NX.js} +1 -1
- package/chunks/chunk-VFFQAOPR.js +18 -0
- package/chunks/{chunk-3AKCBZVW.js → chunk-VU7O7CGQ.js} +3 -3
- package/chunks/{chunk-RAFQIHN2.js → chunk-VUSSAGKI.js} +76 -5
- package/chunks/{chunk-TQHPVKO6.js → chunk-VY6UVU7G.js} +6 -6
- package/chunks/{chunk-S2T7H5MI.js → chunk-W4LL5RZO.js} +1 -1
- package/chunks/{chunk-ZGCKTAL5.js → chunk-WEXA2DNG.js} +2 -0
- package/chunks/{chunk-NVVJTUSL.js → chunk-WR3SH3EY.js} +136 -85
- package/chunks/{chunk-JR42V4UY.js → chunk-WTW36TJ3.js} +1 -1
- package/chunks/{chunk-TSZSGQ3N.js → chunk-WXC6OAWD.js} +1 -1
- package/chunks/{chunk-ZVP4PWBU.js → chunk-X35VIWWJ.js} +1 -1
- package/chunks/{chunk-KHP66DFN.js → chunk-XFFRI3WM.js} +1 -1
- package/chunks/{chunk-EIY7SUPZ.js → chunk-XHGGYCTA.js} +1 -1
- package/chunks/{chunk-BA4WJC4L.js → chunk-XOVVCGZX.js} +1 -1
- package/chunks/{chunk-VBWD6C27.js → chunk-XUSOYE2I.js} +1 -1
- package/chunks/{chunk-NUHOLAQ6.js → chunk-XWJFDJZK.js} +1 -1
- package/chunks/{chunk-65HWLGA7.js → chunk-XY3USGFE.js} +3 -3
- package/chunks/{chunk-STCVJXQB.js → chunk-Y3ZKI4RQ.js} +56 -26
- package/chunks/{chunk-QAK5475D.js → chunk-Y53DG2HA.js} +1 -1
- package/chunks/{chunk-3JQZVCBI.js → chunk-YCDL2SAS.js} +2 -2
- package/chunks/{chunk-NSUKQ4DN.js → chunk-YHDGABDC.js} +3 -3
- package/chunks/{chunk-FRICLXCZ.js → chunk-Z6WZPXQH.js} +3 -3
- package/chunks/{chunk-EAHOJF6V.js → chunk-ZAFYHRVY.js} +12 -0
- package/chunks/{chunk-MP6YZ4RK.js → chunk-ZAZ3NFL6.js} +852 -309
- package/chunks/{chunk-7TBU7PU2.js → chunk-ZSTCM3MX.js} +1 -1
- package/chunks/{chunk-NRL5CUZT.js → chunk-ZTAVGFKA.js} +1 -1
- package/chunks/config-utils-QXDOTXEQ.js +119 -0
- package/chunks/contextCommand-RN4KARWC.js +112 -0
- package/chunks/{core-runtime-B4UKKIAQ.js → core-runtime-NAZCOKHB.js} +63 -58
- package/chunks/{create-sub-session-NJ24B4US.js → create-sub-session-BCSM4WKB.js} +61 -56
- package/chunks/{create-sub-session-LUPWEUHR.js → create-sub-session-BQ3SE4TX.js} +3 -3
- package/chunks/{cron-create-CRSPET3H.js → cron-create-D6HQ7I7I.js} +4 -4
- package/chunks/{cron-delete-DB77SZTU.js → cron-delete-KK3D2SQV.js} +4 -4
- package/chunks/{cron-list-U2JNYWV6.js → cron-list-VBF3IZMF.js} +4 -4
- package/chunks/daemon-LCUELM6E.js +191 -0
- package/chunks/{daemon-git-worktree-guard-O2HPOBAB.js → daemon-git-worktree-guard-3K5CAU36.js} +62 -57
- package/chunks/daemon-status-provider-4X3ZZQTZ.js +122 -0
- package/chunks/daemon-trust-policy-R45CFUJA.js +118 -0
- package/chunks/{daemon-trust-policy-monitor-JL7F4Y4Q.js → daemon-trust-policy-monitor-DSSFCO3K.js} +69 -64
- package/chunks/{de-T4BLOKEC.js → de-UU2YTO37.js} +1 -0
- package/chunks/deferred-core-runtime-UO2M6WYI.js +120 -0
- package/chunks/{display-image-73C7XNRK.js → display-image-EVVTBVYE.js} +6 -6
- package/chunks/{dist-EDHQIBYD.js → dist-3T5MDUHP.js} +62 -20
- package/chunks/{dist-ZCJLKQSP.js → dist-AFH3BMZZ.js} +18 -10
- package/chunks/{dist-LXFYIJNG.js → dist-MK5PPBRF.js} +40 -9
- package/chunks/{dist-GT64AAUR.js → dist-PH5RSTEA.js} +56 -20
- package/chunks/{dist-62OZ7QXB.js → dist-QUU7TVE3.js} +35 -12
- package/chunks/{dist-JVXT4VUJ.js → dist-R5Y34V6T.js} +11 -2
- package/chunks/{dist-L6URO6CK.js → dist-SB2XRXZA.js} +5 -1
- package/chunks/{dist-QAF5DO3Y.js → dist-SIHF5MU2.js} +326 -131
- package/chunks/{dist-PDGNRVPY.js → dist-UVHW2U56.js} +20 -1
- package/chunks/earlyInputCapture-BXP7V2P3.js +22 -0
- package/chunks/{edit-SUGXY63Y.js → edit-VNBCTRWP.js} +48 -44
- package/chunks/{en-2RATMNX7.js → en-JMR535HP.js} +3 -1
- package/chunks/{enter-worktree-B6USKSIK.js → enter-worktree-CEVK7MQ2.js} +7 -7
- package/chunks/{enterPlanMode-MDX4RVVL.js → enterPlanMode-4KMZMUIA.js} +48 -45
- package/chunks/environment-S2HYQDON.js +135 -0
- package/chunks/errors-DAAN5TL7.js +119 -0
- package/chunks/{exit-worktree-DLQ73SJH.js → exit-worktree-D3YE6MUN.js} +7 -7
- package/chunks/exitPlanMode-HR36HG3D.js +86 -0
- package/chunks/{fast-path-Y73R42LV.js → fast-path-4IWSW3UV.js} +3 -3
- package/chunks/{fast-path-settings-MFUR3IWK.js → fast-path-settings-ISEJPRYE.js} +6 -4
- package/chunks/{fr-BGHGYX6A.js → fr-HKNWVXRJ.js} +1 -0
- package/chunks/{glob-DMGH7EZN.js → glob-IZYB2XH2.js} +46 -43
- package/chunks/{goal-tools-3RF3PXCL.js → goal-tools-VGUPKQDJ.js} +46 -43
- package/chunks/{grep-AJVLCVXC.js → grep-OUVLNXG7.js} +9 -8
- package/chunks/handleAutoUpdate-D56FMDTW.js +115 -0
- package/chunks/i18n-BKE5WO6T.js +130 -0
- package/chunks/{image-gen-VOIDOHOB.js → image-gen-SHVQ3XID.js} +8 -8
- package/chunks/initializer-MS4SGEHF.js +119 -0
- package/chunks/installationInfo-542MGC4S.js +113 -0
- package/chunks/{ja-G3FTD5XE.js → ja-GJS5RZGU.js} +1 -0
- package/chunks/{keychain-token-storage-REZVMJA6.js → keychain-token-storage-NQ5XWIPX.js} +2 -2
- package/chunks/list-H6XTKUWL.js +122 -0
- package/chunks/{list-agents-SBMONIUK.js → list-agents-ULYBGJXC.js} +6 -6
- package/chunks/{llm-K26SUDVK.js → llm-3NUC4EJY.js} +132 -113
- package/chunks/{llm-content-generator-TT6EAUD4.js → llm-content-generator-R4NL3OQN.js} +40 -13
- package/chunks/loadedSettingsAdapter-3XLKYDVT.js +116 -0
- package/chunks/{loggingContentGenerator-EYQBA4M4.js → loggingContentGenerator-ZYSWVNEO.js} +55 -52
- package/chunks/{loop-wakeup-QA6SHCZT.js → loop-wakeup-B27BEYRL.js} +5 -5
- package/chunks/{lowlight-J2OZNPCA.js → lowlight-BTE423KL.js} +3 -6
- package/chunks/{ls-HEJNCEYO.js → ls-3IIMMVKF.js} +5 -4
- package/chunks/{lsp-WOQKNZP6.js → lsp-VJAT7XKS.js} +2 -2
- package/chunks/{managed-npm-update-HIJTODQT.js → managed-npm-update-L2I53ZAI.js} +62 -57
- package/chunks/mcp-4PIXQASW.js +116 -0
- package/chunks/{monitor-DKNZQAB2.js → monitor-O2YQTOZZ.js} +50 -46
- package/chunks/{node-UETAYMMO.js → node-ISQAFKIS.js} +2 -2
- package/chunks/nonInteractiveCli-LV7CDBA2.js +198 -0
- package/chunks/{notebook-edit-MGHTRL2D.js → notebook-edit-4RE2ALH4.js} +48 -44
- package/chunks/{openaiContentGenerator-ZJIEQ3ZJ.js → openaiContentGenerator-7ND7K5CP.js} +30 -25
- package/chunks/pidfile-UFTLQ7NP.js +117 -0
- package/chunks/{processUtils-UY3SAJJZ.js → processUtils-3XBB4FYV.js} +2 -2
- package/chunks/prompt-terminal-ledger-2QASOGMM.js +111 -0
- package/chunks/{pt-D73IFYT7.js → pt-FXMYXEUV.js} +1 -0
- package/chunks/{qwenContentGenerator-VI4KATRY.js → qwenContentGenerator-AELTUTH6.js} +52 -49
- package/chunks/{qwenOAuth2-7AOCKSOQ.js → qwenOAuth2-BS5D2LYV.js} +7 -7
- package/chunks/{read-file-P7F4P7LV.js → read-file-PDWHZPHX.js} +13 -11
- package/chunks/{read-mcp-resource-GLAGB6R7.js → read-mcp-resource-YXJZ75UB.js} +2 -2
- package/chunks/{record-artifact-SWVR7NSU.js → record-artifact-WJDOV6XU.js} +4 -4
- package/chunks/{report-findings-AL5YW3KI.js → report-findings-Q4UACKWR.js} +5 -5
- package/chunks/{request-shutdown-5YK4IZ54.js → request-shutdown-2YZ3E3GH.js} +8 -8
- package/chunks/resumeHistoryUtils-QRXZEEBA.js +124 -0
- package/chunks/ripGrep-KSOOLE6H.js +39 -0
- package/chunks/{ru-QMISLKRH.js → ru-RMHURE5U.js} +1 -0
- package/chunks/{run-qwen-serve-OGTEEUR2.js → run-qwen-serve-RTAREPT6.js} +84 -70
- package/chunks/runtime-ESFSCJRZ.js +154 -0
- package/chunks/scheduled-tasks-6ZHRNBH6.js +133 -0
- package/chunks/{scheduler-73YXGUGW.js → scheduler-DQI6KV7T.js} +63 -58
- package/chunks/{sdk-exporters-http-3JO5TJNU.js → sdk-exporters-http-7R2ARBPV.js} +2 -2
- package/chunks/{sdk-impl-HZAUUTHJ.js → sdk-impl-YOLO7LV4.js} +4 -4
- package/chunks/{send-message-JC7NJTY6.js → send-message-PQCVSVMN.js} +24 -24
- package/chunks/serve-FY7ZEW52.js +124 -0
- package/chunks/{server-AOYZVVOM.js → server-KNDY6K5F.js} +1594 -273
- package/chunks/{session-UAWFNFGI.js → session-MCEPXAZP.js} +113 -105
- package/chunks/session-attachments-root-OLNAE6GF.js +109 -0
- package/chunks/{session-pr-refresh-CT2INROL.js → session-pr-refresh-HKJHQQQK.js} +67 -62
- package/chunks/{settings-BHRGDASJ.js → settings-VXO4WBMK.js} +68 -63
- package/chunks/shell-U263OTES.js +96 -0
- package/chunks/{skill-ZGBKNCHQ.js → skill-SDODGBKL.js} +19 -17
- package/chunks/skill-settings-YEIA22QJ.js +124 -0
- package/chunks/spawnChannel-4WJZVFPP.js +117 -0
- package/chunks/standalone-update-ZWVQUO64.js +124 -0
- package/chunks/{start-opentui-ui-FZ4USOU7.js → start-opentui-ui-BFYCJQRZ.js} +1199 -190
- package/chunks/{startInteractiveUI-E2WQJUOA.js → startInteractiveUI-JYAFCMHL.js} +2977 -2319
- package/chunks/{syntheticOutput-HJNZSEHN.js → syntheticOutput-AUAJBNXR.js} +3 -3
- package/chunks/{task-create-6RSD54S5.js → task-create-LD5ISM3E.js} +12 -12
- package/chunks/{task-list-IQSACPOM.js → task-list-YISJ4RJA.js} +5 -5
- package/chunks/{task-stop-HE2LRQNW.js → task-stop-65ZOVATJ.js} +2 -2
- package/chunks/{task-update-XAJ2NYOA.js → task-update-AAN4ZVEY.js} +15 -15
- package/chunks/{team-create-SOKMYSQU.js → team-create-KU7MABNO.js} +47 -44
- package/chunks/{team-delete-NGNNKGMG.js → team-delete-XFRRTJTT.js} +5 -5
- package/chunks/{team-plan-approval-U7ZWXYAY.js → team-plan-approval-DPB377A3.js} +46 -43
- package/chunks/terminal-image-renderer-WGWRENOF.js +124 -0
- package/chunks/theme-manager-GBUFULSO.js +108 -0
- package/chunks/{todoWrite-5UTVUXHA.js → todoWrite-G7NT4IFP.js} +5 -5
- package/chunks/{tool-search-IAI2RVWT.js → tool-search-6YUXHBPT.js} +19 -17
- package/chunks/total-session-admission-54R2JQ5L.js +118 -0
- package/chunks/trustedFolders-KAJIDJTH.js +128 -0
- package/chunks/{update-relaunch-5RWKZAL3.js → update-relaunch-XM4IWBFD.js} +5 -5
- package/chunks/updateCheck-W6UZFURI.js +124 -0
- package/chunks/useAutoAcceptIndicator-LAWYHY3U.js +126 -0
- package/chunks/{validateNonInterActiveAuth-QPFEKATS.js → validateNonInterActiveAuth-7WCKHRN2.js} +109 -101
- package/chunks/{version-JKNG7YDH.js → version-3ZU43RJ6.js} +1 -1
- package/chunks/{web-fetch-X3AHIIHW.js → web-fetch-QHI2SQL4.js} +16 -14
- package/chunks/{web-search-K2FMOGS5.js → web-search-3KZZKWNY.js} +9 -8
- package/chunks/{workflow-TOLPAK5G.js → workflow-HRW7Y2X4.js} +330 -1667
- package/chunks/workspace-providers-status-KTGCWCPC.js +120 -0
- package/chunks/{workspace-registration-store-KQWVVW4Y.js → workspace-registration-store-LHLPPWNE.js} +1 -1
- package/chunks/workspace-registry-X34MLN52.js +127 -0
- package/chunks/workspace-runtime-coordinator-U4PW4P7K.js +128 -0
- package/chunks/workspace-service-KD7BCGYL.js +132 -0
- package/chunks/workspace-skills-status-YJGO6Y3T.js +119 -0
- package/chunks/{workspace-trust-reconciler-IBDFQBQS.js → workspace-trust-reconciler-EUYHISCH.js} +74 -69
- package/chunks/write-file-EBSB34NJ.js +91 -0
- package/chunks/{zh-25DF7OGK.js → zh-DVFYHRK5.js} +3 -1
- package/chunks/{zh-TW-5EDMZVGK.js → zh-TW-W2GNP2IU.js} +3 -1
- package/chunks/{zoom-image-IFXSN74N.js → zoom-image-UJ5VKWKP.js} +13 -11
- package/cli.js +13 -13
- package/export-transcript-document.js +617 -0
- package/locales/ca.js +1 -0
- package/locales/de.js +1 -0
- package/locales/en.js +5 -2
- package/locales/fr.js +1 -0
- package/locales/ja.js +1 -0
- package/locales/pt.js +1 -0
- package/locales/ru.js +1 -0
- package/locales/zh-TW.js +5 -2
- package/locales/zh.js +5 -2
- package/package.json +5 -4
- package/web-shell/assets/{abnfDiagram-VCTEODGH-Cxf7xE_Z.js → abnfDiagram-VCTEODGH-Dur--luQ.js} +1 -1
- package/web-shell/assets/{arc-ESi1eNkE.js → arc-tYLobxFi.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-D9l7-bDo.js → architectureDiagram-5GKGNRK7-IG6aXD03.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-Bc8DEasw.js → blockDiagram-NRAW4CY4-C6eBSkfA.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-Dimb2Hmh.js → c4Diagram-UCG6FXSJ-BrX3HJqB.js} +1 -1
- package/web-shell/assets/channel-uEkvKckd.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-jVDmOpAQ.js → chunk-2Q5K7J3B-B3fcJ8ee.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-DbG_SwdB.js → chunk-5VM5RSS4-CeC90yKM.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-QEc4cY1v.js → chunk-F27PBJKO-CW44RVki.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-iJ36lQ3X.js → chunk-G27WJ6UU-D1PAMukD.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-DuArnVtF.js → chunk-JWPE2WC7-Dt3Y2Fvx.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-DxOf1zwL.js → chunk-LCL6LL3I-CZHw2lLI.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-lVLu9Ild.js → chunk-POPQ4Y6H-ysNAdTGx.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-C6XYlIer.js → chunk-SVP7TREG-BdNXW6YQ.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-CiG2j2Ji.js → chunk-XXDRQBXY-DgqQ9UA8.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DuPsnhWS.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DuPsnhWS.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-DGVHMMVm.js → cose-bilkent-JH36ORCC-BILImXzJ.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-D6cgpCnH.js → cynefin-OW5HDTMX-DR88Pund.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BKv4Z-UX.js → cynefinDiagram-5FMLGOSQ-BYFbfkA6.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-B4ABMIG-.js → dagre-3AP2YEHR-rfpyc6sX.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-DgCkp_Lm.js → diagram-S7CK7UJ4-BJxLmEwH.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-FG0FNokz.js → diagram-UQ7AKVKN-H34xm7k3.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-JgkP9qg-.js → diagram-VSXAHHWV-HYxhwNLx.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-ADh2x83l.js → diagram-VX7I27RA-BJazso8F.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-yXqoYF1J.js → diagram-Z3DM3KII-Clje1aNy.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-Duk83Ek_.js → ebnfDiagram-PWID7BFC-M93YBkFh.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-DMdvxySG.js → erDiagram-SSCWMZ5O-DY8XzSHU.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-DHjVgSji.js → flowDiagram-A5DVABFB-CE6Aylcq.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DMM9DkCE.js → ganttDiagram-EL5Y4UJY-DI-5LL22.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-t_ug9vO8.js → gitGraphDiagram-WWUBYQGX-C7BZWElk.js} +1 -1
- package/web-shell/assets/index-CVyqwW7y.js +2142 -0
- package/web-shell/assets/{index-zqvnpGHv.js → index-DclFHns9.js} +1 -1
- package/web-shell/assets/index-FO7JXPnH.css +36 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-eT1fANNm.js → infoDiagram-RXCK75RN-CGUSy4Pc.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-k3evzZNn.js → ishikawaDiagram-5VMMS53U-B5BVks9q.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-CGim3EAi.js → journeyDiagram-EYS64GPL-CFh6Tf7h.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-WHfJo-22.js → kanban-definition-3QL26DDD-B7TlxP7c.js} +1 -1
- package/web-shell/assets/{layout-DkqIaFlJ.js → layout-Br_pZq2Q.js} +1 -1
- package/web-shell/assets/{linear-Bdkd3mCz.js → linear-BVlP6fte.js} +1 -1
- package/web-shell/assets/{mermaid.core-CGw0LkT_.js → mermaid.core-TrcYWoiF.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-C9V4rBvo.js → mindmap-definition-FBJOCRG2-BJ4LzqjZ.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-CwoI2T5G.js → pegDiagram-XKGWAZYB-1b_MxlOl.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-DaTmBmPG.js → pieDiagram-E7YTZNPT-B8zl0YhY.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-plh6MyGI.js → quadrantDiagram-AXDQQJYC-CIZO8ukl.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-D_b-S0iK.js → railroadDiagram-O6MQD6OU-CepHSbCj.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-zUzTN7VE.js → requirementDiagram-EFPCY7ZU-BCgxkcSW.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-m6AhoD0l.js → sankeyDiagram-P5KCCOFB-CE5CcoMM.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-Cwhzsine.js → sequenceDiagram-WJ2MYXX4-DvgHi-d5.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-CcZuKIae.js → sizeCapture-X5ZJPWSS-T-fAsCPX.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-CFoiJwD_.js → stateDiagram-HBIQ2CUA-DYHaul-5.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-BcYho9a4.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-CgS9hcaV.js → swimlanes-XN3QIQJK-Dbz3Qiej.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6HsOIgX.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-Dzzc05t9.js → timeline-definition-24CTP7MA-9NVRts3N.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-DemK0f7Y.js → vennDiagram-4TSXK5OY-C7cb7vnH.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CquLxtMr.js → wardleyDiagram-VM6X3IG4-CG-8Ddjm.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-BTBKTM5g.js → xychartDiagram-S5SC5T6Z-iGeYAcP4.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/MaxSizedBox-B3D7545A.js +0 -111
- package/chunks/agent-headless-OC2IB55D.js +0 -85
- package/chunks/askUserQuestion-THQZMG44.js +0 -322
- package/chunks/bridge-IHSBI2YJ.js +0 -118
- package/chunks/channel-settings-store-BVKWAI2T.js +0 -121
- package/chunks/chunk-I2TMJPCV.js +0 -448
- package/chunks/chunk-QI27MKNQ.js +0 -4008
- package/chunks/config-utils-LVSYDLHZ.js +0 -114
- package/chunks/contextCommand-TZD7UAJK.js +0 -107
- package/chunks/daemon-status-provider-GRRVCJFW.js +0 -117
- package/chunks/daemon-trust-policy-YJL442BK.js +0 -113
- package/chunks/deferred-core-runtime-S32AYVZI.js +0 -115
- package/chunks/earlyInputCapture-BBPCIVZG.js +0 -108
- package/chunks/environment-VN6RXDVN.js +0 -130
- package/chunks/errors-UEY36PIT.js +0 -114
- package/chunks/exitPlanMode-EPHIEDAA.js +0 -83
- package/chunks/handleAutoUpdate-HVWQT2AU.js +0 -110
- package/chunks/i18n-5OR7NTRZ.js +0 -125
- package/chunks/initializer-JE5RQSOE.js +0 -114
- package/chunks/installationInfo-KO3CCSCK.js +0 -108
- package/chunks/list-3IORSFIY.js +0 -117
- package/chunks/loadedSettingsAdapter-KLLFZF3M.js +0 -111
- package/chunks/mcp-A2UEHETW.js +0 -111
- package/chunks/nonInteractiveCli-YA47F2F4.js +0 -190
- package/chunks/pidfile-ETHAZNMY.js +0 -112
- package/chunks/prompt-terminal-ledger-GZ747VYE.js +0 -106
- package/chunks/resumeHistoryUtils-DPZKFW24.js +0 -119
- package/chunks/ripGrep-C7LJKUPZ.js +0 -37
- package/chunks/runtime-LNBLEMZS.js +0 -149
- package/chunks/scheduled-tasks-FLDYZQOF.js +0 -128
- package/chunks/serve-3UR2H4CV.js +0 -119
- package/chunks/session-attachments-root-ZCGXQQTR.js +0 -104
- package/chunks/shell-YHOGC7TO.js +0 -93
- package/chunks/skill-settings-AKSP665O.js +0 -119
- package/chunks/spawnChannel-N25MBB6F.js +0 -112
- package/chunks/standalone-update-XGPWJDRN.js +0 -119
- package/chunks/terminal-image-renderer-KKM4OBLO.js +0 -117
- package/chunks/theme-manager-GQHF3A7T.js +0 -103
- package/chunks/total-session-admission-G4CGCSTG.js +0 -113
- package/chunks/trustedFolders-D2I3FDPB.js +0 -123
- package/chunks/updateCheck-ZXOQDFEI.js +0 -119
- package/chunks/useAutoAcceptIndicator-6EK4QGAH.js +0 -121
- package/chunks/workspace-providers-status-PCJK3RC7.js +0 -115
- package/chunks/workspace-registry-YNIOB6HJ.js +0 -122
- package/chunks/workspace-runtime-coordinator-WG2RNEN7.js +0 -123
- package/chunks/workspace-service-G4ZNBOFH.js +0 -127
- package/chunks/workspace-skills-status-FMTPPMWC.js +0 -114
- package/chunks/write-file-YTLFY2S5.js +0 -88
- package/web-shell/assets/channel-B7ohGDil.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DdFpqpfD.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DdFpqpfD.js +0 -1
- package/web-shell/assets/index-BGZRqbRo.css +0 -36
- package/web-shell/assets/index-DRri_6_x.js +0 -2067
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V--H8HdEmk.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ShE9OIgf.js +0 -8
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
import {
|
|
4
4
|
listLiveSessions,
|
|
5
5
|
readOwnSessionRecord
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-B44JBZBB.js";
|
|
7
7
|
import {
|
|
8
8
|
LEADER_NAME,
|
|
9
9
|
sanitizeName
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-BF3RUIVP.js";
|
|
11
11
|
import {
|
|
12
12
|
APPROVAL_MODES
|
|
13
13
|
} from "./chunk-JX6XHPTX.js";
|
|
14
14
|
import {
|
|
15
15
|
createDebugLogger
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-ZAFYHRVY.js";
|
|
17
17
|
import {
|
|
18
18
|
init_esbuild_shims
|
|
19
19
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -132,7 +132,7 @@ function parsePeerFrame(line) {
|
|
|
132
132
|
if (parsed["type"] === "control") {
|
|
133
133
|
if (parsed["action"] !== "delivery_status") return null;
|
|
134
134
|
const status = parsed["status"];
|
|
135
|
-
if (status !== "held" && status !== "denied" && status !== "expired" && status !== "delivered" && status !== "misaddressed") {
|
|
135
|
+
if (status !== "held" && status !== "denied" && status !== "refused" && status !== "expired" && status !== "delivered" && status !== "misaddressed") {
|
|
136
136
|
return null;
|
|
137
137
|
}
|
|
138
138
|
const origMsgId = parsed["origMsgId"];
|
|
@@ -177,6 +177,8 @@ function describeDeliveryStatus(status) {
|
|
|
177
177
|
return "Your message is held for the recipient user to review before it reaches their Qwen Code session.";
|
|
178
178
|
case "denied":
|
|
179
179
|
return "The recipient declined your message; it was not delivered.";
|
|
180
|
+
case "refused":
|
|
181
|
+
return "The recipient session does not accept messages from other sessions, so nobody saw this one. Don't re-send it; reach that session's user another way.";
|
|
180
182
|
case "expired":
|
|
181
183
|
return "Your held message expired without a decision and was not delivered.";
|
|
182
184
|
case "delivered":
|
|
@@ -231,24 +233,24 @@ import * as os from "node:os";
|
|
|
231
233
|
import * as path from "node:path";
|
|
232
234
|
var MAX_SOCKET_PATH_BYTES = 103;
|
|
233
235
|
var SOCKET_DIR_NAME = "qwen-socks";
|
|
234
|
-
function
|
|
236
|
+
function resolvePeerSocketCandidates(pid = process.pid) {
|
|
237
|
+
const candidates = [];
|
|
235
238
|
const runtimeDir = process.env["XDG_RUNTIME_DIR"];
|
|
236
239
|
if (runtimeDir) {
|
|
237
|
-
|
|
238
|
-
if (Buffer.byteLength(preferred) <= MAX_SOCKET_PATH_BYTES) {
|
|
239
|
-
return preferred;
|
|
240
|
-
}
|
|
240
|
+
candidates.push(path.join(runtimeDir, SOCKET_DIR_NAME, `${pid}.sock`));
|
|
241
241
|
}
|
|
242
242
|
const nonce = randomBytes(8).toString("hex");
|
|
243
|
-
|
|
244
|
-
os.tmpdir(),
|
|
245
|
-
|
|
246
|
-
|
|
243
|
+
candidates.push(
|
|
244
|
+
path.join(os.tmpdir(), `${SOCKET_DIR_NAME}-${nonce}`, `${pid}.sock`)
|
|
245
|
+
);
|
|
246
|
+
candidates.push(
|
|
247
|
+
path.join("/tmp", `${SOCKET_DIR_NAME}-${nonce}`, `${pid}.sock`)
|
|
248
|
+
);
|
|
249
|
+
return candidates.filter(
|
|
250
|
+
(candidate, index) => Buffer.byteLength(candidate) <= MAX_SOCKET_PATH_BYTES && candidates.indexOf(candidate) === index
|
|
247
251
|
);
|
|
248
|
-
if (Buffer.byteLength(fallback) <= MAX_SOCKET_PATH_BYTES) return fallback;
|
|
249
|
-
return path.join("/tmp", `${SOCKET_DIR_NAME}-${nonce}`, `${pid}.sock`);
|
|
250
252
|
}
|
|
251
|
-
__name(
|
|
253
|
+
__name(resolvePeerSocketCandidates, "resolvePeerSocketCandidates");
|
|
252
254
|
function isLocalIpcPath(candidate) {
|
|
253
255
|
if (typeof candidate !== "string" || candidate.length === 0) return false;
|
|
254
256
|
if (candidate.includes("\0")) return false;
|
|
@@ -355,31 +357,39 @@ async function sendDeliveryStatus(socketPath, fields, authToken) {
|
|
|
355
357
|
}
|
|
356
358
|
}
|
|
357
359
|
__name(sendDeliveryStatus, "sendDeliveryStatus");
|
|
358
|
-
function
|
|
360
|
+
function probePeerSocketVerdict(socketPath) {
|
|
359
361
|
return new Promise((resolve) => {
|
|
360
362
|
if (!isLocalIpcPath(socketPath)) {
|
|
361
|
-
resolve(
|
|
363
|
+
resolve("unknown");
|
|
362
364
|
return;
|
|
363
365
|
}
|
|
364
366
|
const socket = net.connect({ path: socketPath });
|
|
365
367
|
let settled = false;
|
|
366
|
-
const settle = /* @__PURE__ */ __name((
|
|
368
|
+
const settle = /* @__PURE__ */ __name((verdict) => {
|
|
367
369
|
if (settled) return;
|
|
368
370
|
settled = true;
|
|
369
371
|
clearTimeout(deadline);
|
|
370
372
|
socket.destroy();
|
|
371
|
-
resolve(
|
|
373
|
+
resolve(verdict);
|
|
372
374
|
}, "settle");
|
|
373
|
-
const deadline = setTimeout(() => settle(
|
|
375
|
+
const deadline = setTimeout(() => settle("unknown"), PROBE_TIMEOUT_MS);
|
|
374
376
|
deadline.unref();
|
|
375
|
-
socket.on("connect", () => settle(
|
|
376
|
-
socket.on(
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
377
|
+
socket.on("connect", () => settle("alive"));
|
|
378
|
+
socket.on("error", (error) => {
|
|
379
|
+
const code = error.code;
|
|
380
|
+
if (code === "EAGAIN" || code === "EBUSY") {
|
|
381
|
+
settle("alive");
|
|
382
|
+
return;
|
|
383
|
+
}
|
|
384
|
+
if (code === "ENOENT" || code === "ECONNREFUSED") {
|
|
385
|
+
settle("dead");
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
settle("unknown");
|
|
389
|
+
});
|
|
380
390
|
});
|
|
381
391
|
}
|
|
382
|
-
__name(
|
|
392
|
+
__name(probePeerSocketVerdict, "probePeerSocketVerdict");
|
|
383
393
|
|
|
384
394
|
// packages/core/src/ipc/peer-directory.ts
|
|
385
395
|
function peerRef(sessionId) {
|
|
@@ -405,9 +415,10 @@ __name(toPeerSessionInfo, "toPeerSessionInfo");
|
|
|
405
415
|
async function listMessageablePeers() {
|
|
406
416
|
const records = await listLiveSessions();
|
|
407
417
|
const candidates = records.map(toPeerSessionInfo).filter((peer) => peer !== null);
|
|
408
|
-
const
|
|
409
|
-
candidates.map((peer) =>
|
|
418
|
+
const verdicts = await Promise.all(
|
|
419
|
+
candidates.map((peer) => probePeerSocketVerdict(peer.ipcPath))
|
|
410
420
|
);
|
|
421
|
+
const reachable = verdicts.map((verdict) => verdict === "alive");
|
|
411
422
|
return dedupeSameNameTwins(candidates.filter((_, index) => reachable[index]));
|
|
412
423
|
}
|
|
413
424
|
__name(listMessageablePeers, "listMessageablePeers");
|
|
@@ -481,9 +492,6 @@ function isInProcessRecipient(address, team) {
|
|
|
481
492
|
}
|
|
482
493
|
__name(isInProcessRecipient, "isInProcessRecipient");
|
|
483
494
|
|
|
484
|
-
// packages/core/src/ipc/peer-send.ts
|
|
485
|
-
init_esbuild_shims();
|
|
486
|
-
|
|
487
495
|
// packages/core/src/ipc/inbound-gate.ts
|
|
488
496
|
init_esbuild_shims();
|
|
489
497
|
var debugLogger2 = createDebugLogger("PEER_INBOUND");
|
|
@@ -493,10 +501,36 @@ function receiverReviewsActions(mode) {
|
|
|
493
501
|
return mode !== "yolo" /* YOLO */ && mode !== "auto-edit" /* AUTO_EDIT */ && mode !== "auto" /* AUTO */;
|
|
494
502
|
}
|
|
495
503
|
__name(receiverReviewsActions, "receiverReviewsActions");
|
|
504
|
+
function modeClass(mode) {
|
|
505
|
+
return receiverReviewsActions(mode) ? "prompting" : "bypass";
|
|
506
|
+
}
|
|
507
|
+
__name(modeClass, "modeClass");
|
|
496
508
|
function isInboundPolicy(value) {
|
|
497
509
|
return value === "accept" || value === "hold" || value === "refuse";
|
|
498
510
|
}
|
|
499
511
|
__name(isInboundPolicy, "isInboundPolicy");
|
|
512
|
+
var MAX_TIMEOUT_MS = 2 ** 31 - 1;
|
|
513
|
+
var DEFAULT_HELD_EXPIRY_MS = 5 * 60 * 1e3;
|
|
514
|
+
var HELD_EXPIRY_VALUES = {
|
|
515
|
+
"1m": 60 * 1e3,
|
|
516
|
+
"5m": DEFAULT_HELD_EXPIRY_MS,
|
|
517
|
+
"10m": 10 * 60 * 1e3,
|
|
518
|
+
never: null
|
|
519
|
+
};
|
|
520
|
+
var HELD_EXPIRY_OPTIONS = Object.keys(HELD_EXPIRY_VALUES);
|
|
521
|
+
function parseHeldExpiry(value) {
|
|
522
|
+
if (value === void 0) return DEFAULT_HELD_EXPIRY_MS;
|
|
523
|
+
if (typeof value !== "string" || !Object.hasOwn(HELD_EXPIRY_VALUES, value)) {
|
|
524
|
+
debugLogger2.debug(
|
|
525
|
+
`unrecognized crossSessionHeldExpiry value (using the default): ${String(
|
|
526
|
+
value
|
|
527
|
+
)}`
|
|
528
|
+
);
|
|
529
|
+
return DEFAULT_HELD_EXPIRY_MS;
|
|
530
|
+
}
|
|
531
|
+
return HELD_EXPIRY_VALUES[value] ?? null;
|
|
532
|
+
}
|
|
533
|
+
__name(parseHeldExpiry, "parseHeldExpiry");
|
|
500
534
|
var InboundGate = class {
|
|
501
535
|
constructor(options) {
|
|
502
536
|
this.options = options;
|
|
@@ -514,10 +548,34 @@ var InboundGate = class {
|
|
|
514
548
|
*/
|
|
515
549
|
settled = /* @__PURE__ */ new Map();
|
|
516
550
|
shuttingDown = false;
|
|
551
|
+
/**
|
|
552
|
+
* One timer for the whole buffer, armed for the message that expires
|
|
553
|
+
* first. A timer per message would be up to `MAX_HELD_MESSAGES` of
|
|
554
|
+
* them, all firing to do the same sweep.
|
|
555
|
+
*/
|
|
556
|
+
expiryTimer = null;
|
|
517
557
|
/** Messages currently parked, oldest first. */
|
|
518
558
|
getHeld() {
|
|
519
559
|
return this.held;
|
|
520
560
|
}
|
|
561
|
+
/**
|
|
562
|
+
* The current hold lifetime in milliseconds, or null when holds do not
|
|
563
|
+
* expire. Exposed so `/peers` can tell the user how long a message has
|
|
564
|
+
* left rather than making them guess.
|
|
565
|
+
*/
|
|
566
|
+
getHeldExpiryMs() {
|
|
567
|
+
if (this.options.getHeldExpiryMs === void 0) {
|
|
568
|
+
return DEFAULT_HELD_EXPIRY_MS;
|
|
569
|
+
}
|
|
570
|
+
try {
|
|
571
|
+
return this.options.getHeldExpiryMs();
|
|
572
|
+
} catch (error) {
|
|
573
|
+
debugLogger2.debug(
|
|
574
|
+
`held-expiry getter threw; falling back to the default: ${error instanceof Error ? error.message : String(error)}`
|
|
575
|
+
);
|
|
576
|
+
return DEFAULT_HELD_EXPIRY_MS;
|
|
577
|
+
}
|
|
578
|
+
}
|
|
521
579
|
/**
|
|
522
580
|
* Resolve the policy for a frame, and explain it.
|
|
523
581
|
*
|
|
@@ -534,7 +592,7 @@ var InboundGate = class {
|
|
|
534
592
|
configured
|
|
535
593
|
)}`
|
|
536
594
|
);
|
|
537
|
-
return
|
|
595
|
+
return this.hold("policy-unreadable", this.policyScope());
|
|
538
596
|
}
|
|
539
597
|
explicit = configured;
|
|
540
598
|
} catch (error) {
|
|
@@ -543,8 +601,11 @@ var InboundGate = class {
|
|
|
543
601
|
);
|
|
544
602
|
return { policy: "hold", cause: "policy-unreadable" };
|
|
545
603
|
}
|
|
604
|
+
if (explicit === "hold") {
|
|
605
|
+
return this.hold("explicit-setting", this.policyScope());
|
|
606
|
+
}
|
|
546
607
|
if (explicit !== void 0) {
|
|
547
|
-
return { policy: explicit
|
|
608
|
+
return { policy: explicit };
|
|
548
609
|
}
|
|
549
610
|
if (origin?.selfSent) {
|
|
550
611
|
return { policy: "accept" };
|
|
@@ -561,20 +622,32 @@ var InboundGate = class {
|
|
|
561
622
|
if (mode === null || !APPROVAL_MODES.includes(mode)) {
|
|
562
623
|
return { policy: "hold", cause: "mode-unknown" };
|
|
563
624
|
}
|
|
564
|
-
if (receiverReviewsActions(mode)) {
|
|
565
|
-
return { policy: "accept" };
|
|
566
|
-
}
|
|
567
625
|
const sender = frame?.fromMode;
|
|
568
626
|
if (sender === void 0) {
|
|
569
627
|
return { policy: "hold", cause: "no-mode-asserted" };
|
|
570
628
|
}
|
|
571
|
-
return sender ===
|
|
629
|
+
return sender === modeClass(mode) ? { policy: "accept" } : { policy: "hold", cause: "mode-mismatch" };
|
|
630
|
+
}
|
|
631
|
+
hold(cause, scope) {
|
|
632
|
+
return scope === void 0 ? { policy: "hold", cause } : { policy: "hold", cause, scope };
|
|
633
|
+
}
|
|
634
|
+
/** The scope is decoration on a cause; a broken getter must not change the verdict. */
|
|
635
|
+
policyScope() {
|
|
636
|
+
try {
|
|
637
|
+
return this.options.getPolicyScope?.();
|
|
638
|
+
} catch (error) {
|
|
639
|
+
debugLogger2.debug(
|
|
640
|
+
`policy-scope getter threw (ignored): ${error instanceof Error ? error.message : String(error)}`
|
|
641
|
+
);
|
|
642
|
+
return void 0;
|
|
643
|
+
}
|
|
572
644
|
}
|
|
573
645
|
/**
|
|
574
646
|
* Run a freshly-arrived message through the gate. `origin` defaults to
|
|
575
647
|
* an ordinary peer — the transport asserts self-sent, never the frame.
|
|
576
648
|
*/
|
|
577
649
|
admit(frame, origin = { selfSent: false }) {
|
|
650
|
+
this.expireOverdue();
|
|
578
651
|
const settled = this.settled.get(canonicalizeMsgId(frame.msgId));
|
|
579
652
|
if (settled !== void 0) {
|
|
580
653
|
debugLogger2.debug(
|
|
@@ -594,7 +667,8 @@ var InboundGate = class {
|
|
|
594
667
|
const { policy } = decision;
|
|
595
668
|
if (policy === "refuse") {
|
|
596
669
|
debugLogger2.debug(`refused peer message ${frame.msgId}`);
|
|
597
|
-
|
|
670
|
+
this.recordSettled(frame.msgId, "refused");
|
|
671
|
+
void this.report(frame, "refused");
|
|
598
672
|
return "refused";
|
|
599
673
|
}
|
|
600
674
|
if (this.shuttingDown) {
|
|
@@ -621,10 +695,13 @@ var InboundGate = class {
|
|
|
621
695
|
}
|
|
622
696
|
}
|
|
623
697
|
const cause = decision.policy === "hold" ? decision.cause : "mode-unknown";
|
|
698
|
+
const scope = decision.policy === "hold" ? decision.scope : void 0;
|
|
624
699
|
this.held.push({
|
|
625
700
|
frame,
|
|
626
701
|
cause,
|
|
702
|
+
...scope === void 0 ? {} : { policyScope: scope },
|
|
627
703
|
heldAt: Date.now(),
|
|
704
|
+
monotonicAt: performance.now(),
|
|
628
705
|
...origin.selfSent ? { selfSent: true } : {}
|
|
629
706
|
});
|
|
630
707
|
debugLogger2.debug(
|
|
@@ -632,6 +709,7 @@ var InboundGate = class {
|
|
|
632
709
|
);
|
|
633
710
|
void this.report(frame, "held");
|
|
634
711
|
this.notifyHeldChange();
|
|
712
|
+
this.rescheduleExpiry();
|
|
635
713
|
return "held";
|
|
636
714
|
}
|
|
637
715
|
/**
|
|
@@ -647,6 +725,7 @@ var InboundGate = class {
|
|
|
647
725
|
* retry; claiming 'done' would report a release that never happened.
|
|
648
726
|
*/
|
|
649
727
|
decide(msgId, decision) {
|
|
728
|
+
this.expireOverdue();
|
|
650
729
|
const index = this.held.findIndex((entry2) => entry2.frame.msgId === msgId);
|
|
651
730
|
if (index === -1) return "gone";
|
|
652
731
|
const [entry] = this.held.splice(index, 1);
|
|
@@ -656,12 +735,14 @@ var InboundGate = class {
|
|
|
656
735
|
this.recordSettled(entry.frame.msgId, "misaddressed");
|
|
657
736
|
void this.report(entry.frame, "misaddressed");
|
|
658
737
|
this.notifyHeldChange();
|
|
738
|
+
this.rescheduleExpiry();
|
|
659
739
|
return "gone";
|
|
660
740
|
}
|
|
661
741
|
if (!this.tryDeliver(entry.frame, originOf(entry))) {
|
|
662
742
|
this.held.splice(index, 0, entry);
|
|
663
743
|
void this.report(entry.frame, "held");
|
|
664
744
|
this.notifyHeldChange();
|
|
745
|
+
this.rescheduleExpiry();
|
|
665
746
|
return "failed";
|
|
666
747
|
}
|
|
667
748
|
this.recordSettled(entry.frame.msgId, "delivered");
|
|
@@ -671,6 +752,7 @@ var InboundGate = class {
|
|
|
671
752
|
void this.report(entry.frame, "denied");
|
|
672
753
|
}
|
|
673
754
|
this.notifyHeldChange();
|
|
755
|
+
this.rescheduleExpiry();
|
|
674
756
|
return "done";
|
|
675
757
|
}
|
|
676
758
|
/**
|
|
@@ -684,6 +766,8 @@ var InboundGate = class {
|
|
|
684
766
|
* Returns the number of messages released.
|
|
685
767
|
*/
|
|
686
768
|
reevaluate(reason) {
|
|
769
|
+
this.expireOverdue();
|
|
770
|
+
this.rescheduleExpiry();
|
|
687
771
|
if (this.held.length === 0) return 0;
|
|
688
772
|
const stillHeld = [];
|
|
689
773
|
const release = [];
|
|
@@ -698,8 +782,7 @@ var InboundGate = class {
|
|
|
698
782
|
this.recordSettled(entry.frame.msgId, "denied");
|
|
699
783
|
void this.report(entry.frame, "denied");
|
|
700
784
|
} else {
|
|
701
|
-
|
|
702
|
-
stillHeld.push(cause === entry.cause ? entry : { ...entry, cause });
|
|
785
|
+
stillHeld.push(withCause(entry, decision));
|
|
703
786
|
}
|
|
704
787
|
}
|
|
705
788
|
let released = 0;
|
|
@@ -721,7 +804,9 @@ var InboundGate = class {
|
|
|
721
804
|
}
|
|
722
805
|
}
|
|
723
806
|
this.held.length = 0;
|
|
807
|
+
stillHeld.sort((a, b) => this.ageOf(b) - this.ageOf(a));
|
|
724
808
|
this.held.push(...stillHeld);
|
|
809
|
+
this.rescheduleExpiry();
|
|
725
810
|
if (release.length > 0 || dropped > 0) {
|
|
726
811
|
debugLogger2.debug(
|
|
727
812
|
`reevaluate (${reason}): released ${released}, dropped ${dropped}, misaddressed ${misaddressed}, ${this.held.length} still held`
|
|
@@ -738,6 +823,10 @@ var InboundGate = class {
|
|
|
738
823
|
*/
|
|
739
824
|
shutdown() {
|
|
740
825
|
this.shuttingDown = true;
|
|
826
|
+
if (this.expiryTimer !== null) {
|
|
827
|
+
clearTimeout(this.expiryTimer);
|
|
828
|
+
this.expiryTimer = null;
|
|
829
|
+
}
|
|
741
830
|
if (this.held.length === 0) return Promise.resolve();
|
|
742
831
|
const settling = this.held.splice(0, this.held.length);
|
|
743
832
|
debugLogger2.debug(
|
|
@@ -801,6 +890,89 @@ var InboundGate = class {
|
|
|
801
890
|
return false;
|
|
802
891
|
}
|
|
803
892
|
}
|
|
893
|
+
/**
|
|
894
|
+
* How long `entry` has been parked: the larger of the wall-clock and
|
|
895
|
+
* monotonic elapsed times.
|
|
896
|
+
*
|
|
897
|
+
* Neither clock alone is right. The wall clock is what a suspended
|
|
898
|
+
* machine advances -- CLOCK_MONOTONIC does not tick across suspend, so
|
|
899
|
+
* a monotonic-only age would keep a message parked through a two-hour
|
|
900
|
+
* sleep. But the wall clock also moves when nothing elapsed: a
|
|
901
|
+
* backward NTP correction of an hour would stretch a five-minute hold
|
|
902
|
+
* past sixty, and a step over ~24.8 days pushes the re-armed delay
|
|
903
|
+
* beyond setTimeout's range.
|
|
904
|
+
*
|
|
905
|
+
* Taking the larger keeps the suspend case working and makes a
|
|
906
|
+
* backward step a no-op, at the cost of treating a forward step as
|
|
907
|
+
* elapsed time -- which is the conservative direction, and in any case
|
|
908
|
+
* a forward step is indistinguishable from a suspend from in here.
|
|
909
|
+
*/
|
|
910
|
+
ageOf(entry) {
|
|
911
|
+
const wall = Date.now() - entry.heldAt;
|
|
912
|
+
if (entry.monotonicAt === void 0) return wall;
|
|
913
|
+
return Math.max(wall, performance.now() - entry.monotonicAt);
|
|
914
|
+
}
|
|
915
|
+
/**
|
|
916
|
+
* Settle every message whose hold has run out.
|
|
917
|
+
*
|
|
918
|
+
* Expiry is judged against the lifetime configured *now*, not the one
|
|
919
|
+
* in force when each message arrived: shortening the setting expires a
|
|
920
|
+
* backlog that is already too old, and lengthening it gives the
|
|
921
|
+
* backlog the longer window. Either reading is defensible; this one
|
|
922
|
+
* has the property that what `/peers` shows as remaining is what
|
|
923
|
+
* actually happens.
|
|
924
|
+
*/
|
|
925
|
+
expireOverdue() {
|
|
926
|
+
const expiryMs = this.getHeldExpiryMs();
|
|
927
|
+
if (expiryMs === null || this.held.length === 0) return;
|
|
928
|
+
const survivors = [];
|
|
929
|
+
const expired = [];
|
|
930
|
+
for (const entry of this.held) {
|
|
931
|
+
(this.ageOf(entry) >= expiryMs ? expired : survivors).push(entry);
|
|
932
|
+
}
|
|
933
|
+
if (expired.length === 0) return;
|
|
934
|
+
this.held.length = 0;
|
|
935
|
+
this.held.push(...survivors);
|
|
936
|
+
for (const entry of expired) {
|
|
937
|
+
debugLogger2.debug(
|
|
938
|
+
`held peer message ${entry.frame.msgId} expired after ${expiryMs} ms`
|
|
939
|
+
);
|
|
940
|
+
this.recordSettled(entry.frame.msgId, "expired");
|
|
941
|
+
void this.report(entry.frame, "expired");
|
|
942
|
+
}
|
|
943
|
+
this.notifyHeldChange();
|
|
944
|
+
this.rescheduleExpiry();
|
|
945
|
+
}
|
|
946
|
+
/**
|
|
947
|
+
* Arm the timer for whichever message expires first, or clear it when
|
|
948
|
+
* nothing is waiting and when holds do not expire.
|
|
949
|
+
*
|
|
950
|
+
* Called after every change to the buffer. Unref'd: a session with a
|
|
951
|
+
* message parked should still be able to exit, and shutdown settles
|
|
952
|
+
* the backlog anyway.
|
|
953
|
+
*/
|
|
954
|
+
rescheduleExpiry() {
|
|
955
|
+
if (this.expiryTimer !== null) {
|
|
956
|
+
clearTimeout(this.expiryTimer);
|
|
957
|
+
this.expiryTimer = null;
|
|
958
|
+
}
|
|
959
|
+
if (this.shuttingDown) return;
|
|
960
|
+
const expiryMs = this.getHeldExpiryMs();
|
|
961
|
+
if (expiryMs === null) return;
|
|
962
|
+
let oldestAge = null;
|
|
963
|
+
for (const entry of this.held) {
|
|
964
|
+
const age = this.ageOf(entry);
|
|
965
|
+
if (oldestAge === null || age > oldestAge) oldestAge = age;
|
|
966
|
+
}
|
|
967
|
+
if (oldestAge === null) return;
|
|
968
|
+
const delay = Math.min(MAX_TIMEOUT_MS, Math.max(1, expiryMs - oldestAge));
|
|
969
|
+
this.expiryTimer = setTimeout(() => {
|
|
970
|
+
this.expiryTimer = null;
|
|
971
|
+
this.expireOverdue();
|
|
972
|
+
this.rescheduleExpiry();
|
|
973
|
+
}, delay);
|
|
974
|
+
this.expiryTimer.unref?.();
|
|
975
|
+
}
|
|
804
976
|
notifyHeldChange() {
|
|
805
977
|
try {
|
|
806
978
|
this.options.onHeldChange?.(this.held);
|
|
@@ -815,18 +987,40 @@ function originOf(entry) {
|
|
|
815
987
|
return { selfSent: entry.selfSent === true };
|
|
816
988
|
}
|
|
817
989
|
__name(originOf, "originOf");
|
|
818
|
-
function
|
|
990
|
+
function withCause(entry, decision) {
|
|
991
|
+
if (decision.policy !== "hold") return entry;
|
|
992
|
+
const { cause, scope } = decision;
|
|
993
|
+
if (cause === entry.cause && scope === entry.policyScope) return entry;
|
|
994
|
+
const { policyScope: _dropped, ...rest } = entry;
|
|
995
|
+
return scope === void 0 ? { ...rest, cause } : { ...rest, cause, policyScope: scope };
|
|
996
|
+
}
|
|
997
|
+
__name(withCause, "withCause");
|
|
998
|
+
function describeHoldCause(cause, scope) {
|
|
819
999
|
switch (cause) {
|
|
820
1000
|
case "explicit-setting":
|
|
821
|
-
|
|
1001
|
+
switch (scope) {
|
|
1002
|
+
case "workspace":
|
|
1003
|
+
return `this repository's settings hold messages from other sessions (agents.crossSessionInbound is "hold" in workspace settings)`;
|
|
1004
|
+
case "system":
|
|
1005
|
+
return 'a system setting holds messages from other sessions (agents.crossSessionInbound is "hold" in system settings)';
|
|
1006
|
+
default:
|
|
1007
|
+
return 'your crossSessionInbound setting is "hold"';
|
|
1008
|
+
}
|
|
822
1009
|
case "mode-mismatch":
|
|
823
|
-
return "this session can apply some
|
|
1010
|
+
return "the sender and this session are in different review modes: one reviews each action and the other can apply some without per-action review";
|
|
824
1011
|
case "no-mode-asserted":
|
|
825
|
-
return "
|
|
1012
|
+
return "the sender did not say whether it reviews each action";
|
|
826
1013
|
case "mode-unknown":
|
|
827
1014
|
return "this session's approval mode could not be determined";
|
|
828
1015
|
case "policy-unreadable":
|
|
829
|
-
|
|
1016
|
+
switch (scope) {
|
|
1017
|
+
case "workspace":
|
|
1018
|
+
return "the agents.crossSessionInbound value in this repository's workspace settings could not be read";
|
|
1019
|
+
case "system":
|
|
1020
|
+
return "the agents.crossSessionInbound value in system settings could not be read";
|
|
1021
|
+
default:
|
|
1022
|
+
return "your crossSessionInbound setting could not be read";
|
|
1023
|
+
}
|
|
830
1024
|
default: {
|
|
831
1025
|
const exhaustive = cause;
|
|
832
1026
|
return exhaustive;
|
|
@@ -836,6 +1030,7 @@ function describeHoldCause(cause) {
|
|
|
836
1030
|
__name(describeHoldCause, "describeHoldCause");
|
|
837
1031
|
|
|
838
1032
|
// packages/core/src/ipc/peer-send.ts
|
|
1033
|
+
init_esbuild_shims();
|
|
839
1034
|
async function getOwnPeerIdentity() {
|
|
840
1035
|
const record = await readOwnSessionRecord();
|
|
841
1036
|
const self = record === null ? null : toPeerSessionInfo(record);
|
|
@@ -849,7 +1044,7 @@ async function getOwnPeerIdentity() {
|
|
|
849
1044
|
}
|
|
850
1045
|
__name(getOwnPeerIdentity, "getOwnPeerIdentity");
|
|
851
1046
|
function senderModeClass(mode) {
|
|
852
|
-
return
|
|
1047
|
+
return modeClass(mode);
|
|
853
1048
|
}
|
|
854
1049
|
__name(senderModeClass, "senderModeClass");
|
|
855
1050
|
var MAX_TRACKED_SENDS = 200;
|
|
@@ -866,10 +1061,21 @@ function trackSent(msgId, info) {
|
|
|
866
1061
|
}
|
|
867
1062
|
__name(trackSent, "trackSent");
|
|
868
1063
|
var RECEIPT_TRANSITIONS = {
|
|
869
|
-
pending: /* @__PURE__ */ new Set([
|
|
1064
|
+
pending: /* @__PURE__ */ new Set([
|
|
1065
|
+
"held",
|
|
1066
|
+
"delivered",
|
|
1067
|
+
"denied",
|
|
1068
|
+
"refused",
|
|
1069
|
+
"expired",
|
|
1070
|
+
"misaddressed"
|
|
1071
|
+
]),
|
|
1072
|
+
// A refusal is decided at admission, so it cannot follow a hold: a
|
|
1073
|
+
// message already parked was not turned away. Switching the setting to
|
|
1074
|
+
// `refuse` while it sits there settles it as `denied` — someone chose.
|
|
870
1075
|
held: /* @__PURE__ */ new Set(["delivered", "denied", "expired", "misaddressed"]),
|
|
871
1076
|
delivered: /* @__PURE__ */ new Set(["expired", "misaddressed"]),
|
|
872
1077
|
denied: /* @__PURE__ */ new Set(),
|
|
1078
|
+
refused: /* @__PURE__ */ new Set(),
|
|
873
1079
|
expired: /* @__PURE__ */ new Set(),
|
|
874
1080
|
misaddressed: /* @__PURE__ */ new Set()
|
|
875
1081
|
};
|
|
@@ -1006,13 +1212,17 @@ export {
|
|
|
1006
1212
|
parsePeerFrame,
|
|
1007
1213
|
describeDeliveryStatus,
|
|
1008
1214
|
parsePeerAuthLine,
|
|
1009
|
-
|
|
1215
|
+
MAX_SOCKET_PATH_BYTES,
|
|
1216
|
+
SOCKET_DIR_NAME,
|
|
1217
|
+
resolvePeerSocketCandidates,
|
|
1010
1218
|
isLocalIpcPath,
|
|
1011
1219
|
sendDeliveryStatus,
|
|
1220
|
+
probePeerSocketVerdict,
|
|
1012
1221
|
listMessageablePeers,
|
|
1013
1222
|
advertisablePeerAddress,
|
|
1014
1223
|
isInProcessRecipient,
|
|
1015
1224
|
MAX_HELD_MESSAGES,
|
|
1225
|
+
parseHeldExpiry,
|
|
1016
1226
|
InboundGate,
|
|
1017
1227
|
describeHoldCause,
|
|
1018
1228
|
getOwnPeerIdentity,
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
t
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MUZCSTOO.js";
|
|
6
6
|
import {
|
|
7
7
|
SessionReferenceService,
|
|
8
8
|
readManyFiles
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-UEZOXZNI.js";
|
|
10
10
|
import {
|
|
11
11
|
emptyMcpResourceText,
|
|
12
12
|
formatMcpResourceContents,
|
|
@@ -15,10 +15,10 @@ import {
|
|
|
15
15
|
import {
|
|
16
16
|
SessionService,
|
|
17
17
|
stripTerminalControlSequences
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-I72PHOKL.js";
|
|
19
19
|
import {
|
|
20
20
|
shouldRunVisionBridge
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-P5LDR7FI.js";
|
|
22
22
|
import {
|
|
23
23
|
Storage,
|
|
24
24
|
getErrorMessage,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
isSubpath,
|
|
27
27
|
unescapePath,
|
|
28
28
|
unescapeShellSpecials
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-ZAFYHRVY.js";
|
|
30
30
|
import {
|
|
31
31
|
init_esbuild_shims
|
|
32
32
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
wrapForMultiplexer
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-VU7O7CGQ.js";
|
|
6
6
|
import {
|
|
7
7
|
createDebugLogger
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ZAFYHRVY.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esbuild_shims
|
|
11
11
|
} from "./chunk-5O2XNYP6.js";
|