@qwen-code/qwen-code 0.22.3-nightly.20260831.3a0c4c6108 → 0.23.0

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 (381) hide show
  1. package/README.md +30 -0
  2. package/bundled/computer-use/SKILL.md +116 -180
  3. package/bundled/goal-draft/SKILL.md +5 -1
  4. package/bundled/qc-helper/docs/configuration/model-providers.md +4 -0
  5. package/bundled/qc-helper/docs/configuration/settings.md +53 -50
  6. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  7. package/bundled/qc-helper/docs/features/channels/dingtalk.md +4 -2
  8. package/bundled/qc-helper/docs/features/channels/dws.md +6 -2
  9. package/bundled/qc-helper/docs/features/channels/overview.md +1 -0
  10. package/bundled/qc-helper/docs/features/commands.md +38 -1
  11. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  12. package/bundled/qc-helper/docs/features/goals.md +9 -3
  13. package/bundled/qc-helper/docs/features/headless.md +16 -1
  14. package/bundled/qc-helper/docs/features/hooks.md +2 -1
  15. package/bundled/qc-helper/docs/features/output-styles.md +38 -0
  16. package/bundled/qc-helper/docs/qwen-serve.md +15 -0
  17. package/bundled/review/SKILL.md +5 -5
  18. package/bundled/review/references/posting.md +2 -2
  19. package/chunks/{MaxSizedBox-IHRTWGSY.js → MaxSizedBox-B3D7545A.js} +41 -45
  20. package/chunks/{StandaloneSessionPicker-TLVWVTJ7.js → StandaloneSessionPicker-QUMO4LLQ.js} +64 -67
  21. package/chunks/{acpAgent-7I5LLPP3.js → acpAgent-2GTFCIEP.js} +771 -248
  22. package/chunks/{agent-4Z4NTJXD.js → agent-XKF5SZWU.js} +26 -30
  23. package/chunks/{agent-headless-TVUJXQWU.js → agent-headless-OC2IB55D.js} +26 -30
  24. package/chunks/{anthropicContentGenerator-VSSPG7XV.js → anthropicContentGenerator-L76MR5OR.js} +14 -14
  25. package/chunks/{artifact-tool-TEYW6I4A.js → artifact-tool-MYCL2QCS.js} +2 -3
  26. package/chunks/{askUserQuestion-PYNBWV63.js → askUserQuestion-THQZMG44.js} +2 -2
  27. package/chunks/{bridge-EVURP4NO.js → bridge-IHSBI2YJ.js} +42 -46
  28. package/chunks/{build-INBK7IXX.js → build-63BIOYWK.js} +1 -1
  29. package/chunks/{channel-management-service-IDBNYSFW.js → channel-management-service-4MTCEGJB.js} +4 -4
  30. package/chunks/{channel-settings-store-MZNXRKVI.js → channel-settings-store-BVKWAI2T.js} +50 -54
  31. package/chunks/{channel-worker-group-ZLP5SJHT.js → channel-worker-group-47F4ISUZ.js} +6 -6
  32. package/chunks/{channel-worker-manager-FG5377T2.js → channel-worker-manager-I5Y44GYR.js} +50 -9
  33. package/chunks/{channel-worker-supervisor-HDVE4ADS.js → channel-worker-supervisor-6VCLUXFE.js} +4 -4
  34. package/chunks/{chunk-3452WXOK.js → chunk-2M3EWQNG.js} +17 -0
  35. package/chunks/{chunk-HDMKCJHI.js → chunk-32LU3APX.js} +1 -1
  36. package/chunks/{chunk-BSJOBW4U.js → chunk-37JFWFCD.js} +1 -1
  37. package/chunks/{chunk-AN3KFCNH.js → chunk-3JQZVCBI.js} +2 -2
  38. package/chunks/{chunk-RGEV5AUD.js → chunk-3L724BJ5.js} +11 -8
  39. package/chunks/{chunk-GCUR24KK.js → chunk-47RYEQW5.js} +2 -2
  40. package/chunks/{chunk-CM4F4JBB.js → chunk-4BGDFKQE.js} +5 -5
  41. package/chunks/{chunk-ZBDYI7VM.js → chunk-4F7GQGXB.js} +10961 -4033
  42. package/chunks/{chunk-JMRE4WJQ.js → chunk-4HVH57J3.js} +81 -17
  43. package/chunks/{chunk-26SIKQIC.js → chunk-4LIFGNI4.js} +1 -1
  44. package/chunks/{chunk-U5RTYI7D.js → chunk-4M24B5J5.js} +13 -13
  45. package/chunks/{chunk-7XICSE62.js → chunk-4PSDSCW3.js} +3 -3
  46. package/chunks/{chunk-AYYKUUKP.js → chunk-4UANMABT.js} +73 -19
  47. package/chunks/{chunk-GS7XT345.js → chunk-54C6PIGT.js} +3 -3
  48. package/chunks/{chunk-UKB2TZAO.js → chunk-5EIOJGCR.js} +4 -4
  49. package/chunks/{chunk-64REQJJ2.js → chunk-5H5S4UY5.js} +3 -3
  50. package/chunks/chunk-5IENVM7Z.js +35 -0
  51. package/chunks/{chunk-JOWQD4LO.js → chunk-5Q5RC2WE.js} +1 -1
  52. package/chunks/{chunk-3NQCZMUB.js → chunk-5RTTI4GE.js} +73 -73
  53. package/chunks/{chunk-J4Y3QJHF.js → chunk-64QH2UC6.js} +11 -1
  54. package/chunks/{chunk-I75VKFCJ.js → chunk-65HWLGA7.js} +1 -1
  55. package/chunks/{chunk-W7KWB6AH.js → chunk-6A2D4QSO.js} +8 -5
  56. package/chunks/{chunk-OTTNXUT5.js → chunk-7IKXTGZT.js} +1 -1
  57. package/chunks/{chunk-LYSZVCCD.js → chunk-7JMGTOH7.js} +427 -129
  58. package/chunks/{chunk-YOFULAHO.js → chunk-7RB56BRJ.js} +3 -3
  59. package/chunks/{chunk-6VHIWUJP.js → chunk-ADYN7P2Y.js} +2 -2
  60. package/chunks/{chunk-7DDTI7Q3.js → chunk-AHYTURFB.js} +1 -1
  61. package/chunks/{chunk-TNMOFNT4.js → chunk-ALUYNJPM.js} +1395 -2079
  62. package/chunks/{chunk-H2A2GJGL.js → chunk-AZJLY2XZ.js} +5 -5
  63. package/chunks/{chunk-BE5FGT5Z.js → chunk-BA4WJC4L.js} +1 -1
  64. package/chunks/{chunk-H5GPPDGY.js → chunk-BFY33IB4.js} +16 -8
  65. package/chunks/{chunk-RY7DL5IF.js → chunk-BJXCYUGM.js} +1 -1
  66. package/chunks/{chunk-ND7TQQPE.js → chunk-C2VWOXHS.js} +6 -6
  67. package/chunks/{chunk-T4RMUTTT.js → chunk-C4TIXFDZ.js} +2 -2
  68. package/chunks/{chunk-B2RIIK3K.js → chunk-CVX63TFJ.js} +3 -1
  69. package/chunks/{chunk-SMJYTKTB.js → chunk-DQCKVAF5.js} +1 -1
  70. package/chunks/{chunk-RLSPPTWH.js → chunk-DSX7KQPM.js} +438 -181
  71. package/chunks/{chunk-PNIGAVY6.js → chunk-DTVQSSNM.js} +2 -2
  72. package/chunks/{chunk-67AY5D3M.js → chunk-DYTW3QVG.js} +23 -8
  73. package/chunks/{chunk-3CZGSTZX.js → chunk-EBDGRBZX.js} +22 -14
  74. package/chunks/{chunk-DJBQCO2E.js → chunk-EFTPIZIC.js} +412 -3
  75. package/chunks/{chunk-QE7DTCLX.js → chunk-EIY7SUPZ.js} +1 -1
  76. package/chunks/{chunk-6OO7QEWV.js → chunk-EVFDRBUM.js} +97 -77
  77. package/chunks/{chunk-QTMPM6RC.js → chunk-EWRW2WQC.js} +3 -3
  78. package/chunks/{chunk-IIFL7QDN.js → chunk-F33GFWPR.js} +34 -11
  79. package/chunks/{chunk-YPISTYEI.js → chunk-F47DITLZ.js} +11 -1
  80. package/chunks/{chunk-OE5AQVNB.js → chunk-F7NF2IOE.js} +6 -6
  81. package/chunks/{chunk-RT4QNQ5P.js → chunk-FD5SJOWT.js} +8 -5
  82. package/chunks/{chunk-ACZ4YRYK.js → chunk-FRICLXCZ.js} +3 -3
  83. package/chunks/{chunk-IBMUI5EV.js → chunk-FUO5V5KI.js} +11 -4
  84. package/chunks/{chunk-T3TL6S3B.js → chunk-G5PBOQWI.js} +8 -5
  85. package/chunks/{chunk-D7D3HSYQ.js → chunk-G7HBEEX7.js} +12 -7
  86. package/chunks/{chunk-FXUSWLBF.js → chunk-GH2S4GD5.js} +133 -8
  87. package/chunks/{chunk-XPDKSOVW.js → chunk-GXUTFQXK.js} +42 -44
  88. package/chunks/{chunk-OSTQZIOY.js → chunk-H43PSPYS.js} +2 -2
  89. package/chunks/{chunk-UVYKCRJZ.js → chunk-HJBHMANB.js} +11 -13
  90. package/chunks/{chunk-WLEYH7CD.js → chunk-HRPFBHW7.js} +4 -0
  91. package/chunks/{chunk-DBTMP3P4.js → chunk-I2TMJPCV.js} +1 -1
  92. package/chunks/{chunk-EU2B4P3D.js → chunk-I4NRYS6A.js} +4 -4
  93. package/chunks/{chunk-JPKTAQS3.js → chunk-I5N4EAS6.js} +1 -1
  94. package/chunks/{chunk-W4BDHLRT.js → chunk-IG4W5SJR.js} +2 -2
  95. package/chunks/{chunk-BXNKREX7.js → chunk-IPATA3T2.js} +2 -2
  96. package/chunks/{chunk-NKLP3DCK.js → chunk-IQAFKVXS.js} +1 -1
  97. package/chunks/{chunk-AYHQZBJ4.js → chunk-IRKQ4YYX.js} +3 -3
  98. package/chunks/{chunk-J3NNHTV6.js → chunk-J5TTWBZK.js} +6 -0
  99. package/chunks/{chunk-AVNATYLY.js → chunk-JJKNYRFY.js} +1 -1
  100. package/chunks/{chunk-ERHAMGAA.js → chunk-JR42V4UY.js} +1 -1
  101. package/chunks/{chunk-NT7LXVV5.js → chunk-JUARRUMA.js} +362 -1084
  102. package/chunks/{chunk-OKMDOATP.js → chunk-KEVYJSI4.js} +11 -11
  103. package/chunks/{chunk-AF3QB6OL.js → chunk-KGV55H53.js} +1 -1
  104. package/chunks/{chunk-SDCHI64N.js → chunk-KM3XVTMO.js} +10 -4
  105. package/chunks/{chunk-ERRJA23L.js → chunk-KMU3ZHH4.js} +1 -1
  106. package/chunks/chunk-KOGW3YWJ.js +2054 -0
  107. package/chunks/{chunk-6NWPR2EB.js → chunk-L26ONV2Y.js} +5 -5
  108. package/chunks/chunk-L34XSHIZ.js +28 -0
  109. package/chunks/{chunk-UXEW7TQS.js → chunk-LB3WQQJK.js} +1 -1
  110. package/chunks/{chunk-YNG7XAJU.js → chunk-LEPCWS5A.js} +1 -1
  111. package/chunks/{chunk-XLENZQXH.js → chunk-LHBNR6EU.js} +2 -2
  112. package/chunks/{chunk-AKNQMSL2.js → chunk-LOBDDFYK.js} +4 -28
  113. package/chunks/{chunk-L6CUJZDG.js → chunk-LU77UT4D.js} +2 -2
  114. package/chunks/{chunk-3EGEBDTW.js → chunk-M4KFODIP.js} +1 -1
  115. package/chunks/{chunk-JLSZT354.js → chunk-M4LBBSVP.js} +2 -0
  116. package/chunks/{chunk-YOMKOM7E.js → chunk-MP6YZ4RK.js} +6580 -5992
  117. package/chunks/chunk-N2TNM3QB.js +9 -0
  118. package/chunks/{chunk-GDXSXL3H.js → chunk-NFIDVZND.js} +1 -1
  119. package/chunks/{chunk-NT5XIL5H.js → chunk-NQ4L2CMD.js} +51 -6
  120. package/chunks/{chunk-OQYXJK2V.js → chunk-NRL5CUZT.js} +1 -1
  121. package/chunks/{chunk-FIWZOMBF.js → chunk-NSUKQ4DN.js} +6 -0
  122. package/chunks/chunk-NUHOLAQ6.js +59 -0
  123. package/chunks/{chunk-BBYTY46C.js → chunk-NVVJTUSL.js} +266 -105
  124. package/chunks/{chunk-CAZADEU7.js → chunk-NXKOVOM5.js} +9 -9
  125. package/chunks/{chunk-5Q372OFJ.js → chunk-O4KNCAX4.js} +57 -10
  126. package/chunks/{chunk-GOXKNSDZ.js → chunk-O5CD7T4T.js} +40 -9
  127. package/chunks/{chunk-XIQ5HQ2F.js → chunk-OBTWL6ZW.js} +1 -1
  128. package/chunks/{chunk-5MK45KZ3.js → chunk-OHOO527W.js} +1 -1
  129. package/chunks/{chunk-CETB5XY4.js → chunk-ORFIYTI2.js} +1 -1
  130. package/chunks/{chunk-7E7UCJHS.js → chunk-OSHQMOBS.js} +18 -17
  131. package/chunks/{chunk-YDQ4OCDK.js → chunk-OSSTATJF.js} +89 -1
  132. package/chunks/chunk-P6UIF2OW.js +400 -0
  133. package/chunks/{chunk-V4HN35IF.js → chunk-PCRBLMIN.js} +16 -2
  134. package/chunks/{chunk-L2OKAIUK.js → chunk-QI27MKNQ.js} +23 -15
  135. package/chunks/{chunk-FHPYRXRH.js → chunk-QJGYU5PG.js} +1 -1
  136. package/chunks/{chunk-IVUWTA2D.js → chunk-QJVZLILI.js} +1 -1
  137. package/chunks/{chunk-TBJ3SNS3.js → chunk-QKDNS6FU.js} +1 -1
  138. package/chunks/{chunk-YKADANK6.js → chunk-QQD2GART.js} +10 -3
  139. package/chunks/{chunk-ED7DD7MV.js → chunk-RAFQIHN2.js} +1 -1
  140. package/chunks/{chunk-TV7BJ7TX.js → chunk-RJUVTJEZ.js} +1 -1
  141. package/chunks/{chunk-RVCGAHC7.js → chunk-RM4WT2XB.js} +4 -4
  142. package/chunks/{chunk-6YXNJXQW.js → chunk-RN3YGDCA.js} +3 -3
  143. package/chunks/{chunk-SMRDCANI.js → chunk-S6H3ELPG.js} +1 -1
  144. package/chunks/{chunk-MBZ5ORJB.js → chunk-SI7WDR3U.js} +281 -2
  145. package/chunks/{chunk-5FGWVPCM.js → chunk-SRF4KTAG.js} +4 -4
  146. package/chunks/{chunk-LFAR7CPW.js → chunk-STCVJXQB.js} +23 -23
  147. package/chunks/{chunk-JDIO45X7.js → chunk-SULZPKTA.js} +1 -1
  148. package/chunks/{chunk-KUDI54QQ.js → chunk-SX2QIMJV.js} +5 -5
  149. package/chunks/{chunk-VYSZUQGU.js → chunk-TJYRTS4S.js} +2 -2
  150. package/chunks/{chunk-JOTYTYYW.js → chunk-TMKTOTMQ.js} +3 -3
  151. package/chunks/{chunk-FPMQT2YY.js → chunk-TQHPVKO6.js} +4 -4
  152. package/chunks/{chunk-GN422P4J.js → chunk-TSZSGQ3N.js} +1 -1
  153. package/chunks/{chunk-IXEZHTDR.js → chunk-U4DJ5XB3.js} +292 -38
  154. package/chunks/{chunk-MZ5A5PQW.js → chunk-UAKRDON5.js} +4 -4
  155. package/chunks/{chunk-NGKLMNWN.js → chunk-UM2FFKXN.js} +2 -2
  156. package/chunks/{chunk-5ICKESC3.js → chunk-UPFRILIL.js} +2 -2
  157. package/chunks/{chunk-RAEEQEC5.js → chunk-UUASLXHW.js} +54 -5
  158. package/chunks/chunk-V5U2NZNJ.js +29 -0
  159. package/chunks/{chunk-P5Y23G2L.js → chunk-V7RNNPGC.js} +1 -18
  160. package/chunks/{chunk-ZYPJ7HVZ.js → chunk-VBWD6C27.js} +1 -1
  161. package/chunks/{chunk-MJBHSZEJ.js → chunk-VNAYZAFX.js} +3 -3
  162. package/chunks/chunk-VPSIC437.js +780 -0
  163. package/chunks/{chunk-AAX236AR.js → chunk-VWTSRH6C.js} +52 -11
  164. package/chunks/{chunk-PDXYZBBQ.js → chunk-VYIUNFEA.js} +2 -2
  165. package/chunks/{chunk-BY24DZ4J.js → chunk-WP4AX3XD.js} +5 -7
  166. package/chunks/{chunk-X7C7KFWA.js → chunk-XLXAZLDR.js} +1 -1
  167. package/chunks/{chunk-ZQ3FKEWA.js → chunk-YPWZTR7F.js} +3 -3
  168. package/chunks/{chunk-IXHV5MIC.js → chunk-ZDFQGHZH.js} +1 -1
  169. package/chunks/chunk-ZJ2LM2SI.js +198 -0
  170. package/chunks/{chunk-PWR2NQBS.js → chunk-ZKFTS3OV.js} +3 -3
  171. package/chunks/{chunk-HMJ2P3SV.js → chunk-ZL4HFSL6.js} +91 -29
  172. package/chunks/{chunk-ID33ZRWH.js → chunk-ZTPGUFQV.js} +28 -6
  173. package/chunks/chunk-bdqvmfwv-ZTSOWAFE.js +17446 -0
  174. package/chunks/{config-utils-NNUPVGEC.js → config-utils-LVSYDLHZ.js} +42 -46
  175. package/chunks/{contextCommand-S3TPCDM5.js → contextCommand-TZD7UAJK.js} +40 -44
  176. package/chunks/{core-runtime-NASPCSQX.js → core-runtime-B4UKKIAQ.js} +42 -46
  177. package/chunks/{create-sub-session-36TNCHCP.js → create-sub-session-LUPWEUHR.js} +2 -2
  178. package/chunks/{create-sub-session-DS4BJLYZ.js → create-sub-session-NJ24B4US.js} +41 -44
  179. package/chunks/{cron-create-QXHTYUTO.js → cron-create-CRSPET3H.js} +1 -1
  180. package/chunks/{cron-delete-WV2BM42M.js → cron-delete-DB77SZTU.js} +1 -1
  181. package/chunks/{cron-list-7KVNBLZ7.js → cron-list-U2JNYWV6.js} +1 -1
  182. package/chunks/{daemon-UCVUHPJD.js → daemon-RKDGBFLK.js} +385 -19
  183. package/chunks/{daemon-git-worktree-guard-ATXVQPS3.js → daemon-git-worktree-guard-O2HPOBAB.js} +40 -44
  184. package/chunks/{daemon-status-provider-UI3GBTMO.js → daemon-status-provider-GRRVCJFW.js} +47 -51
  185. package/chunks/{daemon-trust-policy-SUCBJ2CA.js → daemon-trust-policy-YJL442BK.js} +46 -50
  186. package/chunks/{daemon-trust-policy-monitor-3LM5RQNS.js → daemon-trust-policy-monitor-JL7F4Y4Q.js} +46 -50
  187. package/chunks/{deferred-core-runtime-SCOJLVYG.js → deferred-core-runtime-S32AYVZI.js} +39 -43
  188. package/chunks/{devtools-JCG4K2NZ.js → devtools-VDRJYPZF.js} +1 -1
  189. package/chunks/{discovery-X2NV535U.js → discovery-TUM3ZQ6U.js} +2 -2
  190. package/chunks/{display-image-Z4VBQDEJ.js → display-image-73C7XNRK.js} +3 -3
  191. package/chunks/{dist-7WDZYMWV.js → dist-62OZ7QXB.js} +2 -2
  192. package/chunks/{dist-FLJLHASF.js → dist-EDHQIBYD.js} +7 -7
  193. package/chunks/{dist-S3BKCTWF.js → dist-GT64AAUR.js} +1 -1
  194. package/chunks/{dist-GPSRNVVP.js → dist-JVXT4VUJ.js} +2 -2
  195. package/chunks/{dist-LY66XNUL.js → dist-L6URO6CK.js} +3 -3
  196. package/chunks/{dist-5423MG3D.js → dist-LXFYIJNG.js} +734 -128
  197. package/chunks/{dist-SDKHGH5O.js → dist-PDGNRVPY.js} +4 -4
  198. package/chunks/{dist-WAUO5OMN.js → dist-QAF5DO3Y.js} +363 -73
  199. package/chunks/{dist-WIVVPE7M.js → dist-ZCJLKQSP.js} +1 -1
  200. package/chunks/{earlyInputCapture-INWJ2STR.js → earlyInputCapture-BBPCIVZG.js} +38 -42
  201. package/chunks/{edit-B7ZRRGAE.js → edit-SUGXY63Y.js} +26 -30
  202. package/chunks/{en-E4AYTX6H.js → en-2RATMNX7.js} +2 -0
  203. package/chunks/{enter-worktree-SPZHEETQ.js → enter-worktree-B6USKSIK.js} +5 -5
  204. package/chunks/{enterPlanMode-S554IKJ2.js → enterPlanMode-MDX4RVVL.js} +26 -30
  205. package/chunks/{environment-25ADH4Y6.js → environment-VN6RXDVN.js} +41 -45
  206. package/chunks/{errors-G2I6LFTW.js → errors-UEY36PIT.js} +40 -44
  207. package/chunks/{exit-worktree-AWUXAMAM.js → exit-worktree-DLQ73SJH.js} +8 -6
  208. package/chunks/{exitPlanMode-ZFH4OYPM.js → exitPlanMode-EPHIEDAA.js} +26 -30
  209. package/chunks/{fast-path-WZHVZ2ER.js → fast-path-Y73R42LV.js} +3 -3
  210. package/chunks/{fast-path-settings-NILM6QZL.js → fast-path-settings-MFUR3IWK.js} +3 -3
  211. package/chunks/{glob-UOVDMBUP.js → glob-DMGH7EZN.js} +27 -31
  212. package/chunks/goal-tools-3RF3PXCL.js +99 -0
  213. package/chunks/{grep-LHYJ5V2N.js → grep-AJVLCVXC.js} +2 -2
  214. package/chunks/{handleAutoUpdate-4MZ45DZY.js → handleAutoUpdate-HVWQT2AU.js} +42 -46
  215. package/chunks/{i18n-KWUEI4DS.js → i18n-5OR7NTRZ.js} +39 -43
  216. package/chunks/{image-gen-YZDVO5YS.js → image-gen-VOIDOHOB.js} +1 -1
  217. package/chunks/{initializer-2NBROGMG.js → initializer-JE5RQSOE.js} +46 -50
  218. package/chunks/{installationInfo-YKUSY3ZB.js → installationInfo-KO3CCSCK.js} +38 -42
  219. package/chunks/{list-W2WV3COM.js → list-3IORSFIY.js} +49 -53
  220. package/chunks/{list-agents-PMVMHNY7.js → list-agents-SBMONIUK.js} +3 -3
  221. package/chunks/{llm-NPPHLIJI.js → llm-K26SUDVK.js} +155 -99
  222. package/chunks/{llm-content-generator-YK3WN6XW.js → llm-content-generator-TT6EAUD4.js} +5 -6
  223. package/chunks/{loadedSettingsAdapter-2P7DFWUR.js → loadedSettingsAdapter-KLLFZF3M.js} +46 -50
  224. package/chunks/{loggingContentGenerator-QYYYGU6V.js → loggingContentGenerator-EYQBA4M4.js} +43 -47
  225. package/chunks/{loop-wakeup-EBM4F5MZ.js → loop-wakeup-QA6SHCZT.js} +2 -2
  226. package/chunks/{ls-F6TRX3DD.js → ls-HEJNCEYO.js} +1 -1
  227. package/chunks/{lsp-QYTOS2FI.js → lsp-WOQKNZP6.js} +1 -1
  228. package/chunks/{managed-npm-update-UMC4NBWW.js → managed-npm-update-HIJTODQT.js} +38 -42
  229. package/chunks/{mcp-OFI6XDP2.js → mcp-A2UEHETW.js} +46 -50
  230. package/chunks/{monitor-QX3BM3JY.js → monitor-DKNZQAB2.js} +28 -32
  231. package/chunks/{node-QKLNSZMX.js → node-UETAYMMO.js} +3 -3
  232. package/chunks/{nonInteractiveCli-NVRMD5MN.js → nonInteractiveCli-YA47F2F4.js} +86 -89
  233. package/chunks/{notebook-edit-AAILDPSV.js → notebook-edit-MGHTRL2D.js} +26 -30
  234. package/chunks/{openaiContentGenerator-53PB3CMN.js → openaiContentGenerator-ZJIEQ3ZJ.js} +15 -17
  235. package/chunks/{pidfile-5ACKG2LI.js → pidfile-ETHAZNMY.js} +38 -42
  236. package/chunks/{processUtils-2BCDO3DZ.js → processUtils-UY3SAJJZ.js} +2 -2
  237. package/chunks/{prompt-terminal-ledger-3RKW73A2.js → prompt-terminal-ledger-GZ747VYE.js} +39 -43
  238. package/chunks/{qwenContentGenerator-N4LLWDPH.js → qwenContentGenerator-VI4KATRY.js} +39 -43
  239. package/chunks/{read-file-DPAKXHYE.js → read-file-P7F4P7LV.js} +6 -8
  240. package/chunks/{read-mcp-resource-R4NO75DW.js → read-mcp-resource-GLAGB6R7.js} +1 -1
  241. package/chunks/{record-artifact-2EAYLAL5.js → record-artifact-SWVR7NSU.js} +3 -3
  242. package/chunks/renderer-selection-M4UN63VJ.js +99 -0
  243. package/chunks/{report-findings-Y4MSHDS3.js → report-findings-AL5YW3KI.js} +4 -4
  244. package/chunks/{request-shutdown-DWRMGTMB.js → request-shutdown-5YK4IZ54.js} +5 -5
  245. package/chunks/{resumeHistoryUtils-3JQORXAK.js → resumeHistoryUtils-DPZKFW24.js} +44 -48
  246. package/chunks/{ripGrep-AHF5QCI7.js → ripGrep-C7LJKUPZ.js} +9 -11
  247. package/chunks/{run-qwen-serve-3LKV7KDC.js → run-qwen-serve-OGTEEUR2.js} +132 -81
  248. package/chunks/{runtime-66F4W3IA.js → runtime-LNBLEMZS.js} +51 -55
  249. package/chunks/{scheduled-tasks-2NVKS5Q2.js → scheduled-tasks-FLDYZQOF.js} +44 -48
  250. package/chunks/{scheduler-JNV7T3ZO.js → scheduler-73YXGUGW.js} +40 -44
  251. package/chunks/{sdk-exporters-grpc-G5IT4XS4.js → sdk-exporters-grpc-MXTVSE3C.js} +2 -2
  252. package/chunks/{sdk-exporters-http-MFIWD23D.js → sdk-exporters-http-3JO5TJNU.js} +3 -3
  253. package/chunks/{sdk-impl-2RXJ4Q6X.js → sdk-impl-HZAUUTHJ.js} +5 -5
  254. package/chunks/{send-message-WPZRCJOB.js → send-message-JC7NJTY6.js} +7 -7
  255. package/chunks/{serve-GP2UNRP7.js → serve-3UR2H4CV.js} +46 -50
  256. package/chunks/{server-7W6C3SOW.js → server-AOYZVVOM.js} +1736 -502
  257. package/chunks/{session-PZLBAQGG.js → session-UAWFNFGI.js} +90 -93
  258. package/chunks/session-attachments-root-ZCGXQQTR.js +104 -0
  259. package/chunks/{session-pr-refresh-OIVL3U3Z.js → session-pr-refresh-CT2INROL.js} +131 -65
  260. package/chunks/{settings-ZOHIQWYK.js → settings-BHRGDASJ.js} +45 -49
  261. package/chunks/{shell-FWZT6IUR.js → shell-YHOGC7TO.js} +26 -30
  262. package/chunks/{skill-RTQC2YGA.js → skill-ZGBKNCHQ.js} +71 -49
  263. package/chunks/{skill-settings-AKMIXFSJ.js → skill-settings-AKSP665O.js} +45 -49
  264. package/chunks/{spawnChannel-ZP23JL6O.js → spawnChannel-N25MBB6F.js} +40 -44
  265. package/chunks/{standalone-update-P2Q5H4ZU.js → standalone-update-XGPWJDRN.js} +40 -44
  266. package/chunks/start-opentui-ui-FZ4USOU7.js +55342 -0
  267. package/chunks/{startInteractiveUI-NSA6QPQZ.js → startInteractiveUI-E2WQJUOA.js} +2920 -4542
  268. package/chunks/{syntheticOutput-5URSQLIS.js → syntheticOutput-HJNZSEHN.js} +2 -2
  269. package/chunks/{task-create-3EXVDG3G.js → task-create-6RSD54S5.js} +7 -7
  270. package/chunks/{task-list-PIBYNSE7.js → task-list-IQSACPOM.js} +31 -7
  271. package/chunks/{task-stop-IV3BYWJC.js → task-stop-HE2LRQNW.js} +1 -1
  272. package/chunks/{task-update-H5BPDS5Y.js → task-update-XAJ2NYOA.js} +7 -7
  273. package/chunks/{team-create-53T42W37.js → team-create-SOKMYSQU.js} +28 -32
  274. package/chunks/{team-delete-X3WPELS6.js → team-delete-NGNNKGMG.js} +1 -1
  275. package/chunks/{team-plan-approval-D45ZC5OE.js → team-plan-approval-U7ZWXYAY.js} +26 -30
  276. package/chunks/{terminal-image-renderer-FCRUWT6C.js → terminal-image-renderer-KKM4OBLO.js} +40 -44
  277. package/chunks/{theme-manager-MHNPEDP7.js → theme-manager-GQHF3A7T.js} +38 -42
  278. package/chunks/{todoWrite-A5IOZZ3P.js → todoWrite-5UTVUXHA.js} +36 -6
  279. package/chunks/{tool-search-6RPBGGUX.js → tool-search-IAI2RVWT.js} +10 -12
  280. package/chunks/{total-session-admission-MGV56XDK.js → total-session-admission-G4CGCSTG.js} +43 -47
  281. package/chunks/{trustedFolders-QJYEFMTU.js → trustedFolders-D2I3FDPB.js} +39 -43
  282. package/chunks/{update-relaunch-ZDMQX63C.js → update-relaunch-5RWKZAL3.js} +5 -5
  283. package/chunks/{updateCheck-4QZWCGP6.js → updateCheck-ZXOQDFEI.js} +42 -46
  284. package/chunks/{useAutoAcceptIndicator-DLIQN256.js → useAutoAcceptIndicator-6EK4QGAH.js} +49 -53
  285. package/chunks/{validateNonInterActiveAuth-HGTG7AEK.js → validateNonInterActiveAuth-QPFEKATS.js} +82 -86
  286. package/chunks/{version-CPAZMC4B.js → version-JKNG7YDH.js} +1 -1
  287. package/chunks/{web-fetch-N4K5M3M4.js → web-fetch-X3AHIIHW.js} +8 -11
  288. package/chunks/{web-search-4VZKM5SF.js → web-search-K2FMOGS5.js} +6 -7
  289. package/chunks/{web-shell-static-PW7OEDQO.js → web-shell-static-POZHGGXE.js} +4 -4
  290. package/chunks/{workflow-2ALQKTHG.js → workflow-TOLPAK5G.js} +38 -38
  291. package/chunks/{workspace-providers-status-5JM4CB6R.js → workspace-providers-status-PCJK3RC7.js} +50 -54
  292. package/chunks/{workspace-registration-store-RNMFVCH7.js → workspace-registration-store-KQWVVW4Y.js} +1 -1
  293. package/chunks/{workspace-registry-6EULAPZC.js → workspace-registry-YNIOB6HJ.js} +43 -47
  294. package/chunks/{workspace-runtime-coordinator-IRI2DRCJ.js → workspace-runtime-coordinator-WG2RNEN7.js} +43 -47
  295. package/chunks/{workspace-service-SETHN4WE.js → workspace-service-G4ZNBOFH.js} +51 -55
  296. package/chunks/{workspace-skills-status-4D4EUEQU.js → workspace-skills-status-FMTPPMWC.js} +47 -51
  297. package/chunks/{workspace-trust-reconciler-4LR3CDL4.js → workspace-trust-reconciler-IBDFQBQS.js} +53 -57
  298. package/chunks/wrapper-JH3IFHT2.js +35 -0
  299. package/chunks/{write-file-45GWPSOI.js → write-file-YTLFY2S5.js} +28 -32
  300. package/chunks/{zh-2BQ7P6OD.js → zh-25DF7OGK.js} +2 -0
  301. package/chunks/{zh-TW-UFXRZTXX.js → zh-TW-5EDMZVGK.js} +2 -0
  302. package/chunks/{zoom-image-K6IQUKRC.js → zoom-image-IFXSN74N.js} +6 -8
  303. package/cli.js +17 -13
  304. package/locales/en.js +3 -0
  305. package/locales/zh-TW.js +3 -0
  306. package/locales/zh.js +3 -0
  307. package/package.json +3 -3
  308. package/web-shell/assets/{abnfDiagram-VCTEODGH-C80OZcPP.js → abnfDiagram-VCTEODGH-Cxf7xE_Z.js} +1 -1
  309. package/web-shell/assets/{arc-AUqStYgf.js → arc-ESi1eNkE.js} +1 -1
  310. package/web-shell/assets/{architectureDiagram-5GKGNRK7-CQYOdYla.js → architectureDiagram-5GKGNRK7-D9l7-bDo.js} +1 -1
  311. package/web-shell/assets/{blockDiagram-NRAW4CY4-lYKlFysy.js → blockDiagram-NRAW4CY4-Bc8DEasw.js} +1 -1
  312. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BoS23iIp.js → c4Diagram-UCG6FXSJ-Dimb2Hmh.js} +1 -1
  313. package/web-shell/assets/channel-B7ohGDil.js +1 -0
  314. package/web-shell/assets/{chunk-2Q5K7J3B-DLLooL1E.js → chunk-2Q5K7J3B-jVDmOpAQ.js} +1 -1
  315. package/web-shell/assets/{chunk-5VM5RSS4-kPfJxScY.js → chunk-5VM5RSS4-DbG_SwdB.js} +1 -1
  316. package/web-shell/assets/{chunk-F27PBJKO-CVGFBqkD.js → chunk-F27PBJKO-QEc4cY1v.js} +1 -1
  317. package/web-shell/assets/{chunk-G27WJ6UU-CnM_kOVV.js → chunk-G27WJ6UU-iJ36lQ3X.js} +1 -1
  318. package/web-shell/assets/{chunk-JWPE2WC7-Cj-ajOkT.js → chunk-JWPE2WC7-DuArnVtF.js} +1 -1
  319. package/web-shell/assets/{chunk-LCL6LL3I-8L5c-wFo.js → chunk-LCL6LL3I-DxOf1zwL.js} +1 -1
  320. package/web-shell/assets/{chunk-POPQ4Y6H-DsXTxpvL.js → chunk-POPQ4Y6H-lVLu9Ild.js} +1 -1
  321. package/web-shell/assets/{chunk-SVP7TREG-DU5GE1_z.js → chunk-SVP7TREG-C6XYlIer.js} +1 -1
  322. package/web-shell/assets/{chunk-XXDRQBXY-D2IIWZKt.js → chunk-XXDRQBXY-CiG2j2Ji.js} +1 -1
  323. package/web-shell/assets/classDiagram-DTDB5LWJ-DdFpqpfD.js +1 -0
  324. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DdFpqpfD.js +1 -0
  325. package/web-shell/assets/{cose-bilkent-JH36ORCC-CF_txUJr.js → cose-bilkent-JH36ORCC-DGVHMMVm.js} +1 -1
  326. package/web-shell/assets/{cynefin-OW5HDTMX-DEZ-My-Z.js → cynefin-OW5HDTMX-D6cgpCnH.js} +1 -1
  327. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BV7EKUS6.js → cynefinDiagram-5FMLGOSQ-BKv4Z-UX.js} +1 -1
  328. package/web-shell/assets/{dagre-3AP2YEHR-JGIX0G4H.js → dagre-3AP2YEHR-B4ABMIG-.js} +1 -1
  329. package/web-shell/assets/{diagram-S7CK7UJ4-DdUY7q6A.js → diagram-S7CK7UJ4-DgCkp_Lm.js} +1 -1
  330. package/web-shell/assets/{diagram-UQ7AKVKN-fhzRZ19v.js → diagram-UQ7AKVKN-FG0FNokz.js} +1 -1
  331. package/web-shell/assets/{diagram-VSXAHHWV-BOgOex6q.js → diagram-VSXAHHWV-JgkP9qg-.js} +1 -1
  332. package/web-shell/assets/{diagram-VX7I27RA-C0NknIz6.js → diagram-VX7I27RA-ADh2x83l.js} +1 -1
  333. package/web-shell/assets/{diagram-Z3DM3KII-C__3mUBX.js → diagram-Z3DM3KII-yXqoYF1J.js} +1 -1
  334. package/web-shell/assets/{ebnfDiagram-PWID7BFC-BvPhqycH.js → ebnfDiagram-PWID7BFC-Duk83Ek_.js} +1 -1
  335. package/web-shell/assets/{erDiagram-SSCWMZ5O-BqzoNoL9.js → erDiagram-SSCWMZ5O-DMdvxySG.js} +1 -1
  336. package/web-shell/assets/{flowDiagram-A5DVABFB-CJKOre47.js → flowDiagram-A5DVABFB-DHjVgSji.js} +1 -1
  337. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-C5xZjrp0.js → ganttDiagram-EL5Y4UJY-DMM9DkCE.js} +1 -1
  338. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C0EjwuPK.js → gitGraphDiagram-WWUBYQGX-t_ug9vO8.js} +1 -1
  339. package/web-shell/assets/index-BGZRqbRo.css +36 -0
  340. package/web-shell/assets/index-DRri_6_x.js +2067 -0
  341. package/web-shell/assets/{index-C5M93syE.js → index-zqvnpGHv.js} +1 -1
  342. package/web-shell/assets/{infoDiagram-RXCK75RN-BUwzsYOs.js → infoDiagram-RXCK75RN-eT1fANNm.js} +1 -1
  343. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-EDJ_DH3V.js → ishikawaDiagram-5VMMS53U-k3evzZNn.js} +1 -1
  344. package/web-shell/assets/{journeyDiagram-EYS64GPL-BnfcOsS0.js → journeyDiagram-EYS64GPL-CGim3EAi.js} +1 -1
  345. package/web-shell/assets/{kanban-definition-3QL26DDD-D_ofTVGu.js → kanban-definition-3QL26DDD-WHfJo-22.js} +1 -1
  346. package/web-shell/assets/{layout-CBuQFdfZ.js → layout-DkqIaFlJ.js} +1 -1
  347. package/web-shell/assets/{linear-DRIHtmGv.js → linear-Bdkd3mCz.js} +1 -1
  348. package/web-shell/assets/{mermaid.core-CmR5wZH6.js → mermaid.core-CGw0LkT_.js} +6 -6
  349. package/web-shell/assets/{mindmap-definition-FBJOCRG2-BV374olC.js → mindmap-definition-FBJOCRG2-C9V4rBvo.js} +1 -1
  350. package/web-shell/assets/{pegDiagram-XKGWAZYB-Bpy1SplK.js → pegDiagram-XKGWAZYB-CwoI2T5G.js} +1 -1
  351. package/web-shell/assets/{pieDiagram-E7YTZNPT-CeZx4hR2.js → pieDiagram-E7YTZNPT-DaTmBmPG.js} +1 -1
  352. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-COYKs14h.js → quadrantDiagram-AXDQQJYC-plh6MyGI.js} +1 -1
  353. package/web-shell/assets/{railroadDiagram-O6MQD6OU-5g2pOeTs.js → railroadDiagram-O6MQD6OU-D_b-S0iK.js} +1 -1
  354. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-Yn8uPGtF.js → requirementDiagram-EFPCY7ZU-zUzTN7VE.js} +1 -1
  355. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CTayAGq6.js → sankeyDiagram-P5KCCOFB-m6AhoD0l.js} +1 -1
  356. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BFWDKzUU.js → sequenceDiagram-WJ2MYXX4-Cwhzsine.js} +1 -1
  357. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CtErUbj4.js → sizeCapture-X5ZJPWSS-CcZuKIae.js} +1 -1
  358. package/web-shell/assets/{stateDiagram-HBIQ2CUA-Co3HFzOd.js → stateDiagram-HBIQ2CUA-CFoiJwD_.js} +1 -1
  359. package/web-shell/assets/stateDiagram-v2-4QOOHH4V--H8HdEmk.js +1 -0
  360. package/web-shell/assets/{swimlanes-XN3QIQJK-CDZuxzOj.js → swimlanes-XN3QIQJK-CgS9hcaV.js} +1 -1
  361. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ShE9OIgf.js +8 -0
  362. package/web-shell/assets/{timeline-definition-24CTP7MA-UcNHj8At.js → timeline-definition-24CTP7MA-Dzzc05t9.js} +1 -1
  363. package/web-shell/assets/{vennDiagram-4TSXK5OY-JKR9pVFG.js → vennDiagram-4TSXK5OY-DemK0f7Y.js} +1 -1
  364. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C4SU-yIW.js → wardleyDiagram-VM6X3IG4-CquLxtMr.js} +1 -1
  365. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-D_yoWGZ4.js → xychartDiagram-S5SC5T6Z-BTBKTM5g.js} +1 -1
  366. package/web-shell/index.html +2 -2
  367. package/chunks/chunk-4P7PPAHN.js +0 -3097
  368. package/chunks/chunk-7J6OTNGO.js +0 -424
  369. package/chunks/chunk-LMMHS3RS.js +0 -135
  370. package/chunks/chunk-MZYWNU66.js +0 -149
  371. package/chunks/chunk-T4EFG2P5.js +0 -113
  372. package/chunks/chunk-XZA32HII.js +0 -19
  373. package/chunks/goal-tools-7TNK5ZHC.js +0 -411
  374. package/web-shell/assets/channel-B0ovOJeK.js +0 -1
  375. package/web-shell/assets/classDiagram-DTDB5LWJ-DMll2-6_.js +0 -1
  376. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DMll2-6_.js +0 -1
  377. package/web-shell/assets/index-B_IPzA0h.js +0 -2020
  378. package/web-shell/assets/index-D1OKGQlM.css +0 -36
  379. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C3gdRjPm.js +0 -1
  380. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-C34TGCPZ.js +0 -8
  381. /package/chunks/{chunk-FOGQO4FG.js → chunk-JA5CBKRP.js} +0 -0
