@qwen-code/qwen-code 0.23.2 → 0.23.3-nightly.20260911.aaa6a32aae

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.
Files changed (419) hide show
  1. package/README.md +35 -15
  2. package/bundled/computer-use/SKILL.md +1 -1
  3. package/bundled/goal-draft/SKILL.md +10 -10
  4. package/bundled/qc-helper/docs/configuration/model-providers.md +66 -28
  5. package/bundled/qc-helper/docs/configuration/settings.md +8 -3
  6. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  7. package/bundled/qc-helper/docs/features/channels/dingtalk.md +0 -20
  8. package/bundled/qc-helper/docs/features/channels/dws.md +7 -1
  9. package/bundled/qc-helper/docs/features/channels/overview.md +5 -6
  10. package/bundled/qc-helper/docs/features/commands.md +62 -9
  11. package/bundled/qc-helper/docs/features/computer-use.md +1 -1
  12. package/bundled/qc-helper/docs/features/cross-session-protocol.md +338 -0
  13. package/bundled/qc-helper/docs/features/goals.md +22 -18
  14. package/bundled/qc-helper/docs/features/hooks.md +28 -22
  15. package/bundled/qc-helper/docs/features/sub-agents.md +27 -0
  16. package/bundled/qc-helper/docs/qwen-serve.md +23 -6
  17. package/bundled/review/SKILL.md +93 -80
  18. package/bundled/review/references/persistence.md +2 -0
  19. package/bundled/review/references/posting.md +31 -14
  20. package/bundled/workflow-authoring/SKILL.md +410 -0
  21. package/bundled/workflow-creator/SKILL.md +1 -1
  22. package/chunks/{MaxSizedBox-4C3BKKKY.js → MaxSizedBox-7C5XTBZI.js} +64 -53
  23. package/chunks/{StandaloneSessionPicker-TXVF65YW.js → StandaloneSessionPicker-IGTT3ZRX.js} +88 -76
  24. package/chunks/{acp-startup-profiler-KEU6VAYR.js → acp-startup-profiler-RUQNTNU5.js} +2 -2
  25. package/chunks/acp-subagent-executor-IUHVNVVO.js +140 -0
  26. package/chunks/{acpAgent-H5XBKGB4.js → acpAgent-W43WM2K4.js} +957 -243
  27. package/chunks/{agent-T5LEFJIU.js → agent-2XMXC5JW.js} +48 -38
  28. package/chunks/{agent-headless-VZKSRH36.js → agent-headless-2HHBVCP6.js} +48 -38
  29. package/chunks/{anthropicContentGenerator-PRJWWVYJ.js → anthropicContentGenerator-7RI3MPIW.js} +69 -36
  30. package/chunks/{artifact-tool-G5LHNECG.js → artifact-tool-HHVHCPNG.js} +59 -109
  31. package/chunks/{askUserQuestion-I5W5S3D6.js → askUserQuestion-RFMXTD3B.js} +2 -2
  32. package/chunks/{bridge-AOX5IY44.js → bridge-ID6N4IH5.js} +69 -58
  33. package/chunks/{ca-KC2AISNS.js → ca-MX3WCEEG.js} +1 -1
  34. package/chunks/{channel-management-service-MWQGHPAS.js → channel-management-service-ASCXI7FR.js} +6 -6
  35. package/chunks/{channel-settings-store-XZCGDGHW.js → channel-settings-store-TPJFQAZY.js} +76 -65
  36. package/chunks/{channel-worker-group-SQ5FRWOH.js → channel-worker-group-JR6JOELM.js} +9 -9
  37. package/chunks/{channel-worker-manager-TU4ZNWOE.js → channel-worker-manager-AVKJEZFL.js} +19 -10
  38. package/chunks/{channel-worker-supervisor-EMITFMCP.js → channel-worker-supervisor-OOYY7BAQ.js} +7 -7
  39. package/chunks/{chunk-4WMGYG3F.js → chunk-22FWWGSM.js} +2 -2
  40. package/chunks/{chunk-LWX4WDFF.js → chunk-2S5RIGZJ.js} +43 -15
  41. package/chunks/{chunk-CLKE4IY3.js → chunk-2SZH22YO.js} +1 -1
  42. package/chunks/{chunk-HJ5UJQQL.js → chunk-2UKKQGRA.js} +3639 -1804
  43. package/chunks/{chunk-MWIO7MF6.js → chunk-2WSLXP3W.js} +4 -0
  44. package/chunks/{chunk-HNLMYDQE.js → chunk-33LYAC4R.js} +10 -6
  45. package/chunks/{chunk-VBLAI2HA.js → chunk-3FPYT6QC.js} +0 -31
  46. package/chunks/{chunk-F53KKZUD.js → chunk-3LMDSCLU.js} +158 -10
  47. package/chunks/{chunk-WXFCI3O5.js → chunk-3MAUPOZ4.js} +2 -2
  48. package/chunks/{chunk-CRZBDVP2.js → chunk-432JQKIO.js} +10 -10
  49. package/chunks/{chunk-IRGDIDGJ.js → chunk-43RQ552L.js} +364 -84
  50. package/chunks/{chunk-PFKGV6PO.js → chunk-465USTVK.js} +9 -15
  51. package/chunks/{chunk-WG7BL3FY.js → chunk-473RJLIH.js} +1 -1
  52. package/chunks/{chunk-J3VZF2AL.js → chunk-4O2AXZXU.js} +2 -2
  53. package/chunks/{chunk-N6S3NUYJ.js → chunk-55VOWZ4C.js} +1 -1
  54. package/chunks/{chunk-OWCFKIFQ.js → chunk-5CZMWDJI.js} +2 -2
  55. package/chunks/{chunk-7NDZKE2M.js → chunk-5MUIHID6.js} +5 -5
  56. package/chunks/{chunk-RM244SCQ.js → chunk-5Z74GE4N.js} +1 -1
  57. package/chunks/{chunk-G5VOXCRX.js → chunk-6375QMAO.js} +2 -2
  58. package/chunks/{chunk-3LPJ776W.js → chunk-63GQZKXL.js} +164 -31
  59. package/chunks/{chunk-O2FEO2CB.js → chunk-6GDELAVL.js} +18 -2
  60. package/chunks/{chunk-7PD7ZMX5.js → chunk-6HI2I3OM.js} +168 -6
  61. package/chunks/{chunk-CALNF3Z3.js → chunk-7C57HCOR.js} +1 -1
  62. package/chunks/{chunk-UYDQYDW2.js → chunk-7IBS746B.js} +1 -1
  63. package/chunks/{chunk-AUTUFD5X.js → chunk-ABNX6E6K.js} +1 -1
  64. package/chunks/chunk-ACHCT36C.js +28 -0
  65. package/chunks/{chunk-2WC3Y7YY.js → chunk-AEY27Z35.js} +401 -23
  66. package/chunks/{chunk-AO2VMS72.js → chunk-AQFRRH73.js} +3 -3
  67. package/chunks/{chunk-PDN7FJZV.js → chunk-ASWEMQIZ.js} +4 -4
  68. package/chunks/chunk-AYEJOTIU.js +43 -0
  69. package/chunks/{chunk-QFJZAY7W.js → chunk-BKFRA4F5.js} +5 -5
  70. package/chunks/{chunk-KCF2436G.js → chunk-BNLW5N6U.js} +4 -4
  71. package/chunks/{chunk-GOKAOSCN.js → chunk-BRFOZEPA.js} +2 -2
  72. package/chunks/{process-registry-OAEG6WGC.js → chunk-BYUAT5OC.js} +1 -0
  73. package/chunks/chunk-C5CECJ46.js +340 -0
  74. package/chunks/{chunk-NOO4QFXM.js → chunk-C75BXMPM.js} +1 -3
  75. package/chunks/chunk-CAAMI77K.js +937 -0
  76. package/chunks/{chunk-QTB4VP4K.js → chunk-CBGHRAWM.js} +304 -23
  77. package/chunks/chunk-CF5KXZZX.js +150 -0
  78. package/chunks/chunk-CFMZLE3L.js +75 -0
  79. package/chunks/{chunk-TGNNLRC3.js → chunk-CJ3DHN5I.js} +1 -0
  80. package/chunks/{chunk-ERXNTINK.js → chunk-CQZJYGRX.js} +1 -1
  81. package/chunks/{chunk-WBU2PIZ5.js → chunk-CSDKDHWV.js} +23 -16
  82. package/chunks/{chunk-2EKVPSIJ.js → chunk-D754KKNZ.js} +9 -2
  83. package/chunks/{chunk-E6TI726I.js → chunk-DGC7BKEZ.js} +1 -1
  84. package/chunks/{chunk-7SVM3RP2.js → chunk-DMMOQWRF.js} +4 -6
  85. package/chunks/{chunk-J3TJH52D.js → chunk-DOTF2PF2.js} +1 -1
  86. package/chunks/{chunk-2BMXHB6N.js → chunk-DWBNQR53.js} +7 -7
  87. package/chunks/{chunk-ZN5TKAVR.js → chunk-E5LTUWKZ.js} +3 -3
  88. package/chunks/chunk-EGW3ZP6Y.js +32 -0
  89. package/chunks/chunk-ELRMZTPF.js +374 -0
  90. package/chunks/{chunk-RNAJVXUG.js → chunk-ENAUXRPG.js} +6 -6
  91. package/chunks/{chunk-WXD7INFV.js → chunk-EO4U2X47.js} +10 -8
  92. package/chunks/{chunk-WDVV3LRM.js → chunk-EPVEPTI3.js} +45 -152
  93. package/chunks/chunk-ERU3SDXT.js +27 -0
  94. package/chunks/{chunk-4HOEU2OR.js → chunk-EWJTAP3Y.js} +1 -19
  95. package/chunks/{chunk-GSFV5RQW.js → chunk-EYN3G5XD.js} +328 -4
  96. package/chunks/{chunk-QB3KS3N3.js → chunk-FGROOEKM.js} +5 -40
  97. package/chunks/{chunk-TOOOLHVS.js → chunk-FH5AVEWJ.js} +3 -3
  98. package/chunks/{chunk-DAI65CMX.js → chunk-FJZWRNEW.js} +1 -1
  99. package/chunks/{chunk-GNY7B3CA.js → chunk-FUQK5ZNL.js} +1 -1
  100. package/chunks/{chunk-GOEVQADN.js → chunk-GDIPPCW6.js} +330 -175
  101. package/chunks/{chunk-ALMR3E6Q.js → chunk-GDWE23OR.js} +3 -3
  102. package/chunks/{chunk-LNYV4GXX.js → chunk-GSKX53AN.js} +0 -139
  103. package/chunks/{chunk-ELD3OBPU.js → chunk-GWOVD63C.js} +3 -3
  104. package/chunks/{chunk-IWABUX6T.js → chunk-GX5FF2IE.js} +6 -6
  105. package/chunks/{chunk-22GORRNY.js → chunk-GZMNHAYC.js} +1 -1
  106. package/chunks/{chunk-YZTGGCEE.js → chunk-H3TFIFX3.js} +1 -1
  107. package/chunks/{chunk-6G4V7SE4.js → chunk-HG46TTAG.js} +1 -1
  108. package/chunks/{chunk-FETY36NQ.js → chunk-HGEUHUEV.js} +1 -1
  109. package/chunks/{chunk-KEPC5BOL.js → chunk-IBRQG2MP.js} +12 -15
  110. package/chunks/{chunk-OXR34GCD.js → chunk-IILWL3KY.js} +2054 -146
  111. package/chunks/{chunk-IW6RQPQB.js → chunk-IJOS26LH.js} +1 -3
  112. package/chunks/{chunk-ORFIYTI2.js → chunk-IK2MWJP5.js} +1 -1
  113. package/chunks/{chunk-CMWU6P4D.js → chunk-IRJRB3OD.js} +1 -1
  114. package/chunks/{chunk-QHLHE2OT.js → chunk-IUN5ZMFY.js} +1 -1
  115. package/chunks/{chunk-LYT2OU7D.js → chunk-IXXV6BVB.js} +172 -6
  116. package/chunks/{chunk-R3JIDRUL.js → chunk-J6H4JP25.js} +4 -4
  117. package/chunks/{chunk-NB3NDQQK.js → chunk-J6SBP5G2.js} +1 -1
  118. package/chunks/{chunk-TRQNRP2H.js → chunk-J7LBAKDH.js} +46 -3
  119. package/chunks/{chunk-67XTVRVB.js → chunk-JJFHISXU.js} +30 -25
  120. package/chunks/chunk-JL6APGBX.js +43 -0
  121. package/chunks/{chunk-NX7ZTXFF.js → chunk-JSKEW4E7.js} +2 -1
  122. package/chunks/{chunk-BK7D2JR6.js → chunk-JVTXAA35.js} +3 -3
  123. package/chunks/chunk-K2OJUPOE.js +78 -0
  124. package/chunks/{chunk-G3ZUMSFS.js → chunk-K3U6VB3O.js} +6 -6
  125. package/chunks/{chunk-4I3WFI3U.js → chunk-K4KWLF7Q.js} +12 -12
  126. package/chunks/{chunk-WXPPUPHM.js → chunk-KWFFJ6AK.js} +1 -1
  127. package/chunks/{chunk-46MMBZHI.js → chunk-KZYOFJ6V.js} +4 -4
  128. package/chunks/{chunk-ULZECEIP.js → chunk-LDQHA6L4.js} +2 -20
  129. package/chunks/{chunk-7LTCFO6T.js → chunk-LQBAFO5D.js} +6 -5
  130. package/chunks/{chunk-SOA4HKRJ.js → chunk-LT2XFADM.js} +2 -2
  131. package/chunks/{chunk-JYGIJA4W.js → chunk-LWWRJRCD.js} +1 -1
  132. package/chunks/{chunk-YQGW3M6Z.js → chunk-MFQWRBFB.js} +5 -5
  133. package/chunks/{chunk-TODNHE76.js → chunk-MUFGTWQH.js} +5 -5
  134. package/chunks/{chunk-5DQ4YTIZ.js → chunk-MV5XRRML.js} +3 -3
  135. package/chunks/{chunk-IR6JKBAP.js → chunk-NOUK63IR.js} +2 -2
  136. package/chunks/{chunk-XQ4RDO5B.js → chunk-NV77SEX3.js} +1 -1
  137. package/chunks/{chunk-OFVAS4AR.js → chunk-NWDPOFJI.js} +2 -2
  138. package/chunks/chunk-NY6OPAPS.js +820 -0
  139. package/chunks/{chunk-WDN64MVT.js → chunk-O5VX66FB.js} +127 -18
  140. package/chunks/{chunk-MV5DTLJV.js → chunk-OHCR4O3U.js} +1 -1
  141. package/chunks/{chunk-LEAOJ43M.js → chunk-OKOPKQ2X.js} +1310 -2107
  142. package/chunks/{chunk-B25JYXZE.js → chunk-ONLJBOI2.js} +971 -17
  143. package/chunks/{chunk-QQK4L3UU.js → chunk-OWUAZXXN.js} +132 -26
  144. package/chunks/{chunk-R457KFV7.js → chunk-P42IUOAO.js} +3 -3
  145. package/chunks/{chunk-LUNC5KCL.js → chunk-PRELUGCQ.js} +214 -39
  146. package/chunks/{chunk-5OZUKLL7.js → chunk-QSMQKTXV.js} +4 -4
  147. package/chunks/{chunk-FAJPLSYF.js → chunk-QTQYLQ5A.js} +85 -81
  148. package/chunks/{chunk-CALTQWTZ.js → chunk-QVZDV4ZS.js} +2 -2
  149. package/chunks/{chunk-J6MB5ZHZ.js → chunk-QZW6WRB7.js} +2 -1
  150. package/chunks/{chunk-KFECPHLV.js → chunk-RBWAGV73.js} +3 -3
  151. package/chunks/{chunk-4VY3ITHR.js → chunk-RF5RQRTD.js} +3 -3
  152. package/chunks/{chunk-HIXUUCGY.js → chunk-RPMXMR6U.js} +2 -2
  153. package/chunks/{chunk-3OAXF3UK.js → chunk-RRQEZBL2.js} +3756 -1343
  154. package/chunks/{chunk-4ALNJDHL.js → chunk-RSGEAWFJ.js} +19 -1
  155. package/chunks/{chunk-5BH2AIEY.js → chunk-RUE62UH6.js} +2 -2
  156. package/chunks/{chunk-PQEISIKS.js → chunk-SAH4BD2J.js} +0 -67
  157. package/chunks/{chunk-A7EFXK7P.js → chunk-SAOJHRWY.js} +2 -2
  158. package/chunks/{chunk-JO77FGNZ.js → chunk-SDUIETBG.js} +19 -7
  159. package/chunks/{chunk-6RZX2HIH.js → chunk-TBEXLLAO.js} +2 -2
  160. package/chunks/{chunk-PSPAM24S.js → chunk-TBSCTWKF.js} +6 -0
  161. package/chunks/{chunk-HRPFBHW7.js → chunk-TPKQIA7G.js} +1 -0
  162. package/chunks/{chunk-XDNFODER.js → chunk-TUIW5LLK.js} +1 -1
  163. package/chunks/{chunk-APXIW2TF.js → chunk-TVV5FA3G.js} +4 -4
  164. package/chunks/chunk-U6H3XTFA.js +95 -0
  165. package/chunks/{chunk-S5QR6CB5.js → chunk-UKMWZ5NS.js} +108 -887
  166. package/chunks/{chunk-U6REWGVR.js → chunk-VG2BRSEK.js} +2 -2
  167. package/chunks/chunk-VGBOJH2D.js +127 -0
  168. package/chunks/chunk-VGY2RGXL.js +100 -0
  169. package/chunks/{chunk-ZP5XDLSA.js → chunk-VLWG3EHY.js} +12 -12
  170. package/chunks/{chunk-4JNHNVAZ.js → chunk-W547PYQ7.js} +9 -4
  171. package/chunks/{chunk-7VEYUF3N.js → chunk-W5ZQMAEM.js} +1 -1
  172. package/chunks/{chunk-QAZ2MGYT.js → chunk-W7JJLUSB.js} +2 -2
  173. package/chunks/{chunk-CCBTNJB4.js → chunk-W7Q7XDQI.js} +39 -27
  174. package/chunks/{chunk-DARWOZY6.js → chunk-WD6YQI5M.js} +1 -1
  175. package/chunks/{chunk-F2NYVASI.js → chunk-WXAWG3JS.js} +30 -13
  176. package/chunks/{chunk-NPKCVSXX.js → chunk-XB5JRCAM.js} +11 -9
  177. package/chunks/{chunk-XSOXPG2L.js → chunk-XE46RQFI.js} +136 -8
  178. package/chunks/{chunk-QTNCGZHQ.js → chunk-XX5HQLCZ.js} +16 -0
  179. package/chunks/{chunk-2Z3T52OC.js → chunk-Y5TM7SBV.js} +7 -2
  180. package/chunks/chunk-YC6XOB5N.js +691 -0
  181. package/chunks/{chunk-CWVZBIZJ.js → chunk-YDW4ERSS.js} +1 -1
  182. package/chunks/{chunk-TRWQQBVH.js → chunk-YGCTOXUT.js} +10 -24
  183. package/chunks/{chunk-WK7P62DV.js → chunk-YKC67ZEF.js} +6 -6
  184. package/chunks/{chunk-KA5HR3G2.js → chunk-YKM6MITI.js} +5 -5
  185. package/chunks/{chunk-X7LFJF5D.js → chunk-YM6KUQ2S.js} +36 -84
  186. package/chunks/{chunk-HZ2HUXX7.js → chunk-YS2ZJSOA.js} +29 -12
  187. package/chunks/{chunk-G37O7YO6.js → chunk-ZAWM6KRF.js} +3 -3
  188. package/chunks/{chunk-H3Q3RSKZ.js → chunk-ZFIWHBJ3.js} +1 -1
  189. package/chunks/{chunk-XBVNNDPK.js → chunk-ZHKTKHMO.js} +8 -1
  190. package/chunks/{chunk-YLOHCA6I.js → chunk-ZKWO4CF4.js} +2 -2
  191. package/chunks/{chunk-VJJXG73H.js → chunk-ZMQL5BL5.js} +21 -6
  192. package/chunks/{chunk-FGHPZGOP.js → chunk-ZMUYBOYB.js} +39 -55
  193. package/chunks/{chunk-FV4DM2M4.js → chunk-ZNI3YJHS.js} +26 -6
  194. package/chunks/{chunk-565U2ANU.js → chunk-ZTTC7T4X.js} +1 -1
  195. package/chunks/{chunk-7OCIQNKX.js → chunk-ZW2EUO2A.js} +1 -1
  196. package/chunks/codex-subagent-executor-26XOHVKH.js +585 -0
  197. package/chunks/{config-utils-GPLIABL2.js → config-utils-JUG3MOYN.js} +68 -57
  198. package/chunks/{contextCommand-NCUQUDBY.js → contextCommand-6K3POZFA.js} +65 -54
  199. package/chunks/{core-runtime-WKYKWVYU.js → core-runtime-XQFZLA2V.js} +66 -55
  200. package/chunks/{create-sub-session-TGIX63YU.js → create-sub-session-4UJ6RM6W.js} +5 -2
  201. package/chunks/{create-sub-session-PPLXB3JJ.js → create-sub-session-T4IYIOC7.js} +178 -91
  202. package/chunks/{cron-create-GTPVMJCF.js → cron-create-6466RWSO.js} +2 -2
  203. package/chunks/{cron-delete-ZBK27Z4K.js → cron-delete-W4QUWHOA.js} +2 -2
  204. package/chunks/{cron-list-KTFKFDKC.js → cron-list-Q5LJ5PZE.js} +2 -2
  205. package/chunks/{daemon-2CKIAO3I.js → daemon-PHPJUXDZ.js} +4 -2
  206. package/chunks/{daemon-git-worktree-guard-73ZWOLKL.js → daemon-git-worktree-guard-5WEMZ64U.js} +65 -54
  207. package/chunks/{daemon-status-provider-OK7VONJG.js → daemon-status-provider-GMD7QD4T.js} +74 -63
  208. package/chunks/{daemon-trust-policy-CAUCREG2.js → daemon-trust-policy-IPBZES2Z.js} +71 -60
  209. package/chunks/{daemon-trust-policy-monitor-3Y36OOEQ.js → daemon-trust-policy-monitor-MHYEN7X7.js} +71 -60
  210. package/chunks/{de-UU2YTO37.js → de-OOLZAU2U.js} +1 -1
  211. package/chunks/{deferred-core-runtime-Q7WFWYD3.js → deferred-core-runtime-CY43FZNZ.js} +63 -52
  212. package/chunks/{discovery-XP4RMDUM.js → discovery-5KUEPR65.js} +2 -2
  213. package/chunks/{display-image-CTNHJRZC.js → display-image-6AZIHP3J.js} +3 -3
  214. package/chunks/{dist-F34J4FZX.js → dist-2QYIVNS6.js} +2 -5
  215. package/chunks/{dist-6YDUH3BB.js → dist-GIMQXYLI.js} +10 -631
  216. package/chunks/{dist-NP7QKLVG.js → dist-GUB7QRYA.js} +3 -6
  217. package/chunks/{dist-Y5KC3IHW.js → dist-L45UB6DG.js} +233 -35
  218. package/chunks/{dist-XLV33CLY.js → dist-MPUZZOG5.js} +5 -18
  219. package/chunks/{dist-ZDNJK74R.js → dist-PA7WPFVE.js} +6 -37
  220. package/chunks/{dist-F6JLAJLE.js → dist-T6DDPDLQ.js} +16 -36
  221. package/chunks/{dist-BNQVF565.js → dist-TFGETXFN.js} +14 -37
  222. package/chunks/{dist-UFTFGI6I.js → dist-VDLSBCLM.js} +2 -6
  223. package/chunks/{edit-YJD6IETK.js → edit-6NUP5IPX.js} +48 -38
  224. package/chunks/{en-YJNRUQG4.js → en-ZSZW3PZX.js} +4 -1
  225. package/chunks/{enter-worktree-YFTKHXHZ.js → enter-worktree-EETDMJRF.js} +5 -5
  226. package/chunks/{enterPlanMode-EFPVTWIH.js → enterPlanMode-AZHYHEII.js} +48 -38
  227. package/chunks/{environment-HP3AXFTB.js → environment-ON6GIQ4F.js} +66 -55
  228. package/chunks/{errors-22ON46G7.js → errors-DQE63SCC.js} +65 -54
  229. package/chunks/exec-66WQIVYU.js +505 -0
  230. package/chunks/{exit-worktree-NF2XEMES.js → exit-worktree-DIPJ6S55.js} +5 -5
  231. package/chunks/{exitPlanMode-MOQUNCBH.js → exitPlanMode-NHBV6LAI.js} +48 -38
  232. package/chunks/{fast-path-2X7BPMXX.js → fast-path-EPJSUZZC.js} +7 -7
  233. package/chunks/{fast-path-settings-SATXY3PD.js → fast-path-settings-XDYX7X5Z.js} +2 -2
  234. package/chunks/{fr-HKNWVXRJ.js → fr-JJWM2HUS.js} +1 -1
  235. package/chunks/{glob-Y7ACIB3P.js → glob-MNEXQ2NV.js} +51 -41
  236. package/chunks/{goal-tools-DABMICUC.js → goal-tools-D2A4QBCJ.js} +54 -40
  237. package/chunks/{grep-BLHF2S5D.js → grep-EFWPV3MM.js} +2 -2
  238. package/chunks/{handleAutoUpdate-MCAMHYDI.js → handleAutoUpdate-2RY3OQA6.js} +67 -56
  239. package/chunks/{i18n-C3GDCALP.js → i18n-HTHDB3I7.js} +64 -53
  240. package/chunks/{image-gen-XP4NNIYG.js → image-gen-2PHED3P4.js} +8 -6
  241. package/chunks/{initializer-4URDQL2G.js → initializer-JEVLJCQA.js} +71 -60
  242. package/chunks/{installationInfo-LBOL6SBV.js → installationInfo-ITRB6J4L.js} +63 -52
  243. package/chunks/{ja-GJS5RZGU.js → ja-L67TXFDJ.js} +1 -1
  244. package/chunks/list-KOUIMHT5.js +133 -0
  245. package/chunks/{list-agents-2CXPGJUE.js → list-agents-IY4NEWLP.js} +17 -7
  246. package/chunks/{llm-2KPNSAVY.js → llm-F7WHGESY.js} +132 -120
  247. package/chunks/{llm-content-generator-GR3FOHLB.js → llm-content-generator-NYQ2NAVA.js} +6 -5
  248. package/chunks/{loadedSettingsAdapter-DVKROEJD.js → loadedSettingsAdapter-HZUAX5CX.js} +71 -60
  249. package/chunks/{loggingContentGenerator-P4K6K5W4.js → loggingContentGenerator-WMNU7C5J.js} +70 -59
  250. package/chunks/{loop-wakeup-HL6XOWI4.js → loop-wakeup-ANX25YW2.js} +3 -3
  251. package/chunks/{ls-YV7RKLKY.js → ls-4XCMJNZF.js} +4 -4
  252. package/chunks/{lsp-NO3AMRZT.js → lsp-K5E2Y64R.js} +1 -1
  253. package/chunks/{managed-npm-update-VWBKHNIN.js → managed-npm-update-EJJB65QI.js} +63 -52
  254. package/chunks/mcp-I73R6HS3.js +127 -0
  255. package/chunks/{monitor-A255TNZR.js → monitor-T56GJNA4.js} +50 -40
  256. package/chunks/{nonInteractiveCli-LXGIKQAT.js → nonInteractiveCli-CKHHJ423.js} +120 -109
  257. package/chunks/{notebook-edit-5UYHS2DM.js → notebook-edit-W5TU3EZ3.js} +48 -38
  258. package/chunks/openai-WX26N5OJ.js +47 -0
  259. package/chunks/{openaiContentGenerator-A6MAMEO5.js → openaiContentGenerator-TH6YAWAH.js} +33 -25
  260. package/chunks/openaiResponsesContentGenerator-EWLWQPKS.js +1738 -0
  261. package/chunks/{pidfile-B7DZC4TP.js → pidfile-RCC6TCEM.js} +63 -52
  262. package/chunks/process-registry-X6ZCASEN.js +10 -0
  263. package/chunks/{processUtils-BPZ2MCZS.js → processUtils-DQDQBRMC.js} +2 -2
  264. package/chunks/{prompt-terminal-ledger-FYYTAOXS.js → prompt-terminal-ledger-2LXWAGWU.js} +64 -53
  265. package/chunks/{pt-FXMYXEUV.js → pt-77SBDL4B.js} +1 -1
  266. package/chunks/{qwenContentGenerator-4IOJFD4S.js → qwenContentGenerator-LG65Z2YV.js} +61 -49
  267. package/chunks/{qwenOAuth2-KX6LVYQ3.js → qwenOAuth2-PJ63CCFD.js} +7 -5
  268. package/chunks/{read-file-A4H4O3VQ.js → read-file-72HMRUT4.js} +12 -9
  269. package/chunks/{read-mcp-resource-D3N75DGF.js → read-mcp-resource-NPF44YSC.js} +1 -1
  270. package/chunks/{record-artifact-Q5CRGJTP.js → record-artifact-MDXCCW2J.js} +3 -3
  271. package/chunks/record-source-VJLKDGGR.js +22 -0
  272. package/chunks/{report-findings-TJ34R7QK.js → report-findings-CZTYMZTC.js} +4 -4
  273. package/chunks/{request-shutdown-LRKMTBAD.js → request-shutdown-KOZHPVZU.js} +5 -5
  274. package/chunks/{resumeHistoryUtils-YQQ43E4N.js → resumeHistoryUtils-S2Q3M3EH.js} +69 -58
  275. package/chunks/{ripGrep-W32NWFTA.js → ripGrep-B2I3L5CO.js} +17 -13
  276. package/chunks/{ru-RMHURE5U.js → ru-UYWHKWF2.js} +1 -1
  277. package/chunks/{run-qwen-serve-WBSWWIRV.js → run-qwen-serve-AOPYFCVP.js} +305 -132
  278. package/chunks/{runtime-VRVBX2E5.js → runtime-TZMHKZAP.js} +77 -66
  279. package/chunks/{scheduled-tasks-D65KJDA3.js → scheduled-tasks-7RL6ZOYT.js} +72 -60
  280. package/chunks/{scheduler-M2YPN7Z7.js → scheduler-D6RLOFNU.js} +65 -54
  281. package/chunks/{sdk-exporters-grpc-MXTVSE3C.js → sdk-exporters-grpc-Y2ZUQDUQ.js} +2 -2
  282. package/chunks/{sdk-exporters-http-7R2ARBPV.js → sdk-exporters-http-VWTF4W6K.js} +3 -3
  283. package/chunks/{sdk-impl-YOLO7LV4.js → sdk-impl-G6FVTBQZ.js} +9 -9
  284. package/chunks/{send-message-76BKWKFZ.js → send-message-MMZVSS7P.js} +12 -9
  285. package/chunks/{serve-BE3H2P6P.js → serve-HWWDYI37.js} +72 -61
  286. package/chunks/{server-FLY5JERG.js → server-MD2X5U5L.js} +3156 -564
  287. package/chunks/{session-JVN62R5K.js → session-AFUMFNN7.js} +124 -113
  288. package/chunks/{session-attachments-root-7ACGLHXA.js → session-attachments-root-QPN3YWTY.js} +63 -52
  289. package/chunks/{session-pr-refresh-TQS57SDK.js → session-pr-refresh-4Y2ANMJX.js} +72 -60
  290. package/chunks/{settings-D44YMZFT.js → settings-QQRQ2LR7.js} +74 -63
  291. package/chunks/{shell-3VE6I4V5.js → shell-NUYUYMVI.js} +48 -38
  292. package/chunks/{skill-FHEGRRZU.js → skill-KHLDVOXW.js} +68 -30
  293. package/chunks/{skill-settings-VHEJMBFL.js → skill-settings-INLEGDEZ.js} +70 -59
  294. package/chunks/{spawnChannel-T6MX2ZDN.js → spawnChannel-KBGZHW2G.js} +67 -56
  295. package/chunks/{standalone-update-QUGHFMCS.js → standalone-update-3QP5NDVJ.js} +65 -54
  296. package/chunks/{start-opentui-ui-IHIIZ2LE.js → start-opentui-ui-VBT3XDWN.js} +2682 -2153
  297. package/chunks/{startInteractiveUI-LR7K2ARZ.js → startInteractiveUI-AZHKCHMR.js} +1562 -2317
  298. package/chunks/{syntheticOutput-D2P5V6RG.js → syntheticOutput-KRASPDE3.js} +2 -2
  299. package/chunks/{task-create-MWXJFRRM.js → task-create-TNXNT7ZD.js} +8 -8
  300. package/chunks/{task-list-EYO3FE57.js → task-list-FHNIJDKT.js} +1 -1
  301. package/chunks/{task-stop-BFSKRTGV.js → task-stop-MG4ZMTEI.js} +1 -1
  302. package/chunks/{task-update-2JJJRHMT.js → task-update-4HU62CJT.js} +8 -8
  303. package/chunks/{team-create-GY3VFY47.js → team-create-K5DNSJXR.js} +50 -40
  304. package/chunks/{team-delete-IQZ6XGFI.js → team-delete-2T44GUNN.js} +1 -1
  305. package/chunks/{team-plan-approval-BQPGZOT5.js → team-plan-approval-2ZNAQT2A.js} +48 -38
  306. package/chunks/{terminal-image-renderer-YNYW5CQG.js → terminal-image-renderer-23CW4A6Q.js} +65 -54
  307. package/chunks/{theme-manager-U6CIK3GM.js → theme-manager-G2333AMH.js} +63 -52
  308. package/chunks/{todoWrite-5ERKFWAK.js → todoWrite-BO2GR5MN.js} +4 -4
  309. package/chunks/{tool-search-XI3QWD5I.js → tool-search-MKQCKXN5.js} +22 -15
  310. package/chunks/{total-session-admission-3SNSJJ32.js → total-session-admission-ENKTM2KX.js} +69 -58
  311. package/chunks/{trustedFolders-OVAQKNV5.js → trustedFolders-2ETDL7OD.js} +64 -53
  312. package/chunks/{update-relaunch-XV5O74E3.js → update-relaunch-FMVNN5KA.js} +5 -5
  313. package/chunks/{updateCheck-CHUYWD6L.js → updateCheck-KWRV5KLJ.js} +66 -55
  314. package/chunks/{useAutoAcceptIndicator-VKSVIXZC.js → useAutoAcceptIndicator-7AUXAIQF.js} +73 -62
  315. package/chunks/{validateNonInterActiveAuth-ZNUTD3E5.js → validateNonInterActiveAuth-NETKLLDV.js} +117 -106
  316. package/chunks/{version-EK7VAGSI.js → version-DACNN2ZM.js} +1 -1
  317. package/chunks/{web-fetch-24KZO763.js → web-fetch-CIVCRET4.js} +16 -12
  318. package/chunks/{web-search-CRNXKZ2X.js → web-search-GOHZRGMM.js} +389 -327
  319. package/chunks/{web-shell-static-BFDESDD4.js → web-shell-static-T7UGLVE4.js} +2 -7
  320. package/chunks/workflow-IL2FOALZ.js +1324 -0
  321. package/chunks/workspace-providers-status-YGXL6N5U.js +131 -0
  322. package/chunks/{workspace-registration-store-HKLJEDQX.js → workspace-registration-store-E4IAOFFZ.js} +3 -1
  323. package/chunks/{workspace-registry-7RDDOBLN.js → workspace-registry-KX6BIBYK.js} +69 -58
  324. package/chunks/{workspace-runtime-coordinator-LEPDPXJO.js → workspace-runtime-coordinator-2KYYGDDR.js} +72 -59
  325. package/chunks/{workspace-service-5IFDCNN3.js → workspace-service-5Q6LWBYR.js} +76 -65
  326. package/chunks/{workspace-skills-status-FJ3HNH4H.js → workspace-skills-status-PJZTFPVV.js} +72 -61
  327. package/chunks/{workspace-trust-reconciler-PQFHIWLR.js → workspace-trust-reconciler-HS6PWNEA.js} +77 -66
  328. package/chunks/{write-file-ERG67ZFX.js → write-file-JB3DRM7O.js} +50 -40
  329. package/chunks/{zh-VBFCRQBL.js → zh-7UJA4ICT.js} +4 -1
  330. package/chunks/{zh-TW-N2TBF2F2.js → zh-TW-RV24PWUI.js} +4 -1
  331. package/chunks/{zoom-image-WQYEC3SR.js → zoom-image-AVHQFOOQ.js} +12 -9
  332. package/cli.js +16 -16
  333. package/codeModeHost.js +4425 -0
  334. package/export-transcript-document.css +1 -0
  335. package/export-transcript-document.js +164 -165
  336. package/locales/ca.js +2 -2
  337. package/locales/de.js +2 -2
  338. package/locales/en.js +5 -2
  339. package/locales/fr.js +2 -2
  340. package/locales/ja.js +2 -2
  341. package/locales/pt.js +2 -2
  342. package/locales/ru.js +2 -2
  343. package/locales/zh-TW.js +5 -2
  344. package/locales/zh.js +5 -2
  345. package/package.json +6 -4
  346. package/web-shell/assets/{abnfDiagram-VCTEODGH-BRLgQbnT.js → abnfDiagram-VCTEODGH-BH2nK5Z_.js} +1 -1
  347. package/web-shell/assets/{arc-qAF9_XsR.js → arc-CUUQ6krv.js} +1 -1
  348. package/web-shell/assets/{architectureDiagram-5GKGNRK7-BorUttEz.js → architectureDiagram-5GKGNRK7-CJjiRuGx.js} +1 -1
  349. package/web-shell/assets/{blockDiagram-NRAW4CY4-Bj0qZVxu.js → blockDiagram-NRAW4CY4-GCDyU9ZX.js} +1 -1
  350. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BTqJis32.js → c4Diagram-UCG6FXSJ-C68MiN6h.js} +1 -1
  351. package/web-shell/assets/channel-DauVlmdF.js +1 -0
  352. package/web-shell/assets/{chunk-2Q5K7J3B-RrQ5X8m-.js → chunk-2Q5K7J3B-_8B6frXZ.js} +1 -1
  353. package/web-shell/assets/{chunk-5VM5RSS4-uUjDl8wO.js → chunk-5VM5RSS4-CroSinX7.js} +1 -1
  354. package/web-shell/assets/{chunk-F27PBJKO-C3JhpyzI.js → chunk-F27PBJKO-CGn4Z0Fx.js} +1 -1
  355. package/web-shell/assets/{chunk-G27WJ6UU-C8ZNFs7F.js → chunk-G27WJ6UU-BI5nLQcf.js} +1 -1
  356. package/web-shell/assets/{chunk-JWPE2WC7-DNpXtEOs.js → chunk-JWPE2WC7-CYJH0FuH.js} +1 -1
  357. package/web-shell/assets/{chunk-LCL6LL3I-DagA2ZLw.js → chunk-LCL6LL3I-DjWZUqA1.js} +1 -1
  358. package/web-shell/assets/{chunk-POPQ4Y6H-R23uH7Xm.js → chunk-POPQ4Y6H-DcTkIHm8.js} +1 -1
  359. package/web-shell/assets/{chunk-SVP7TREG-Qz9RN_BR.js → chunk-SVP7TREG-E8sZT5uK.js} +1 -1
  360. package/web-shell/assets/{chunk-XXDRQBXY-jYb1_hni.js → chunk-XXDRQBXY-CurjPKw_.js} +1 -1
  361. package/web-shell/assets/classDiagram-DTDB5LWJ-BuIh7bj1.js +1 -0
  362. package/web-shell/assets/classDiagram-v2-JRS7N3AN-BuIh7bj1.js +1 -0
  363. package/web-shell/assets/{cose-bilkent-JH36ORCC-Cv2OunpE.js → cose-bilkent-JH36ORCC-CJEnNhth.js} +1 -1
  364. package/web-shell/assets/{cynefin-OW5HDTMX-LH42KFJx.js → cynefin-OW5HDTMX-jwEkm0yw.js} +1 -1
  365. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Dha4_OoR.js → cynefinDiagram-5FMLGOSQ-B-OVQ6AO.js} +1 -1
  366. package/web-shell/assets/{dagre-3AP2YEHR-Br5lnUKD.js → dagre-3AP2YEHR-CKKK9WNR.js} +1 -1
  367. package/web-shell/assets/{diagram-S7CK7UJ4-dpKq2bBX.js → diagram-S7CK7UJ4-D486veFQ.js} +1 -1
  368. package/web-shell/assets/{diagram-UQ7AKVKN-BAgHWpXr.js → diagram-UQ7AKVKN-C3GujqHv.js} +1 -1
  369. package/web-shell/assets/{diagram-VSXAHHWV-GRRzpyE2.js → diagram-VSXAHHWV-BrOTDwuU.js} +1 -1
  370. package/web-shell/assets/{diagram-VX7I27RA-BNFiaYpG.js → diagram-VX7I27RA-C4D9kWE3.js} +1 -1
  371. package/web-shell/assets/{diagram-Z3DM3KII-BisZzB_h.js → diagram-Z3DM3KII-7rAManT0.js} +1 -1
  372. package/web-shell/assets/{ebnfDiagram-PWID7BFC-B1xbwycf.js → ebnfDiagram-PWID7BFC-CqVzKOdr.js} +1 -1
  373. package/web-shell/assets/{erDiagram-SSCWMZ5O-CQMzbGE5.js → erDiagram-SSCWMZ5O-D2s08fc_.js} +1 -1
  374. package/web-shell/assets/{flowDiagram-A5DVABFB-CZ_Zondl.js → flowDiagram-A5DVABFB-CrKtBxB2.js} +1 -1
  375. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BTh2ShxS.js → ganttDiagram-EL5Y4UJY-CD1CKdlt.js} +1 -1
  376. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-oHOB-Uxt.js → gitGraphDiagram-WWUBYQGX-CHDXdVNn.js} +1 -1
  377. package/web-shell/assets/index-D8tzgUOC.css +36 -0
  378. package/web-shell/assets/{index-DWoFMu5x.js → index-DWz95m74.js} +1 -1
  379. package/web-shell/assets/index-cDFf68Wd.js +2204 -0
  380. package/web-shell/assets/{infoDiagram-RXCK75RN-C0QpudbG.js → infoDiagram-RXCK75RN-Cr1oLCwe.js} +1 -1
  381. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-a6B741uT.js → ishikawaDiagram-5VMMS53U--RghV1mm.js} +1 -1
  382. package/web-shell/assets/{journeyDiagram-EYS64GPL-Dbht9ICp.js → journeyDiagram-EYS64GPL-MN1ZkGW8.js} +1 -1
  383. package/web-shell/assets/{kanban-definition-3QL26DDD-D4OFR8-h.js → kanban-definition-3QL26DDD-DL05VTn0.js} +1 -1
  384. package/web-shell/assets/{layout-Dvdh5jRH.js → layout-D_TvQzvn.js} +1 -1
  385. package/web-shell/assets/{linear-Dvc6KIW2.js → linear-B_0OH6XF.js} +1 -1
  386. package/web-shell/assets/{mermaid.core-CB36RfIb.js → mermaid.core-B9Nklh9I.js} +6 -6
  387. package/web-shell/assets/{mindmap-definition-FBJOCRG2-Fmqo1CjP.js → mindmap-definition-FBJOCRG2-CevIQ0LR.js} +1 -1
  388. package/web-shell/assets/{pegDiagram-XKGWAZYB-CCxYBoA4.js → pegDiagram-XKGWAZYB-DQ8PIv0d.js} +1 -1
  389. package/web-shell/assets/{pieDiagram-E7YTZNPT-BVHKQFzt.js → pieDiagram-E7YTZNPT-BVTV1pPe.js} +1 -1
  390. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-l95IznwR.js → quadrantDiagram-AXDQQJYC-DHN6nhpe.js} +1 -1
  391. package/web-shell/assets/qwen-code-notification-BRVagufF.png +0 -0
  392. package/web-shell/assets/{railroadDiagram-O6MQD6OU-BlLdRdXp.js → railroadDiagram-O6MQD6OU-8HOyX0u-.js} +1 -1
  393. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BkDLBR5w.js → requirementDiagram-EFPCY7ZU-9W4_14i8.js} +1 -1
  394. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-jAIqRp65.js → sankeyDiagram-P5KCCOFB-DSUBB2XP.js} +1 -1
  395. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-f-soZYPr.js → sequenceDiagram-WJ2MYXX4-DD3jH6Jn.js} +1 -1
  396. package/web-shell/assets/{sizeCapture-X5ZJPWSS-BzOuAfB2.js → sizeCapture-X5ZJPWSS-RAFTU3Cz.js} +1 -1
  397. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BPLSs12r.js → stateDiagram-HBIQ2CUA-Drk-oZ2x.js} +1 -1
  398. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-QzYteVIm.js +1 -0
  399. package/web-shell/assets/{swimlanes-XN3QIQJK-D-9E_RIR.js → swimlanes-XN3QIQJK-Cy2nlOGx.js} +1 -1
  400. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-xTr-HG26.js +8 -0
  401. package/web-shell/assets/{timeline-definition-24CTP7MA-CT56K-gV.js → timeline-definition-24CTP7MA-B7outYof.js} +1 -1
  402. package/web-shell/assets/{vennDiagram-4TSXK5OY-B-vi4IyO.js → vennDiagram-4TSXK5OY-Di_u1Ic6.js} +1 -1
  403. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9O7Ju98.js → wardleyDiagram-VM6X3IG4-DYocuCAM.js} +1 -1
  404. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-6d8w3jg2.js → xychartDiagram-S5SC5T6Z-AADDse54.js} +1 -1
  405. package/web-shell/index.html +29 -5
  406. package/chunks/chunk-V7RNNPGC.js +0 -44
  407. package/chunks/list-JOGBAC2R.js +0 -122
  408. package/chunks/mcp-6YYNSYLK.js +0 -116
  409. package/chunks/workflow-HD5NYMW5.js +0 -2907
  410. package/chunks/workspace-providers-status-MAM42IZS.js +0 -120
  411. package/web-shell/assets/channel-COIuCrVH.js +0 -1
  412. package/web-shell/assets/classDiagram-DTDB5LWJ-DoX6OYqu.js +0 -1
  413. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DoX6OYqu.js +0 -1
  414. package/web-shell/assets/index-CI1ysIEv.js +0 -2154
  415. package/web-shell/assets/index-CpxXGH-8.css +0 -36
  416. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-IRul-LaT.js +0 -1
  417. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6lgKepA.js +0 -8
  418. package/chunks/{chunk-JA5CBKRP.js → chunk-7NXSVSFB.js} +0 -0
  419. package/chunks/{open-with-auth-6MVIHMXB.js → open-with-auth-XFCCJOO6.js} +3 -3
@@ -51,6 +51,7 @@ var KNOWN_RECORD_SUBTYPES = /* @__PURE__ */ new Set([
51
51
  "file_history_snapshot",
52
52
  "session_source",
53
53
  "session_model",
54
+ "session_sources_snapshot",
54
55
  "branch_checkpoint",
55
56
  "goal_state",
56
57
  "goal_runtime",
@@ -132,7 +133,7 @@ function diagnostic(code, message, affectsCompleteness, fields = {}, severity =
132
133
  }
133
134
  __name(diagnostic, "diagnostic");
134
135
  function isTranscriptConversationRecord(record) {
135
- return !isTranscriptArtifactRecord(record);
136
+ return !isTranscriptArtifactRecord(record) && !(record.type === "system" && record.subtype === "session_sources_snapshot");
136
137
  }
137
138
  __name(isTranscriptConversationRecord, "isTranscriptConversationRecord");
138
139
  function isTranscriptArtifactRecord(record) {
@@ -448,6 +449,23 @@ var MAX_PERSISTED_MIME_CHARS = 120;
448
449
  var MAX_PERSISTED_FIELD_CHARS = 200;
449
450
  var MAX_PERSISTED_TIMESTAMP_CHARS = 64;
450
451
  var SECRET_TOKEN_VALUE_PATTERN = /(?:^|\s)(?:bearer\s+\S{8,}|sk-[A-Za-z0-9_-]{12,}|(?:gh[pousr]|github_pat)_[A-Za-z0-9_/-]{12,}|[a-f0-9]{40,}|[A-Za-z0-9+/]{48,}={0,2})(?:$|\s)/i;
452
+ function getWebPreviewSnapshotId(artifact) {
453
+ const id = /^preview-([0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})$/.exec(
454
+ artifact.managedId ?? ""
455
+ )?.[1];
456
+ const sha256 = artifact.metadata?.[PUBLISHED_CONTENT_SHA256_METADATA_KEY];
457
+ if (!id || artifact.kind !== "html" || artifact.storage !== "published" || artifact.metadata?.["artifactType"] !== "web_preview_snapshot" || typeof sha256 !== "string" || !/^[0-9a-f]{64}$/.test(sha256) || artifact.source !== void 0 && (artifact.source !== "tool" || artifact.toolName?.toLowerCase() !== "artifact") || artifact.toolName !== void 0 && artifact.toolName.toLowerCase() !== "artifact")
458
+ return void 0;
459
+ try {
460
+ const url = new URL(artifact.url ?? "");
461
+ if (url.protocol === "file:" && !url.host && !url.search && !url.hash && url.pathname.endsWith(`/artifacts/snapshots/${id}/index.html`))
462
+ return id;
463
+ } catch {
464
+ return void 0;
465
+ }
466
+ return void 0;
467
+ }
468
+ __name(getWebPreviewSnapshotId, "getWebPreviewSnapshotId");
451
469
  function isSessionArtifactRecord(record) {
452
470
  return isTranscriptArtifactRecord(record);
453
471
  }
@@ -471,7 +489,7 @@ function selectActiveSideArtifactRecordUuids(records, activeRecordUuids) {
471
489
  if (activeUuids.has(record.uuid)) {
472
490
  nextActiveUuid = record.uuid;
473
491
  nextBlockingUuid = void 0;
474
- } else if (!isSessionArtifactRecord(record) && !(record.type === "system" && record.subtype === "custom_title")) {
492
+ } else if (!isSessionArtifactRecord(record) && !(record.type === "system" && (record.subtype === "custom_title" || record.subtype === "session_sources_snapshot"))) {
475
493
  nextBlockingUuid = record.uuid;
476
494
  }
477
495
  }
@@ -796,7 +814,7 @@ function isForkSafeArtifact(artifact) {
796
814
  if (artifact.metadata && hasRestoreUnsafeMetadata(artifact.metadata)) {
797
815
  return false;
798
816
  }
799
- if (artifact.url && hasRestoreUnsafeUrl(artifact.url)) {
817
+ if (artifact.url && hasRestoreUnsafeUrl(artifact.url) && !getWebPreviewSnapshotId(artifact)) {
800
818
  return false;
801
819
  }
802
820
  return true;
@@ -1232,6 +1250,297 @@ function getNonNegativeInteger(record, key) {
1232
1250
  }
1233
1251
  __name(getNonNegativeInteger, "getNonNegativeInteger");
1234
1252
 
1253
+ // packages/core/src/tools/artifact/html.ts
1254
+ init_esbuild_shims();
1255
+ var MAX_ARTIFACT_BYTES = 16 * 1024 * 1024;
1256
+ var CSS_RESET = `*,*::before,*::after{box-sizing:border-box}
1257
+ html{-webkit-text-size-adjust:100%}
1258
+ body{margin:0;padding:1.5rem;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color:#1a1a1a;background:#fff}
1259
+ img,svg,video,canvas{max-width:100%;height:auto}
1260
+ pre,table{max-width:100%;overflow-x:auto}
1261
+ :where(a){color:#0969da}`;
1262
+ var DEFAULT_TITLE = "Artifact";
1263
+ function sanitizeArtifactTitle(raw) {
1264
+ const cleaned = (raw ?? "").replace(/\s+/g, " ").trim().slice(0, 120);
1265
+ return cleaned || DEFAULT_TITLE;
1266
+ }
1267
+ __name(sanitizeArtifactTitle, "sanitizeArtifactTitle");
1268
+ function escapeForTitle(s) {
1269
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
1270
+ }
1271
+ __name(escapeForTitle, "escapeForTitle");
1272
+ function validateSelfContained(fragment) {
1273
+ if (!fragment.trim()) {
1274
+ return "Artifact file is empty \u2014 write the page content (a body-only HTML fragment) first.";
1275
+ }
1276
+ const scan = normalizeAttributeQuotes(fragment);
1277
+ const head = fragment.replace(/^\s+/, "").replace(/^(?:<!--[\s\S]*?-->\s*)+/, "");
1278
+ const wrapperTag = /^(?:<!doctype\b|<html[\s>]|<head[\s>]|<body[\s>])/i.exec(
1279
+ head
1280
+ );
1281
+ if (wrapperTag) {
1282
+ return `Write a body-only fragment \u2014 it starts with a full-document tag (${wrapperTag[0].trim()}). Omit <!doctype>, <html>, <head>, and <body>; they are added at publish time.`;
1283
+ }
1284
+ const extResource = /\b(?:src|srcset|poster)\s*=\s*["']?\s*(?:https?:)?\/\//i.exec(scan) ?? /<link\b[^>]*\bhref\s*=\s*["']?\s*(?:https?:)?\/\//i.exec(scan);
1285
+ if (extResource) {
1286
+ return `Artifact must be self-contained \u2014 found an external reference (${truncate(extResource[0])}). Inline scripts/styles and embed assets as data: URIs.`;
1287
+ }
1288
+ const jsUri = /\b(?:href|src)\s*=\s*["']?\s*javascript\s*:/i.exec(scan);
1289
+ if (jsUri) {
1290
+ return `Artifact must be self-contained \u2014 found a javascript: URI (${truncate(jsUri[0])}). Use inline <script> blocks instead.`;
1291
+ }
1292
+ const extScript = /\b(?:fetch|WebSocket|XMLHttpRequest)\s*\(\s*["']\s*(?:https?|wss?):\/\//i.exec(
1293
+ scan
1294
+ ) ?? /\bimport\s*\(\s*["'](?:https?:)?\/\//i.exec(scan) ?? /\bwindow\.open\s*\(/i.exec(scan) ?? /\blocation\.\w+\s*[=(]/i.exec(scan) ?? /\bnavigator\.sendBeacon\s*\(\s*["']\s*(?:https?:)?\/\//i.exec(scan);
1295
+ if (extScript) {
1296
+ return `Artifact must be self-contained \u2014 found browser network egress (${truncate(extScript[0])}). Embed data in the artifact instead of fetching it at runtime.`;
1297
+ }
1298
+ const metaRefresh = /<meta\b[^>]*http-equiv\s*=\s*["']?refresh["']?[^>]*\burl\s*=\s*(?:https?:)?\/\//i.exec(
1299
+ scan
1300
+ );
1301
+ if (metaRefresh) {
1302
+ return `Artifact must be self-contained \u2014 found a meta refresh redirect (${truncate(metaRefresh[0])}).`;
1303
+ }
1304
+ const extCss = /(?:@import\s+(?:url\()?|url\()\s*["']?\s*(?:https?:)?\/\//i.exec(scan);
1305
+ if (extCss) {
1306
+ return `Artifact must be self-contained \u2014 found an external CSS reference (${truncate(extCss[0])}). Inline CSS and embed fonts/images as data: URIs.`;
1307
+ }
1308
+ return null;
1309
+ }
1310
+ __name(validateSelfContained, "validateSelfContained");
1311
+ function normalizeAttributeQuotes(s) {
1312
+ return s.replace(/&quot;|&#34;|&#x22;/gi, '"').replace(/&apos;|&#39;|&#x27;/gi, "'");
1313
+ }
1314
+ __name(normalizeAttributeQuotes, "normalizeAttributeQuotes");
1315
+ function truncate(s, max = 60) {
1316
+ const t = s.replace(/\s+/g, " ").trim();
1317
+ return t.length > max ? `${t.slice(0, max)}\u2026` : t;
1318
+ }
1319
+ __name(truncate, "truncate");
1320
+ function wrapArtifactHtml(bodyFragment, title) {
1321
+ const safeTitle = escapeForTitle(sanitizeArtifactTitle(title));
1322
+ return `<!doctype html>
1323
+ <html lang="en">
1324
+ <head>
1325
+ <meta charset="utf-8">
1326
+ <meta name="viewport" content="width=device-width, initial-scale=1">
1327
+ <meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data:; font-src data:; media-src data:; connect-src 'none'; form-action 'none'; base-uri 'none'; frame-ancestors 'none'; sandbox allow-scripts;">
1328
+ <title>${safeTitle}</title>
1329
+ <style>${CSS_RESET}</style>
1330
+ </head>
1331
+ <body>
1332
+ ${bodyFragment}
1333
+ </body>
1334
+ </html>
1335
+ `;
1336
+ }
1337
+ __name(wrapArtifactHtml, "wrapArtifactHtml");
1338
+ function byteLength(s) {
1339
+ return Buffer.byteLength(s, "utf8");
1340
+ }
1341
+ __name(byteLength, "byteLength");
1342
+
1343
+ // packages/core/src/tools/artifact/artifact-snapshots.ts
1344
+ init_esbuild_shims();
1345
+ import { createHash as createHash2, randomUUID } from "node:crypto";
1346
+ import { constants, promises as fs } from "node:fs";
1347
+ import path from "node:path";
1348
+ import { pathToFileURL } from "node:url";
1349
+ var SNAPSHOT_REFERENCES_METADATA_KEY = "qwen.snapshot.references";
1350
+ async function saveArtifactSnapshot(html, title, publishedUrl, sessionId, runtimeBaseDir) {
1351
+ const id = randomUUID();
1352
+ const root = path.join(runtimeBaseDir, "artifacts", "snapshots");
1353
+ await fs.mkdir(root, { recursive: true });
1354
+ const dir = path.join(root, id);
1355
+ await fs.mkdir(dir);
1356
+ const file = path.join(dir, "index.html");
1357
+ try {
1358
+ const references = path.join(dir, "references");
1359
+ await fs.mkdir(references);
1360
+ await fs.writeFile(
1361
+ path.join(references, snapshotReference(sessionId)),
1362
+ "",
1363
+ {
1364
+ flag: "wx",
1365
+ mode: 384,
1366
+ flush: true
1367
+ }
1368
+ );
1369
+ await fs.writeFile(file, html, {
1370
+ encoding: "utf8",
1371
+ flag: "wx",
1372
+ mode: 384,
1373
+ flush: true
1374
+ });
1375
+ await syncSnapshotDirectory(references);
1376
+ await syncSnapshotDirectory(dir);
1377
+ await syncSnapshotDirectory(root);
1378
+ } catch (error) {
1379
+ await fs.rm(dir, { recursive: true, force: true }).catch(() => void 0);
1380
+ throw error;
1381
+ }
1382
+ return {
1383
+ kind: "html",
1384
+ storage: "published",
1385
+ title,
1386
+ url: pathToFileURL(file).href,
1387
+ managedId: `preview-${id}`,
1388
+ mimeType: "text/html",
1389
+ sizeBytes: Buffer.byteLength(html, "utf8"),
1390
+ metadata: {
1391
+ artifactType: "web_preview_snapshot",
1392
+ [SNAPSHOT_REFERENCES_METADATA_KEY]: 1,
1393
+ publishedUrl,
1394
+ [PUBLISHED_CONTENT_SHA256_METADATA_KEY]: createHash2("sha256").update(html).digest("hex")
1395
+ }
1396
+ };
1397
+ }
1398
+ __name(saveArtifactSnapshot, "saveArtifactSnapshot");
1399
+ async function readArtifactSnapshot(artifact, runtimeBaseDir) {
1400
+ const id = getWebPreviewSnapshotId(artifact);
1401
+ const sha256 = artifact.metadata?.[PUBLISHED_CONTENT_SHA256_METADATA_KEY];
1402
+ const unavailable = /* @__PURE__ */ __name(() => new Error("Saved webpage version is unavailable."), "unavailable");
1403
+ if (!id) throw unavailable();
1404
+ const root = path.join(runtimeBaseDir, "artifacts", "snapshots");
1405
+ const file = path.join(root, id, "index.html");
1406
+ if (artifact.url !== pathToFileURL(file).href) throw unavailable();
1407
+ const realRoot = await fs.realpath(root);
1408
+ if (await fs.realpath(file) !== path.join(realRoot, id, "index.html")) {
1409
+ throw unavailable();
1410
+ }
1411
+ const handle = await fs.open(
1412
+ file,
1413
+ // O_NOFOLLOW refuses a symlink swapped in after the realpath check, and
1414
+ // O_NONBLOCK keeps a FIFO swapped into the same window from blocking the
1415
+ // open: the path is only proven to be a regular file by the fstat below.
1416
+ constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK
1417
+ );
1418
+ try {
1419
+ const stat = await handle.stat();
1420
+ if (!stat.isFile() || stat.size > MAX_ARTIFACT_BYTES) throw unavailable();
1421
+ const bytes = Buffer.alloc(stat.size + 1);
1422
+ let length = 0;
1423
+ while (length < bytes.length) {
1424
+ const { bytesRead } = await handle.read(
1425
+ bytes,
1426
+ length,
1427
+ bytes.length - length
1428
+ );
1429
+ if (bytesRead === 0) break;
1430
+ length += bytesRead;
1431
+ }
1432
+ const content = bytes.subarray(0, length);
1433
+ if (length !== stat.size || createHash2("sha256").update(content).digest("hex") !== sha256) {
1434
+ throw unavailable();
1435
+ }
1436
+ return content.toString("utf8");
1437
+ } finally {
1438
+ await handle.close();
1439
+ }
1440
+ }
1441
+ __name(readArtifactSnapshot, "readArtifactSnapshot");
1442
+ function snapshotReference(sessionId, operationId) {
1443
+ const owner = createHash2("sha256").update(sessionId).digest("hex");
1444
+ return operationId ? `${owner}-${createHash2("sha256").update(operationId).digest("hex")}` : owner;
1445
+ }
1446
+ __name(snapshotReference, "snapshotReference");
1447
+ async function syncSnapshotDirectory(directory) {
1448
+ try {
1449
+ const handle = await fs.open(directory, "r");
1450
+ try {
1451
+ await handle.sync();
1452
+ } finally {
1453
+ await handle.close();
1454
+ }
1455
+ } catch (error) {
1456
+ if (process.platform !== "win32") throw error;
1457
+ }
1458
+ }
1459
+ __name(syncSnapshotDirectory, "syncSnapshotDirectory");
1460
+ async function snapshotDirectory(artifact, runtimeBaseDir) {
1461
+ const id = getWebPreviewSnapshotId(artifact);
1462
+ if (!id) return void 0;
1463
+ const root = path.join(runtimeBaseDir, "artifacts", "snapshots");
1464
+ const dir = path.join(root, id);
1465
+ if (artifact.url !== pathToFileURL(path.join(dir, "index.html")).href) {
1466
+ return void 0;
1467
+ }
1468
+ if (artifact.metadata?.[SNAPSHOT_REFERENCES_METADATA_KEY] !== 1)
1469
+ return void 0;
1470
+ const realRoot = await fs.realpath(root);
1471
+ if (await fs.realpath(dir) !== path.join(realRoot, id)) return void 0;
1472
+ if (await fs.realpath(path.join(dir, "index.html")) !== path.join(realRoot, id, "index.html"))
1473
+ return void 0;
1474
+ if (await fs.realpath(path.join(dir, "references")) !== path.join(realRoot, id, "references")) {
1475
+ return void 0;
1476
+ }
1477
+ return dir;
1478
+ }
1479
+ __name(snapshotDirectory, "snapshotDirectory");
1480
+ async function retainArtifactSnapshot(artifact, runtimeBaseDir, sessionId, operationId) {
1481
+ try {
1482
+ const dir = await snapshotDirectory(artifact, runtimeBaseDir);
1483
+ if (!dir) return;
1484
+ const references = path.join(dir, "references");
1485
+ const owner = snapshotReference(sessionId);
1486
+ if (!operationId && (await fs.readdir(references)).some(
1487
+ (entry) => entry === owner || entry.startsWith(`${owner}-`)
1488
+ ))
1489
+ return;
1490
+ await fs.writeFile(
1491
+ path.join(references, snapshotReference(sessionId, operationId)),
1492
+ "",
1493
+ { flag: "wx", mode: 384, flush: true }
1494
+ );
1495
+ await syncSnapshotDirectory(references);
1496
+ } catch (error) {
1497
+ const code = error.code;
1498
+ if (code !== "EEXIST" && !(code === "ENOENT" && !operationId)) throw error;
1499
+ }
1500
+ }
1501
+ __name(retainArtifactSnapshot, "retainArtifactSnapshot");
1502
+ async function deleteArtifactSnapshot(artifact, runtimeBaseDir, sessionId, operationId, assertCleanupOwned) {
1503
+ try {
1504
+ const dir = await snapshotDirectory(artifact, runtimeBaseDir);
1505
+ if (!dir) return;
1506
+ await releaseSnapshotDirectory(
1507
+ dir,
1508
+ sessionId,
1509
+ operationId,
1510
+ assertCleanupOwned
1511
+ );
1512
+ } catch {
1513
+ assertCleanupOwned?.();
1514
+ }
1515
+ }
1516
+ __name(deleteArtifactSnapshot, "deleteArtifactSnapshot");
1517
+ async function releaseSnapshotDirectory(dir, sessionId, operationId, assertCleanupOwned) {
1518
+ const references = path.join(dir, "references");
1519
+ const owner = snapshotReference(sessionId, operationId);
1520
+ let released = false;
1521
+ for (const reference of await fs.readdir(references)) {
1522
+ if (reference === owner || !operationId && reference.startsWith(`${owner}-`)) {
1523
+ assertCleanupOwned?.();
1524
+ await fs.unlink(path.join(references, reference));
1525
+ released = true;
1526
+ }
1527
+ }
1528
+ if (!released) return;
1529
+ try {
1530
+ assertCleanupOwned?.();
1531
+ await fs.rmdir(references);
1532
+ } catch (error) {
1533
+ if (error.code === "ENOTEMPTY") return;
1534
+ throw error;
1535
+ }
1536
+ const file = path.join(dir, "index.html");
1537
+ assertCleanupOwned?.();
1538
+ await fs.unlink(file);
1539
+ assertCleanupOwned?.();
1540
+ await fs.rmdir(dir);
1541
+ }
1542
+ __name(releaseSnapshotDirectory, "releaseSnapshotDirectory");
1543
+
1235
1544
  export {
1236
1545
  TranscriptRecordPreparationError,
1237
1546
  stripGeneratedAttachmentTokens,
@@ -1249,6 +1558,7 @@ export {
1249
1558
  WORKSPACE_CONTENT_MTIME_MS_METADATA_KEY,
1250
1559
  WORKSPACE_CONTENT_SIZE_BYTES_METADATA_KEY,
1251
1560
  PUBLISHED_CONTENT_SHA256_METADATA_KEY,
1561
+ getWebPreviewSnapshotId,
1252
1562
  isSessionArtifactRecord,
1253
1563
  selectActiveSideArtifactRecordUuids,
1254
1564
  stableSessionArtifactId,
@@ -1260,7 +1570,16 @@ export {
1260
1570
  isPrototypeMetadataKey,
1261
1571
  isReservedWorkspaceMetadataKey,
1262
1572
  isAdoptableContentFingerprintKey,
1263
- metadataBudgetBytes
1573
+ metadataBudgetBytes,
1574
+ MAX_ARTIFACT_BYTES,
1575
+ sanitizeArtifactTitle,
1576
+ validateSelfContained,
1577
+ wrapArtifactHtml,
1578
+ byteLength,
1579
+ saveArtifactSnapshot,
1580
+ readArtifactSnapshot,
1581
+ retainArtifactSnapshot,
1582
+ deleteArtifactSnapshot
1264
1583
  };
1265
1584
  /**
1266
1585
  * @license
@@ -1272,3 +1591,8 @@ export {
1272
1591
  * Copyright 2026 Qwen Team
1273
1592
  * SPDX-License-Identifier: Apache-2.0
1274
1593
  */
1594
+ /**
1595
+ * @license
1596
+ * Copyright 2025 Google LLC
1597
+ * SPDX-License-Identifier: Apache-2.0
1598
+ */
@@ -4,9 +4,6 @@ import {
4
4
  isDocumentNavigation,
5
5
  require_express
6
6
  } from "./chunk-SVWWF5TZ.js";
7
- import {
8
- isLoopbackAddress
9
- } from "./chunk-DMEUXLSS.js";
10
7
  import {
11
8
  writeStderrLine
12
9
  } from "./chunk-7FA2II6K.js";
@@ -39,6 +36,7 @@ var WEB_SHELL_CSP_DIRECTIVES = [
39
36
  "style-src 'self' 'unsafe-inline'",
40
37
  "font-src 'self' data:",
41
38
  "img-src 'self' data: blob:",
39
+ "media-src 'self' data:",
42
40
  "connect-src 'self'",
43
41
  "worker-src 'self' blob:",
44
42
  // base-uri does NOT fall back to default-src; lock it so an injected <base>
@@ -46,36 +44,6 @@ var WEB_SHELL_CSP_DIRECTIVES = [
46
44
  // attacker origin.
47
45
  "base-uri 'none'"
48
46
  ];
49
- function loopbackSandboxOrigins(hostHeader) {
50
- const port = portFromHostHeader(hostHeader);
51
- const suffix = port ? `:${port}` : "";
52
- const hosts = ["localhost", "127.0.0.1"];
53
- try {
54
- const requestHostname = new URL(`http://${hostHeader}`).hostname;
55
- if (isLoopbackAddress(requestHostname) && !requestHostname.includes(":") && !hosts.includes(requestHostname)) {
56
- hosts.push(requestHostname);
57
- }
58
- } catch {
59
- }
60
- return ["http", "https"].flatMap(
61
- (scheme) => hosts.map((host) => `${scheme}://${host}${suffix}`)
62
- );
63
- }
64
- __name(loopbackSandboxOrigins, "loopbackSandboxOrigins");
65
- function portFromHostHeader(hostHeader) {
66
- if (!hostHeader) return void 0;
67
- if (hostHeader.startsWith("[")) {
68
- const end = hostHeader.indexOf("]");
69
- if (end === -1) return void 0;
70
- const rest = hostHeader.slice(end + 1);
71
- return rest.startsWith(":") && /^\d+$/u.test(rest.slice(1)) ? rest.slice(1) : void 0;
72
- }
73
- const colon = hostHeader.lastIndexOf(":");
74
- if (colon === -1) return void 0;
75
- const port = hostHeader.slice(colon + 1);
76
- return /^\d+$/u.test(port) ? port : void 0;
77
- }
78
- __name(portFromHostHeader, "portFromHostHeader");
79
47
  function buildWebShellPermissionsPolicy() {
80
48
  return [
81
49
  "camera=()",
@@ -86,18 +54,17 @@ function buildWebShellPermissionsPolicy() {
86
54
  ].join(", ");
87
55
  }
88
56
  __name(buildWebShellPermissionsPolicy, "buildWebShellPermissionsPolicy");
89
- function buildWebShellCsp(frameAncestors = [], frameSrcOrigins = loopbackSandboxOrigins(void 0)) {
57
+ function buildWebShellCsp(frameAncestors = []) {
90
58
  const fa = frameAncestors.length ? `frame-ancestors ${frameAncestors.join(" ")}` : "frame-ancestors 'none'";
91
- const frameSrc = `frame-src ${frameSrcOrigins.join(" ")}`;
59
+ const frameSrc = "frame-src http: https: blob:";
92
60
  return [...WEB_SHELL_CSP_DIRECTIVES, frameSrc, fa].join("; ");
93
61
  }
94
62
  __name(buildWebShellCsp, "buildWebShellCsp");
95
63
  var WEB_SHELL_CSP = buildWebShellCsp();
96
64
  function createSendIndex(webShellDir, frameAncestors = []) {
97
65
  const indexPath = path.join(webShellDir, "index.html");
98
- return (req, res) => {
99
- const sandboxOrigins = loopbackSandboxOrigins(req.get("host"));
100
- const csp = buildWebShellCsp(frameAncestors, sandboxOrigins);
66
+ return (_req, res) => {
67
+ const csp = buildWebShellCsp(frameAncestors);
101
68
  res.status(200).set("Content-Security-Policy", csp).set("X-Content-Type-Options", "nosniff").set("Referrer-Policy", "no-referrer").set(
102
69
  // `microphone=(self)` lets the same-origin Web Shell document request
103
70
  // the mic for voice dictation (the prompt won't even appear under an
@@ -171,8 +138,6 @@ __name(mountWebShellSpaFallback, "mountWebShellSpaFallback");
171
138
 
172
139
  export {
173
140
  isServeDebugMode,
174
- loopbackSandboxOrigins,
175
- portFromHostHeader,
176
141
  buildWebShellPermissionsPolicy,
177
142
  buildWebShellCsp,
178
143
  WEB_SHELL_CSP,
@@ -5,15 +5,15 @@ import {
5
5
  } from "./chunk-47ECGEJC.js";
6
6
  import {
7
7
  t
8
- } from "./chunk-CRZBDVP2.js";
8
+ } from "./chunk-432JQKIO.js";
9
9
  import {
10
10
  findProviderByCredentials,
11
11
  resolveMetadataKey
12
- } from "./chunk-2WC3Y7YY.js";
12
+ } from "./chunk-AEY27Z35.js";
13
13
  import {
14
14
  fetchGitDiff,
15
15
  isCompressionFailureStatus
16
- } from "./chunk-HJ5UJQQL.js";
16
+ } from "./chunk-2UKKQGRA.js";
17
17
  import {
18
18
  init_esbuild_shims
19
19
  } from "./chunk-5O2XNYP6.js";
@@ -64,7 +64,7 @@ async function runExitCleanup(options = {}) {
64
64
  }
65
65
  __name(runExitCleanup, "runExitCleanup");
66
66
  async function cleanupCheckpoints() {
67
- const { Storage } = await import("./deferred-core-runtime-Q7WFWYD3.js");
67
+ const { Storage } = await import("./deferred-core-runtime-CY43FZNZ.js");
68
68
  const storage = new Storage(process.cwd());
69
69
  const tempDir = storage.getProjectTempDir();
70
70
  const checkpointsDir = join(tempDir, "checkpoints");
@@ -5,7 +5,7 @@ import {
5
5
  isTranscribableVoiceModel,
6
6
  readVoiceLanguage,
7
7
  resolveVoiceTransport
8
- } from "./chunk-NB3NDQQK.js";
8
+ } from "./chunk-J6SBP5G2.js";
9
9
  import {
10
10
  resolvePath
11
11
  } from "./chunk-Y53DG2HA.js";