@@ -210,6 +210,7 @@ __name(signalAbortError, "signalAbortError");
210
210
  // packages/sdk-typescript/src/daemon/session-pr.ts
211
211
  init_esbuild_shims();
212
212
  var MAX_SESSION_PR_URL_LENGTH = 2048;
213
+ var MAX_SESSION_PR_ISSUES = 10;
213
214
  function hasControlCharacter(value) {
214
215
  return Array.from(value).some((character) => {
215
216
  const code = character.charCodeAt(0);
@@ -217,12 +218,20 @@ function hasControlCharacter(value) {
217
218
  });
218
219
  }
219
220
  __name(hasControlCharacter, "hasControlCharacter");
221
+ function isBindingUrl(value) {
222
+ return typeof value === "string" && value.length <= MAX_SESSION_PR_URL_LENGTH && /^https?:\/\//i.test(value) && !hasControlCharacter(value);
223
+ }
224
+ __name(isBindingUrl, "isBindingUrl");
225
+ function isDaemonSessionIssueInfo(value) {
226
+ if (typeof value !== "object" || value === null) return false;
227
+ const v = value;
228
+ return typeof v["number"] === "number" && Number.isInteger(v["number"]) && v["number"] > 0 && isBindingUrl(v["url"]) && (v["state"] === void 0 || v["state"] === "open" || v["state"] === "completed" || v["state"] === "not_planned");
229
+ }
230
+ __name(isDaemonSessionIssueInfo, "isDaemonSessionIssueInfo");
220
231
  function isDaemonSessionPrInfo(value) {
221
232
  if (typeof value !== "object" || value === null) return false;
222
233
  const v = value;
223
- return typeof v["number"] === "number" && Number.isInteger(v["number"]) && v["number"] > 0 && typeof v["url"] === "string" && v["url"].length <= MAX_SESSION_PR_URL_LENGTH && /^https?:\/\//i.test(v["url"]) && // The daemon interpolates the url into a stderr audit line — control
224
- // characters would forge log lines downstream of this gate.
225
- !hasControlCharacter(v["url"]) && (v["state"] === void 0 || v["state"] === "open" || v["state"] === "merged" || v["state"] === "closed");
234
+ return typeof v["number"] === "number" && Number.isInteger(v["number"]) && v["number"] > 0 && isBindingUrl(v["url"]) && (v["state"] === void 0 || v["state"] === "open" || v["state"] === "merged" || v["state"] === "closed") && (v["issues"] === void 0 || Array.isArray(v["issues"]) && v["issues"].length <= MAX_SESSION_PR_ISSUES && v["issues"].every(isDaemonSessionIssueInfo));
226
235
  }
227
236
  __name(isDaemonSessionPrInfo, "isDaemonSessionPrInfo");
228
237
 
@@ -629,6 +638,7 @@ var DAEMON_APPROVAL_MODES = PERMISSION_MODES;
629
638
  // packages/sdk-typescript/src/daemon/standalone-sessions.ts
630
639
  init_esbuild_shims();
631
640
  var STANDALONE_SESSIONS_CAPABILITY = "standalone_sessions_v1";
641
+ var STANDALONE_SESSION_OPTIONS_CAPABILITY = "standalone_session_options_v1";
632
642
  var DaemonStandaloneProtocolError = class extends Error {
633
643
  constructor(route, detail) {
634
644
  super(`${route}: malformed standalone-session response (${detail})`);
@@ -720,6 +730,138 @@ function validateStandaloneFields(value, route) {
720
730
  validateWorkingDirectory(value["workingDirectory"], route);
721
731
  }
722
732
  __name(validateStandaloneFields, "validateStandaloneFields");
733
+ function validateOptionalString(value, field, route) {
734
+ if (value[field] !== void 0 && typeof value[field] !== "string") {
735
+ throw new DaemonStandaloneProtocolError(route, `expected ${field} string`);
736
+ }
737
+ }
738
+ __name(validateOptionalString, "validateOptionalString");
739
+ function validateStatusCell(value, route) {
740
+ requireString(value, "kind", route);
741
+ if (!["ok", "warning", "error", "disabled", "not_started", "unknown"].includes(
742
+ String(value["status"])
743
+ )) {
744
+ throw new DaemonStandaloneProtocolError(route, "invalid status");
745
+ }
746
+ for (const field of ["error", "hint"]) {
747
+ validateOptionalString(value, field, route);
748
+ }
749
+ if (value["errorKind"] !== void 0 && !DAEMON_ERROR_KINDS.includes(
750
+ value["errorKind"]
751
+ )) {
752
+ throw new DaemonStandaloneProtocolError(route, "invalid errorKind");
753
+ }
754
+ }
755
+ __name(validateStatusCell, "validateStatusCell");
756
+ function validateProviderModel(value, route) {
757
+ const model = asRecord(value, route, "provider model");
758
+ requireString(model, "modelId", route);
759
+ requireString(model, "baseModelId", route);
760
+ requireString(model, "name", route, true);
761
+ if (model["description"] !== void 0 && model["description"] !== null && typeof model["description"] !== "string") {
762
+ throw new DaemonStandaloneProtocolError(route, "invalid description");
763
+ }
764
+ if (model["contextLimit"] !== void 0 && (typeof model["contextLimit"] !== "number" || !Number.isFinite(model["contextLimit"]) || model["contextLimit"] <= 0)) {
765
+ throw new DaemonStandaloneProtocolError(route, "invalid contextLimit");
766
+ }
767
+ for (const field of ["baseUrl", "envKey"]) {
768
+ validateOptionalString(model, field, route);
769
+ }
770
+ for (const field of ["isCurrent", "isRuntime"]) {
771
+ if (typeof model[field] !== "boolean") {
772
+ throw new DaemonStandaloneProtocolError(
773
+ route,
774
+ `expected ${field} boolean`
775
+ );
776
+ }
777
+ }
778
+ if (model["modalities"] !== void 0) {
779
+ const modalities = asRecord(model["modalities"], route, "modalities");
780
+ for (const field of ["image", "pdf", "audio", "video"]) {
781
+ if (modalities[field] !== void 0 && typeof modalities[field] !== "boolean") {
782
+ throw new DaemonStandaloneProtocolError(
783
+ route,
784
+ `expected modalities.${field} boolean`
785
+ );
786
+ }
787
+ }
788
+ }
789
+ if (model["configOptions"] !== void 0 && !Array.isArray(model["configOptions"])) {
790
+ throw new DaemonStandaloneProtocolError(route, "expected configOptions[]");
791
+ }
792
+ }
793
+ __name(validateProviderModel, "validateProviderModel");
794
+ function parseStandaloneSessionOptions(value, route) {
795
+ const options = asRecord(value, route);
796
+ if (options["workspaceCwd"] !== void 0 || options["acpChannelLive"] !== void 0) {
797
+ throw new DaemonStandaloneProtocolError(
798
+ route,
799
+ "standalone options exposed workspace internals"
800
+ );
801
+ }
802
+ if (options["v"] !== 1) {
803
+ throw new DaemonStandaloneProtocolError(route, "expected v=1");
804
+ }
805
+ if (typeof options["initialized"] !== "boolean") {
806
+ throw new DaemonStandaloneProtocolError(
807
+ route,
808
+ "expected initialized boolean"
809
+ );
810
+ }
811
+ if (options["current"] !== void 0) {
812
+ const current = asRecord(options["current"], route, "current");
813
+ for (const field of [
814
+ "authType",
815
+ "modelId",
816
+ "baseUrl",
817
+ "fastModelId",
818
+ "visionModelId"
819
+ ]) {
820
+ validateOptionalString(current, field, route);
821
+ }
822
+ }
823
+ if (options["approvalMode"] !== void 0 && !DAEMON_APPROVAL_MODES.includes(
824
+ options["approvalMode"]
825
+ )) {
826
+ throw new DaemonStandaloneProtocolError(route, "invalid approvalMode");
827
+ }
828
+ if (!Array.isArray(options["providers"])) {
829
+ throw new DaemonStandaloneProtocolError(route, "expected providers[]");
830
+ }
831
+ for (const value2 of options["providers"]) {
832
+ const provider = asRecord(value2, route, "provider");
833
+ validateStatusCell(provider, route);
834
+ if (provider["kind"] !== "model_provider") {
835
+ throw new DaemonStandaloneProtocolError(
836
+ route,
837
+ "expected model_provider kind"
838
+ );
839
+ }
840
+ requireString(provider, "authType", route);
841
+ if (typeof provider["current"] !== "boolean") {
842
+ throw new DaemonStandaloneProtocolError(
843
+ route,
844
+ "expected provider current boolean"
845
+ );
846
+ }
847
+ if (!Array.isArray(provider["models"])) {
848
+ throw new DaemonStandaloneProtocolError(route, "expected models[]");
849
+ }
850
+ for (const model of provider["models"]) {
851
+ validateProviderModel(model, route);
852
+ }
853
+ }
854
+ if (options["errors"] !== void 0) {
855
+ if (!Array.isArray(options["errors"])) {
856
+ throw new DaemonStandaloneProtocolError(route, "expected errors[]");
857
+ }
858
+ for (const value2 of options["errors"]) {
859
+ validateStatusCell(asRecord(value2, route, "error"), route);
860
+ }
861
+ }
862
+ return options;
863
+ }
864
+ __name(parseStandaloneSessionOptions, "parseStandaloneSessionOptions");
723
865
  function parseStandaloneSession(value, route, expectedSessionId) {
724
866
  const session = asRecord(value, route);
725
867
  requireSessionId(session, route, expectedSessionId);
@@ -727,6 +869,12 @@ function parseStandaloneSession(value, route, expectedSessionId) {
727
869
  if (typeof session["attached"] !== "boolean") {
728
870
  throw new DaemonStandaloneProtocolError(route, "expected attached boolean");
729
871
  }
872
+ if (session["modelApplied"] !== void 0 && typeof session["modelApplied"] !== "boolean") {
873
+ throw new DaemonStandaloneProtocolError(
874
+ route,
875
+ "expected modelApplied boolean"
876
+ );
877
+ }
730
878
  validateStandaloneFields(session, route);
731
879
  return session;
732
880
  }
@@ -1323,6 +1471,31 @@ var DaemonClient = class {
1323
1471
  }
1324
1472
  );
1325
1473
  }
1474
+ async setUserMcpServer(name, config) {
1475
+ return await this.jsonRequest(
1476
+ `/workspace/config/mcp/servers/${urlEncode(name)}`,
1477
+ "PUT /workspace/config/mcp/servers/:name",
1478
+ {
1479
+ method: "PUT",
1480
+ body: { scope: "user", config },
1481
+ mode: "rest"
1482
+ }
1483
+ );
1484
+ }
1485
+ async removeUserMcpServer(name) {
1486
+ return await this.jsonRequest(
1487
+ `/workspace/config/mcp/servers/${urlEncode(name)}?scope=user`,
1488
+ "DELETE /workspace/config/mcp/servers/:name",
1489
+ { method: "DELETE", mode: "rest" }
1490
+ );
1491
+ }
1492
+ async setUserMcpServerEnabled(name, enabled) {
1493
+ return await this.jsonRequest(
1494
+ `/workspace/config/mcp/${urlEncode(name)}/${enabled ? "enable" : "disable"}`,
1495
+ "POST /workspace/config/mcp/:server/:action",
1496
+ { method: "POST", body: {}, mode: "rest" }
1497
+ );
1498
+ }
1326
1499
  async initializeWorkspaceMcp() {
1327
1500
  return await this.fetchWithTimeout(
1328
1501
  `${this.baseUrl}/workspace/mcp/initialize`,
@@ -1424,11 +1597,11 @@ var DaemonClient = class {
1424
1597
  { method: "POST", body: opts ?? {}, mode: "rest" }
1425
1598
  );
1426
1599
  }
1427
- async workspaceGitPull(opts) {
1600
+ async workspaceGitPull(opts, timeoutMs) {
1428
1601
  return await this.jsonRequest(
1429
1602
  "/workspace/git/pull",
1430
1603
  "POST /workspace/git/pull",
1431
- { method: "POST", body: opts ?? {}, mode: "rest" }
1604
+ { method: "POST", body: opts ?? {}, mode: "rest", timeoutMs }
1432
1605
  );
1433
1606
  }
1434
1607
  async workspaceGitCommit(message, opts) {
@@ -2415,6 +2588,16 @@ var DaemonClient = class {
2415
2588
  );
2416
2589
  }
2417
2590
  // -- Sessions ----------------------------------------------------------
2591
+ async getStandaloneSessionOptions() {
2592
+ await this.requireCapability(STANDALONE_SESSION_OPTIONS_CAPABILITY);
2593
+ const route = "GET /standalone/session-options";
2594
+ const response = await this.jsonRequest(
2595
+ "/standalone/session-options",
2596
+ route,
2597
+ { mode: "rest" }
2598
+ );
2599
+ return parseStandaloneSessionOptions(response, route);
2600
+ }
2418
2601
  async createStandaloneSession(options = {}) {
2419
2602
  await this.requireCapability(STANDALONE_SESSIONS_CAPABILITY);
2420
2603
  const { sessionId: requestedSessionId, ...request } = options;
@@ -2686,6 +2869,23 @@ var DaemonClient = class {
2686
2869
  "GET /workspace/sessions"
2687
2870
  );
2688
2871
  }
2872
+ /**
2873
+ * Search user/assistant message content across a workspace's persisted
2874
+ * sessions via `GET /workspace/:id/sessions/search`. Returns one summary +
2875
+ * snippet per matching session, most recently modified first. Requires a
2876
+ * daemon new enough to serve the route — older daemons answer 404.
2877
+ */
2878
+ async searchWorkspaceSessions(workspaceCwd, queryText, options = {}) {
2879
+ const query = new URLSearchParams({ q: queryText });
2880
+ if (options.maxResults !== void 0) {
2881
+ query.set("maxResults", String(options.maxResults));
2882
+ }
2883
+ return await this.jsonRequest(
2884
+ `/workspace/${urlEncode(workspaceCwd)}/sessions/search?${query.toString()}`,
2885
+ "GET /workspace/sessions/search",
2886
+ { ...options.signal ? { signal: options.signal } : {} }
2887
+ );
2888
+ }
2689
2889
  /**
2690
2890
  * Read the memory-only live-state snapshot for a workspace via
2691
2891
  * `GET /workspaces/:workspace/sessions/live-state`: the complete set of
@@ -4178,11 +4378,20 @@ var DaemonClient = class {
4178
4378
  }
4179
4379
  );
4180
4380
  }
4181
- async setSessionConfigOption(sessionId, configId, value, clientId) {
4381
+ async setSessionConfigOption(sessionId, configId, value, clientOrOptions) {
4382
+ const options = typeof clientOrOptions === "string" ? { clientId: clientOrOptions } : clientOrOptions;
4182
4383
  return await this.jsonRequest(
4183
4384
  `/session/${urlEncode(sessionId)}/config-option`,
4184
4385
  "POST /session/:id/config-option",
4185
- { method: "POST", body: { configId, value }, clientId }
4386
+ {
4387
+ method: "POST",
4388
+ body: {
4389
+ configId,
4390
+ value,
4391
+ ...options?.persist !== void 0 ? { persist: options.persist } : {}
4392
+ },
4393
+ clientId: options?.clientId
4394
+ }
4186
4395
  );
4187
4396
  }
4188
4397
  async setSessionLanguage(sessionId, language, opts) {
@@ -4207,6 +4416,26 @@ var DaemonClient = class {
4207
4416
  }
4208
4417
  );
4209
4418
  }
4419
+ /**
4420
+ * Sessionless user-level language sync (`POST /language`). Succeeds with
4421
+ * zero sessions, so hosts can switch language before creating one.
4422
+ * Pre-flight `caps.features.includes('user_language_sync')` — daemons that
4423
+ * predate the route or were built without settings persistence 404.
4424
+ */
4425
+ async setUserLanguage(language, opts) {
4426
+ return await this.jsonRequest(
4427
+ "/language",
4428
+ "POST /language",
4429
+ {
4430
+ method: "POST",
4431
+ body: {
4432
+ language,
4433
+ syncOutputLanguage: opts?.syncOutputLanguage ?? false
4434
+ },
4435
+ clientId: opts?.clientId
4436
+ }
4437
+ );
4438
+ }
4210
4439
  /**
4211
4440
  * Send a prompt to the agent. Supports both blocking (legacy 200)
4212
4441
  * and non-blocking (202 + SSE `turn_complete`) daemon responses.
@@ -4799,6 +5028,105 @@ var WorkspaceDaemonClient = class {
4799
5028
  workspaceMcp() {
4800
5029
  return this.get("/mcp", "GET /workspaces/:workspace/mcp");
4801
5030
  }
5031
+ mcpConfig() {
5032
+ return this.client.workspaceJsonRequest(
5033
+ this.workspaceSelector,
5034
+ "/config/mcp/servers",
5035
+ "GET /workspaces/:workspace/config/mcp/servers",
5036
+ { mode: "rest" }
5037
+ );
5038
+ }
5039
+ setMcpServer(name, config) {
5040
+ return this.client.workspaceJsonRequest(
5041
+ this.workspaceSelector,
5042
+ `/config/mcp/servers/${urlEncode(name)}`,
5043
+ "PUT /workspaces/:workspace/config/mcp/servers/:name",
5044
+ {
5045
+ method: "PUT",
5046
+ body: { scope: "workspace", config },
5047
+ mode: "rest"
5048
+ }
5049
+ );
5050
+ }
5051
+ removeMcpServer(name) {
5052
+ return this.client.workspaceJsonRequest(
5053
+ this.workspaceSelector,
5054
+ `/config/mcp/servers/${urlEncode(name)}?scope=workspace`,
5055
+ "DELETE /workspaces/:workspace/config/mcp/servers/:name",
5056
+ { method: "DELETE", mode: "rest" }
5057
+ );
5058
+ }
5059
+ setMcpServerEnabled(name, enabled) {
5060
+ return this.client.workspaceJsonRequest(
5061
+ this.workspaceSelector,
5062
+ `/config/mcp/${urlEncode(name)}/${enabled ? "enable" : "disable"}`,
5063
+ "POST /workspaces/:workspace/config/mcp/:server/:action",
5064
+ { method: "POST", body: {}, mode: "rest" }
5065
+ );
5066
+ }
5067
+ runtimeMcp() {
5068
+ return this.client.workspaceJsonRequest(
5069
+ this.workspaceSelector,
5070
+ "/runtime/mcp",
5071
+ "GET /workspaces/:workspace/runtime/mcp",
5072
+ { mode: "rest" }
5073
+ );
5074
+ }
5075
+ runtimeMcpTools(serverName) {
5076
+ return this.client.workspaceJsonRequest(
5077
+ this.workspaceSelector,
5078
+ `/runtime/mcp/${urlEncode(serverName)}/tools`,
5079
+ "GET /workspaces/:workspace/runtime/mcp/:server/tools",
5080
+ { mode: "rest" }
5081
+ );
5082
+ }
5083
+ runtimeMcpResources(serverName) {
5084
+ return this.client.workspaceJsonRequest(
5085
+ this.workspaceSelector,
5086
+ `/runtime/mcp/${urlEncode(serverName)}/resources`,
5087
+ "GET /workspaces/:workspace/runtime/mcp/:server/resources",
5088
+ { mode: "rest" }
5089
+ );
5090
+ }
5091
+ reloadRuntimeMcp(options = {}) {
5092
+ return this.client.workspaceJsonRequest(
5093
+ this.workspaceSelector,
5094
+ "/runtime/mcp/reload",
5095
+ "POST /workspaces/:workspace/runtime/mcp/reload",
5096
+ {
5097
+ method: "POST",
5098
+ body: options,
5099
+ mode: "rest",
5100
+ timeoutMs: MCP_RESTART_DEFAULT_TIMEOUT_MS
5101
+ }
5102
+ );
5103
+ }
5104
+ restartRuntimeMcpServer(serverName) {
5105
+ return this.client.workspaceJsonRequest(
5106
+ this.workspaceSelector,
5107
+ `/runtime/mcp/${urlEncode(serverName)}/restart`,
5108
+ "POST /workspaces/:workspace/runtime/mcp/:server/restart",
5109
+ {
5110
+ method: "POST",
5111
+ body: {},
5112
+ mode: "rest",
5113
+ timeoutMs: MCP_RESTART_DEFAULT_TIMEOUT_MS
5114
+ }
5115
+ );
5116
+ }
5117
+ manageRuntimeMcpServer(serverName, action) {
5118
+ return this.client.workspaceJsonRequest(
5119
+ this.workspaceSelector,
5120
+ `/runtime/mcp/${urlEncode(serverName)}/${action}`,
5121
+ "POST /workspaces/:workspace/runtime/mcp/:server/:action",
5122
+ {
5123
+ method: "POST",
5124
+ body: {},
5125
+ mode: "rest",
5126
+ timeoutMs: MCP_RESTART_DEFAULT_TIMEOUT_MS
5127
+ }
5128
+ );
5129
+ }
4802
5130
  ensureRuntime() {
4803
5131
  return this.client.workspaceJsonRequest(
4804
5132
  this.workspaceSelector,
@@ -4819,6 +5147,34 @@ var WorkspaceDaemonClient = class {
4819
5147
  { mode: "rest" }
4820
5148
  );
4821
5149
  }
5150
+ /**
5151
+ * Ask the daemon host to open this workspace's directory in the host's OS
5152
+ * file manager (Finder/Explorer/xdg-open). Only advertised via the
5153
+ * `workspace_local_open` capability; on a headless host the daemon answers
5154
+ * 501 `local_path_open_unavailable`.
5155
+ */
5156
+ async openLocally() {
5157
+ await this.client.workspaceJsonRequest(
5158
+ this.workspaceSelector,
5159
+ "/open",
5160
+ "POST /workspaces/:workspace/open",
5161
+ { method: "POST", body: {}, mode: "rest" }
5162
+ );
5163
+ }
5164
+ /**
5165
+ * Ask the daemon host to open a terminal window in this workspace's
5166
+ * directory (Terminal.app/wt.exe/a Linux terminal emulator). Only
5167
+ * advertised via the `workspace_local_terminal` capability; on a headless
5168
+ * host the daemon answers 501 `local_path_open_unavailable`.
5169
+ */
5170
+ async openTerminalLocally() {
5171
+ await this.client.workspaceJsonRequest(
5172
+ this.workspaceSelector,
5173
+ "/open",
5174
+ "POST /workspaces/:workspace/open",
5175
+ { method: "POST", body: { target: "terminal" }, mode: "rest" }
5176
+ );
5177
+ }
4822
5178
  /**
4823
5179
  * Send text directly through this exact workspace's channel worker.
4824
5180
  * A successful capability pre-flight does not guarantee worker liveness;
@@ -5093,13 +5449,13 @@ var WorkspaceDaemonClient = class {
5093
5449
  { method: "POST", body: opts ?? {}, mode: "rest" }
5094
5450
  );
5095
5451
  }
5096
- workspaceGitPull(opts, cwd) {
5452
+ workspaceGitPull(opts, cwd, timeoutMs) {
5097
5453
  const suffix = cwd != null ? `/git/pull?cwd=${urlEncode(cwd)}` : "/git/pull";
5098
5454
  return this.client.workspaceJsonRequest(
5099
5455
  this.workspaceSelector,
5100
5456
  suffix,
5101
5457
  "POST /workspaces/:workspace/git/pull",
5102
- { method: "POST", body: opts ?? {}, mode: "rest" }
5458
+ { method: "POST", body: opts ?? {}, mode: "rest", timeoutMs }
5103
5459
  );
5104
5460
  }
5105
5461
  workspaceGitCommit(message, opts, cwd) {
@@ -5961,6 +6317,14 @@ var DaemonSessionClient = class _DaemonSessionClient {
5961
6317
  get branch() {
5962
6318
  return this.session.branch;
5963
6319
  }
6320
+ /**
6321
+ * Present when this client was created with a `modelServiceId`: `false`
6322
+ * means the spawn-time model switch failed and the session is running on
6323
+ * the agent default model.
6324
+ */
6325
+ get modelApplied() {
6326
+ return this.session.modelApplied;
6327
+ }
5964
6328
  get lastEventId() {
5965
6329
  return this.lastSeenEventId;
5966
6330
  }
@@ -6179,13 +6543,11 @@ var DaemonSessionClient = class _DaemonSessionClient {
6179
6543
  setModel(modelId) {
6180
6544
  return this.client.setSessionModel(this.sessionId, modelId, this.clientId);
6181
6545
  }
6182
- setConfigOption(configId, value) {
6183
- return this.client.setSessionConfigOption(
6184
- this.sessionId,
6185
- configId,
6186
- value,
6187
- this.clientId
6188
- );
6546
+ setConfigOption(configId, value, opts) {
6547
+ return this.client.setSessionConfigOption(this.sessionId, configId, value, {
6548
+ clientId: this.clientId,
6549
+ persist: opts?.persist
6550
+ });
6189
6551
  }
6190
6552
  getRewindSnapshots() {
6191
6553
  return this.client.getRewindSnapshots(this.sessionId);
@@ -7502,7 +7864,7 @@ function isSessionClosedData(value) {
7502
7864
  }
7503
7865
  __name(isSessionClosedData, "isSessionClosedData");
7504
7866
  function isSessionMetadataUpdatedData(value) {
7505
- if (!isRecord(value) || !isNonEmptyString(value["sessionId"]) || !isOptionalStringOrNull(value["displayName"])) {
7867
+ if (!isRecord(value) || !isNonEmptyString(value["sessionId"]) || !isOptionalStringOrNull(value["displayName"]) || value["titleSource"] !== void 0 && value["titleSource"] !== "manual" && value["titleSource"] !== "auto") {
7506
7868
  return false;
7507
7869
  }
7508
7870
  const prs = value["prs"];
@@ -8902,6 +9264,7 @@ function normalizePlanUpdate(update, base) {
8902
9264
  const stats = meta && isRecord2(meta["stats"]) ? meta["stats"] : void 0;
8903
9265
  const todoPlan = meta && isRecord2(meta["qwenTodoPlan"]) ? meta["qwenTodoPlan"] : void 0;
8904
9266
  const planId = getString2(todoPlan, "id");
9267
+ const sessionWorkflow = meta?.["qwenSessionWorkflow"] === true;
8905
9268
  return {
8906
9269
  ...base,
8907
9270
  type: "tool.update",
@@ -8919,7 +9282,8 @@ function normalizePlanUpdate(update, base) {
8919
9282
  rawOutput: {
8920
9283
  entries,
8921
9284
  ...stats ? { stats } : {},
8922
- ...planId ? { plan: { id: planId, sourceCallId: planCallId } } : {}
9285
+ ...planId ? { plan: { id: planId, sourceCallId: planCallId } } : {},
9286
+ ...sessionWorkflow ? { sessionWorkflow: true } : {}
8923
9287
  }
8924
9288
  };
8925
9289
  }
@@ -10747,7 +11111,8 @@ function compactTaskExecutionOutput(rawOutput, retainSubagentBlocks) {
10747
11111
  "executionMode",
10748
11112
  "terminateReason",
10749
11113
  "tokenCount",
10750
- "executionSummary"
11114
+ "executionSummary",
11115
+ "skills"
10751
11116
  ]) {
10752
11117
  if (rawOutput[key] !== void 0) compact[key] = rawOutput[key];
10753
11118
  }
@@ -12964,6 +13329,7 @@ export {
12964
13329
  PENDING_PROMPT_COMPLETED_EVENT,
12965
13330
  PENDING_PROMPT_STARTED_EVENT,
12966
13331
  STANDALONE_SESSIONS_CAPABILITY,
13332
+ STANDALONE_SESSION_OPTIONS_CAPABILITY,
12967
13333
  SseFramingError,
12968
13334
  UNRECOGNIZED_DIAGNOSTICS_LIMIT,
12969
13335
  WorkspaceDaemonClient,