@qwen-code/qwen-code 0.23.5-dev.codemode-responses.20260915.af4da34719 → 0.23.5-preview.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 (377) hide show
  1. package/bundled/computer-use/SKILL.md +24 -3
  2. package/bundled/qc-helper/docs/configuration/model-providers.md +43 -0
  3. package/bundled/qc-helper/docs/configuration/settings.md +10 -9
  4. package/bundled/qc-helper/docs/extension/agent-plugins.md +1 -0
  5. package/bundled/qc-helper/docs/extension/introduction.md +49 -0
  6. package/bundled/qc-helper/docs/features/channels/dingtalk.md +39 -4
  7. package/bundled/qc-helper/docs/features/channels/overview.md +12 -0
  8. package/bundled/qc-helper/docs/features/commands.md +57 -52
  9. package/bundled/qc-helper/docs/features/computer-use.md +1 -1
  10. package/bundled/qc-helper/docs/features/goals.md +8 -0
  11. package/bundled/qc-helper/docs/features/hooks.md +16 -0
  12. package/bundled/qc-helper/docs/qwen-serve.md +3 -1
  13. package/bundled/workflow-authoring/SKILL.md +48 -22
  14. package/chunks/{MaxSizedBox-3K65WFGY.js → MaxSizedBox-FCF6M53W.js} +40 -43
  15. package/chunks/{StandaloneSessionPicker-JKM33JPY.js → StandaloneSessionPicker-V635V72I.js} +60 -63
  16. package/chunks/{acp-startup-profiler-RUQNTNU5.js → acp-startup-profiler-MOOU37VM.js} +2 -2
  17. package/chunks/{acp-subagent-executor-KIZBB2CL.js → acp-subagent-executor-TND6W2O5.js} +46 -47
  18. package/chunks/{acpAgent-SHI4L5EV.js → acpAgent-3DPWZTNC.js} +954 -322
  19. package/chunks/{agent-AJXNVRX2.js → agent-KIHGINKN.js} +27 -30
  20. package/chunks/{agent-headless-2JPJKYHK.js → agent-headless-EJ4QOUSM.js} +27 -30
  21. package/chunks/{anthropicContentGenerator-H5YPXIDE.js → anthropicContentGenerator-4FGOM5LK.js} +46 -64
  22. package/chunks/{artifact-tool-MFGORTWZ.js → artifact-tool-MUTNH4NI.js} +1 -1
  23. package/chunks/{askUserQuestion-WS4GUT7C.js → askUserQuestion-AKIRLVB5.js} +1 -1
  24. package/chunks/bareMode-QWKZPLPX.js +14 -0
  25. package/chunks/{bridge-KZYSMV4N.js → bridge-MUX5YJZT.js} +46 -49
  26. package/chunks/{ca-GZ4FDJU2.js → ca-WC3A5B3Q.js} +12 -1
  27. package/chunks/{channel-management-service-AFVIT4VH.js → channel-management-service-RRILWSXX.js} +4 -4
  28. package/chunks/{channel-settings-store-IJG52IDV.js → channel-settings-store-7CBIRZER.js} +51 -54
  29. package/chunks/{channel-worker-group-JR6JOELM.js → channel-worker-group-3DUJFZJR.js} +8 -8
  30. package/chunks/{channel-worker-manager-AVKJEZFL.js → channel-worker-manager-E5UW2VLA.js} +8 -8
  31. package/chunks/{channel-worker-supervisor-OOYY7BAQ.js → channel-worker-supervisor-VN33GSEC.js} +5 -5
  32. package/chunks/{chunk-2YMRRI2C.js → chunk-2C5TR6HN.js} +82 -9
  33. package/chunks/{chunk-YDFOHRS5.js → chunk-2GP6BQ2J.js} +1 -1
  34. package/chunks/{chunk-JATZTB7X.js → chunk-347O2YZJ.js} +158 -290
  35. package/chunks/{chunk-RYREFZFH.js → chunk-36NRLIR6.js} +10 -8
  36. package/chunks/{chunk-AXZMWAJV.js → chunk-36SDZ2Q4.js} +8 -0
  37. package/chunks/{chunk-QR4Q425T.js → chunk-3BZI5GDP.js} +1 -1
  38. package/chunks/{chunk-IP6NRULS.js → chunk-3HTUE6ZR.js} +3 -3
  39. package/chunks/{chunk-B2VSRPS6.js → chunk-3LLEB5CU.js} +2 -2
  40. package/chunks/{chunk-L2XNHRDL.js → chunk-3UGMLA4V.js} +10 -8
  41. package/chunks/{chunk-66N6C4EH.js → chunk-3WILPKTJ.js} +2 -2
  42. package/chunks/{chunk-SROLVJFY.js → chunk-3WWPEFMX.js} +1 -1
  43. package/chunks/{chunk-ZKIAGIGH.js → chunk-3XBUCOWS.js} +1 -1
  44. package/chunks/{chunk-737SVOO7.js → chunk-43Y26NPF.js} +3 -3
  45. package/chunks/{chunk-INGBUYL6.js → chunk-4FLUQWJ4.js} +1 -1
  46. package/chunks/{chunk-BTBJEB27.js → chunk-4JFLRHNE.js} +1 -1
  47. package/chunks/{chunk-MJHLKWGJ.js → chunk-4QPVZA5J.js} +70 -23
  48. package/chunks/{chunk-XX5HQLCZ.js → chunk-6OTF7TTE.js} +32 -1
  49. package/chunks/{chunk-4Y2I3CI3.js → chunk-6USYH3EU.js} +99 -6
  50. package/chunks/{chunk-Q3TFRP5G.js → chunk-7D4CV7JH.js} +102 -9
  51. package/chunks/{chunk-EWJTAP3Y.js → chunk-7O5PYQ3M.js} +20 -1
  52. package/chunks/chunk-ADN5KESB.js +28 -0
  53. package/chunks/chunk-AKRSSKUT.js +229 -0
  54. package/chunks/{chunk-IOXJX7XE.js → chunk-AQP3H22J.js} +1 -1
  55. package/chunks/{chunk-YP7QCE7X.js → chunk-AUX2FL5T.js} +24 -7
  56. package/chunks/{chunk-YGFJ6BRT.js → chunk-AZCTY64Z.js} +1 -1
  57. package/chunks/{chunk-5CDDYYNI.js → chunk-B5TJK7B3.js} +1 -1
  58. package/chunks/{chunk-7MKB7L25.js → chunk-B6RMK4ED.js} +4 -4
  59. package/chunks/{chunk-YH24ZJ65.js → chunk-BHG3H6OZ.js} +1 -1
  60. package/chunks/{chunk-BRPYJQDD.js → chunk-BHVF3R6B.js} +7 -5
  61. package/chunks/{chunk-HFJSQ4GL.js → chunk-BTICBRPL.js} +1 -1
  62. package/chunks/{chunk-KZCK5JUN.js → chunk-C3T6HPNM.js} +1 -1
  63. package/chunks/{chunk-UB2MATP5.js → chunk-CDDP4ONL.js} +164 -27
  64. package/chunks/{chunk-OL3TNHFM.js → chunk-CQPM66MG.js} +4 -4
  65. package/chunks/{chunk-WKVZES7O.js → chunk-CXONOVBN.js} +1 -1
  66. package/chunks/{chunk-6IHJLXNF.js → chunk-CXY6BICQ.js} +501 -479
  67. package/chunks/{chunk-I5QPDANL.js → chunk-D3KVGQUV.js} +1 -1
  68. package/chunks/{chunk-LMJSPC55.js → chunk-D7JMO2GP.js} +3 -7
  69. package/chunks/{chunk-CXXAZ2LZ.js → chunk-DC4ZNGH4.js} +1 -1
  70. package/chunks/{chunk-FMLBBXHB.js → chunk-DRAX5YAI.js} +2 -2
  71. package/chunks/{chunk-DOTF2PF2.js → chunk-DRD6VBNH.js} +1 -1
  72. package/chunks/chunk-DX6JTDMR.js +105 -0
  73. package/chunks/{chunk-HJAJ6MR6.js → chunk-E2VSBAFA.js} +53 -11
  74. package/chunks/{chunk-G7ZYRFHS.js → chunk-EIBECN2J.js} +3 -3
  75. package/chunks/{chunk-LWWRJRCD.js → chunk-ESBYWATJ.js} +1 -1
  76. package/chunks/{chunk-2PLQ3CXJ.js → chunk-FASYATAZ.js} +5 -7
  77. package/chunks/{chunk-3ADU34IF.js → chunk-FBY32737.js} +4 -4
  78. package/chunks/{chunk-SIDVJZWH.js → chunk-FCPJXKDG.js} +10 -7
  79. package/chunks/{chunk-5GXJBU7K.js → chunk-FEDFZBGR.js} +3 -3
  80. package/chunks/{chunk-CALVKIIG.js → chunk-FIJODK52.js} +3 -3
  81. package/chunks/{chunk-ZTVYMZBD.js → chunk-FX6PZBOV.js} +3 -3
  82. package/chunks/{chunk-L6DIANLD.js → chunk-G45B3INR.js} +1 -1
  83. package/chunks/{chunk-TATT2THJ.js → chunk-GI7SLDOI.js} +2 -2
  84. package/chunks/chunk-GJKP6XOB.js +1092 -0
  85. package/chunks/{chunk-I6YJZGHS.js → chunk-GSAOVDTH.js} +9 -9
  86. package/chunks/{chunk-7MIOAF77.js → chunk-H6L4NEAT.js} +1 -1
  87. package/chunks/{chunk-MJGJF6G6.js → chunk-HNFKYKHH.js} +103 -22
  88. package/chunks/{chunk-PN6D5LWJ.js → chunk-HX4WXX3H.js} +301 -138
  89. package/chunks/{chunk-HG46TTAG.js → chunk-HXUI5D4H.js} +1 -1
  90. package/chunks/{chunk-JF2CFBDK.js → chunk-HYHSMTRA.js} +4 -4
  91. package/chunks/{chunk-4DZMYFZA.js → chunk-IKBEIDOH.js} +14 -14
  92. package/chunks/{chunk-QEENIXYB.js → chunk-INN5ORKX.js} +1 -1
  93. package/chunks/{chunk-GNV2SFO7.js → chunk-IVFTLUZD.js} +26 -1
  94. package/chunks/{chunk-L2NII7PZ.js → chunk-IXO2OCIP.js} +2 -2
  95. package/chunks/{chunk-6MAHSVMB.js → chunk-K4XMAIRX.js} +30 -33
  96. package/chunks/{chunk-AYMSNIYL.js → chunk-KAYC5FBN.js} +5269 -2785
  97. package/chunks/chunk-KEM7MWS7.js +3541 -0
  98. package/chunks/{chunk-ADQUK6WA.js → chunk-KVC7HZWK.js} +1 -1
  99. package/chunks/{chunk-Z35OSDIT.js → chunk-KVQ3QL4K.js} +3 -3
  100. package/chunks/{chunk-7U5G6JXI.js → chunk-KWYTSSTJ.js} +105 -6
  101. package/chunks/{chunk-PZRAE65J.js → chunk-L2A5VBDL.js} +3019 -2352
  102. package/chunks/{chunk-WD6YQI5M.js → chunk-L3SNMEDW.js} +1 -1
  103. package/chunks/{chunk-BYUAT5OC.js → chunk-L7TJUPNR.js} +19 -3
  104. package/chunks/{chunk-ABNX6E6K.js → chunk-LFKXIOGC.js} +1 -1
  105. package/chunks/{chunk-NFQOOITE.js → chunk-LO2UWNO5.js} +2 -2
  106. package/chunks/{chunk-LWUTZKDU.js → chunk-M22WLKLI.js} +5 -5
  107. package/chunks/{chunk-54B2LTKP.js → chunk-M23GFJ5B.js} +24 -5
  108. package/chunks/{chunk-VGY2RGXL.js → chunk-M4U2LTD2.js} +1 -1
  109. package/chunks/{chunk-ZNI3YJHS.js → chunk-MFDKHGTD.js} +1 -1
  110. package/chunks/{chunk-R7OO56VZ.js → chunk-MMRGG6R4.js} +1 -1
  111. package/chunks/{chunk-E6IR653O.js → chunk-MO4XID7S.js} +1 -1
  112. package/chunks/{chunk-FZQQMVLB.js → chunk-NKTMUPHJ.js} +3 -6
  113. package/chunks/{chunk-V77DTVCM.js → chunk-NQ272MQG.js} +1 -1
  114. package/chunks/{chunk-TDFLM7BE.js → chunk-OALXNGUA.js} +6 -6
  115. package/chunks/{chunk-FBDHP23D.js → chunk-OSG23MR3.js} +1 -1
  116. package/chunks/{chunk-NJ2OFVUX.js → chunk-P42KMMU6.js} +860 -1
  117. package/chunks/{chunk-Y33TCKXL.js → chunk-PF7GAP6K.js} +60 -58
  118. package/chunks/{chunk-MQRLLBMQ.js → chunk-PPJSG2PU.js} +2 -2
  119. package/chunks/{chunk-EPVEPTI3.js → chunk-PZRXWQUA.js} +753 -18
  120. package/chunks/{chunk-OLN7QX4P.js → chunk-Q54O3EIA.js} +30 -28
  121. package/chunks/{chunk-DQH3EVAD.js → chunk-QGEISOJ2.js} +4 -4
  122. package/chunks/{chunk-3M4O2AY3.js → chunk-QHSOINX6.js} +2 -2
  123. package/chunks/{chunk-HIQEL7EM.js → chunk-QIPLWW6Q.js} +1 -1
  124. package/chunks/chunk-QMENOK5T.js +1246 -0
  125. package/chunks/chunk-QT6Z2IBF.js +347 -0
  126. package/chunks/{chunk-TBSCTWKF.js → chunk-RN6A53UJ.js} +25 -0
  127. package/chunks/{chunk-65BKWMMH.js → chunk-RRI764F7.js} +21 -19
  128. package/chunks/{chunk-YI2YCNSP.js → chunk-SENYKRII.js} +1 -1
  129. package/chunks/chunk-SFHX5G2S.js +2796 -0
  130. package/chunks/chunk-SK3RZOPS.js +34 -0
  131. package/chunks/{chunk-MD6KXINN.js → chunk-SOLRBF7L.js} +13 -9
  132. package/chunks/{chunk-6BCN3VOY.js → chunk-SSWTA7CH.js} +12 -12
  133. package/chunks/{chunk-IAS753HG.js → chunk-SYMXYRM5.js} +11 -2
  134. package/chunks/{chunk-FGROOEKM.js → chunk-TDKUXSJO.js} +34 -6
  135. package/chunks/{chunk-ZJ7JQUGY.js → chunk-TKF4JINY.js} +1 -1
  136. package/chunks/{chunk-RVK37FWG.js → chunk-TPY6HW55.js} +4 -4
  137. package/chunks/{chunk-EDB556X7.js → chunk-TRZ22SG5.js} +1 -1
  138. package/chunks/{chunk-7LG4MUUD.js → chunk-TXTCM3TC.js} +4 -4
  139. package/chunks/{chunk-5ODRE7E5.js → chunk-U4AASWUQ.js} +28 -12
  140. package/chunks/{chunk-WPMRT4AR.js → chunk-UQGRJTDK.js} +2 -2
  141. package/chunks/{chunk-JBS56C7O.js → chunk-UZSB57EV.js} +6 -8
  142. package/chunks/{chunk-S4M6BDNE.js → chunk-V4JJAVHQ.js} +2 -2
  143. package/chunks/chunk-VEXUA6DX.js +1026 -0
  144. package/chunks/{chunk-ME4JBHSB.js → chunk-VQDWCQOE.js} +2 -0
  145. package/chunks/{chunk-3XXDCC5C.js → chunk-VU3XMZ5I.js} +23 -4
  146. package/chunks/{chunk-RD2HAF25.js → chunk-WL36KHUQ.js} +6 -6
  147. package/chunks/{chunk-WYRSEVBQ.js → chunk-WNQIJTOP.js} +8 -8
  148. package/chunks/{chunk-GTBXQ5W2.js → chunk-WSJI6ODG.js} +99 -30
  149. package/chunks/{chunk-VN5G33G7.js → chunk-WZWTY7SG.js} +6 -6
  150. package/chunks/{chunk-EKMJR7M3.js → chunk-X7AYIXC7.js} +1 -1
  151. package/chunks/{chunk-IBRQG2MP.js → chunk-XAJZFGD2.js} +11 -11
  152. package/chunks/{chunk-VRQZESKP.js → chunk-XICCGDWF.js} +2 -2
  153. package/chunks/{chunk-OZ2KDR2L.js → chunk-Y2KJC55Y.js} +12 -7
  154. package/chunks/{chunk-2S2WIGCM.js → chunk-Y4NNIGYO.js} +1 -1
  155. package/chunks/{chunk-J7LBAKDH.js → chunk-YL3UJML3.js} +7 -7
  156. package/chunks/{chunk-GSS4SZNG.js → chunk-YP2K3WOS.js} +40 -56
  157. package/chunks/{chunk-ZZUXUBEB.js → chunk-YQQ2U7AS.js} +8 -5
  158. package/chunks/{chunk-FAWTMDX7.js → chunk-YXHY6BKS.js} +15 -0
  159. package/chunks/{chunk-VIV2I3R7.js → chunk-YZXSDPOQ.js} +140 -39
  160. package/chunks/{chunk-KZ63S3HX.js → chunk-ZFHKUQZ4.js} +3 -3
  161. package/chunks/{chunk-B6KSTADQ.js → chunk-ZMYKNKET.js} +6 -6
  162. package/chunks/{codex-subagent-executor-6M7TD3MF.js → codex-subagent-executor-AEAIQZDC.js} +48 -49
  163. package/chunks/{config-utils-TB4QERW7.js → config-utils-KX2YS725.js} +43 -46
  164. package/chunks/{contextCommand-BFQMDECM.js → contextCommand-RV6Y5LNJ.js} +41 -44
  165. package/chunks/{core-runtime-Z2QJJMHR.js → core-runtime-ZI4RTOJQ.js} +45 -48
  166. package/chunks/{create-sub-session-GE4U3D7C.js → create-sub-session-BBWFQARJ.js} +46 -48
  167. package/chunks/{daemon-NJB4PWZ7.js → daemon-INCM4VBX.js} +3 -1
  168. package/chunks/{daemon-git-worktree-guard-IPA22S72.js → daemon-git-worktree-guard-KECEMV6A.js} +39 -42
  169. package/chunks/{daemon-status-provider-2U5WPCCB.js → daemon-status-provider-NULJNAEV.js} +53 -56
  170. package/chunks/{daemon-trust-policy-GEIGMVDQ.js → daemon-trust-policy-S4KWGPV3.js} +47 -50
  171. package/chunks/{daemon-trust-policy-monitor-JETBW5FX.js → daemon-trust-policy-monitor-546N5ZVL.js} +47 -50
  172. package/chunks/{de-VGY3VNBU.js → de-6AVKPTXQ.js} +11 -0
  173. package/chunks/{deferred-core-runtime-LANRK77C.js → deferred-core-runtime-T23ZT443.js} +39 -42
  174. package/chunks/{dist-NIOJXMGY.js → dist-4P3ZJYGI.js} +1 -1
  175. package/chunks/{dist-VDLSBCLM.js → dist-7MGRENQ5.js} +1 -1
  176. package/chunks/{dist-SE4J6Z4O.js → dist-BNW423XT.js} +326 -77
  177. package/chunks/{dist-TFGETXFN.js → dist-CESMUYGN.js} +4 -4
  178. package/chunks/{dist-MPUZZOG5.js → dist-DBBOFWSC.js} +1 -1
  179. package/chunks/{dist-T6DDPDLQ.js → dist-G5UMXIGF.js} +1 -1
  180. package/chunks/{dist-PA7WPFVE.js → dist-UXVNLQHG.js} +3 -3
  181. package/chunks/{dist-GUB7QRYA.js → dist-VA4LREAQ.js} +2 -2
  182. package/chunks/{dist-2QYIVNS6.js → dist-XDRTR4QP.js} +1 -1
  183. package/chunks/{edit-QC63PJOZ.js → edit-CMSQB7NP.js} +27 -30
  184. package/chunks/{en-E5ZO5TZW.js → en-56QLKXS2.js} +23 -1
  185. package/chunks/{enter-worktree-CAARFWBI.js → enter-worktree-DA6A4XC5.js} +3 -3
  186. package/chunks/{enterPlanMode-5TMWDRXD.js → enterPlanMode-UDPMNESD.js} +27 -30
  187. package/chunks/{environment-TNQVM5B3.js → environment-TSQJUTPV.js} +42 -45
  188. package/chunks/{errors-KWDDLG7P.js → errors-RIVYJS6T.js} +41 -44
  189. package/chunks/{exit-worktree-JXGGUOBP.js → exit-worktree-4H6Z2VQI.js} +3 -3
  190. package/chunks/{exitPlanMode-CLEWPZIE.js → exitPlanMode-BYBBFN2T.js} +27 -30
  191. package/chunks/{fast-path-PMRLQT7J.js → fast-path-F2CYDDZ4.js} +4 -4
  192. package/chunks/{fast-path-settings-XDYX7X5Z.js → fast-path-settings-N2VGRGDJ.js} +2 -2
  193. package/chunks/{fr-UAZJJH5N.js → fr-EBUDHJL3.js} +11 -0
  194. package/chunks/{glob-3AK4KKCE.js → glob-Z2JMJKKN.js} +27 -30
  195. package/chunks/{goal-tools-FD6OCE6Q.js → goal-tools-HXVVLGCV.js} +27 -30
  196. package/chunks/{handleAutoUpdate-QUNNMMY6.js → handleAutoUpdate-FZP45KOR.js} +43 -46
  197. package/chunks/{i18n-DVN326VM.js → i18n-OTB62AKW.js} +40 -43
  198. package/chunks/{image-gen-5G2TQ3DY.js → image-gen-HIAZCB5T.js} +6 -7
  199. package/chunks/{initializer-JHEJBPVJ.js → initializer-4JXZEC4B.js} +47 -50
  200. package/chunks/{installationInfo-DYOI4I5U.js → installationInfo-2IJV5QKC.js} +39 -42
  201. package/chunks/{ja-2RITCMAJ.js → ja-NCDT4CGV.js} +11 -0
  202. package/chunks/{list-MW74DDMO.js → list-KQSQ4A5G.js} +50 -53
  203. package/chunks/{llm-HUDP76IA.js → llm-LSUBOJAR.js} +154 -974
  204. package/chunks/{llm-content-generator-KYD6ZEM6.js → llm-content-generator-MLIONRXE.js} +17 -12
  205. package/chunks/{loadedSettingsAdapter-RRAZOPRB.js → loadedSettingsAdapter-TZTTNRHI.js} +47 -50
  206. package/chunks/{loggingContentGenerator-MHE6Z2OZ.js → loggingContentGenerator-TUPEXFMM.js} +31 -34
  207. package/chunks/{loop-wakeup-VG6CGBQA.js → loop-wakeup-ZBVRI6VH.js} +1 -1
  208. package/chunks/{managed-npm-update-3G3O3T3R.js → managed-npm-update-WEA5XMFZ.js} +40 -43
  209. package/chunks/{mcp-JGLBFJQB.js → mcp-TFDTUPIA.js} +47 -50
  210. package/chunks/{model-configuration-EGWMLK4P.js → model-configuration-ZCAKKIOF.js} +48 -51
  211. package/chunks/{modelConfigUtils-H4WFGWQD.js → modelConfigUtils-J3ZPW7ZK.js} +41 -44
  212. package/chunks/{monitor-62V72TGX.js → monitor-CI7YE7MT.js} +29 -32
  213. package/chunks/{nonInteractiveCli-GYKHG7RX.js → nonInteractiveCli-GPT3TVOK.js} +96 -98
  214. package/chunks/{notebook-edit-HOJLHP3F.js → notebook-edit-3WCVRNGL.js} +27 -30
  215. package/chunks/{openaiContentGenerator-ZAJTUWVO.js → openaiContentGenerator-OGILGUZE.js} +12 -17
  216. package/chunks/{openaiResponsesContentGenerator-AWRYZLJU.js → openaiResponsesContentGenerator-NXOXUPFM.js} +45 -13
  217. package/chunks/{pidfile-CS7LHAN5.js → pidfile-GBTBIGHF.js} +39 -42
  218. package/chunks/{process-registry-X6ZCASEN.js → process-registry-7LAPI3ZB.js} +1 -1
  219. package/chunks/{processUtils-OWQU3JQM.js → processUtils-O4II3RYH.js} +2 -2
  220. package/chunks/{prompt-terminal-ledger-76P527XD.js → prompt-terminal-ledger-ILIXZI3E.js} +40 -43
  221. package/chunks/{pt-5ZF7ZQUV.js → pt-FYYFWYUC.js} +11 -0
  222. package/chunks/{qwenContentGenerator-QZCQ3UTX.js → qwenContentGenerator-I4LRYADV.js} +33 -36
  223. package/chunks/{qwenOAuth2-WIEUEFEY.js → qwenOAuth2-3J66TOT5.js} +6 -7
  224. package/chunks/{read-file-KR5BES2E.js → read-file-G4XKW2CS.js} +5 -9
  225. package/chunks/{record-artifact-PXMNP7GZ.js → record-artifact-L3CFJOMA.js} +2 -2
  226. package/chunks/{report-findings-W6GR7SYZ.js → report-findings-LY5HQY4K.js} +3 -3
  227. package/chunks/{resumeHistoryUtils-36NM5S3D.js → resumeHistoryUtils-YPJU4XFE.js} +44 -47
  228. package/chunks/{ripGrep-QGFIVODS.js → ripGrep-AAKMALLM.js} +7 -11
  229. package/chunks/{ru-7BNZFQKG.js → ru-RHEB3RNS.js} +11 -0
  230. package/chunks/{run-qwen-serve-UFEOUIDD.js → run-qwen-serve-ZVEKGS7Y.js} +177 -98
  231. package/chunks/{runtime-7LTR2C7Q.js → runtime-SJCRYNPA.js} +52 -55
  232. package/chunks/safe-mode-KLGUG54M.js +11 -0
  233. package/chunks/sandbox-UIXL423Z.js +146 -0
  234. package/chunks/sandboxConfig-CY343YNJ.js +114 -0
  235. package/chunks/{scheduled-tasks-MV22T3JO.js → scheduled-tasks-5UGBEVNZ.js} +50 -53
  236. package/chunks/{scheduler-HSNQ53ML.js → scheduler-GCZYLZ2P.js} +41 -44
  237. package/chunks/{sdk-exporters-http-3R2TRQHE.js → sdk-exporters-http-DR4G663K.js} +1 -1
  238. package/chunks/{sdk-impl-4WF3VZ2F.js → sdk-impl-SJR26MQF.js} +3 -3
  239. package/chunks/{send-message-UMJKN27Q.js → send-message-DN76MXDX.js} +6 -6
  240. package/chunks/{serve-LDD4FEJQ.js → serve-2XXQLVK2.js} +48 -51
  241. package/chunks/{server-IKTZFW3E.js → server-UHMKPCAZ.js} +408 -211
  242. package/chunks/{session-T77EXOOI.js → session-ZLUK7E4P.js} +108 -108
  243. package/chunks/{session-attachments-root-FBASBVAO.js → session-attachments-root-DHQM5IEZ.js} +39 -42
  244. package/chunks/{session-pr-refresh-2BHKIMIN.js → session-pr-refresh-3OMTQWCZ.js} +48 -51
  245. package/chunks/{settings-TJNUFBGG.js → settings-P4DHIIUP.js} +50 -53
  246. package/chunks/{shell-HDI5VPGD.js → shell-IMFUVQQ5.js} +27 -30
  247. package/chunks/{skill-VTA6FNDX.js → skill-NB5RJGZW.js} +7 -11
  248. package/chunks/{skill-settings-K4LSGCKA.js → skill-settings-IXG5CTQO.js} +47 -50
  249. package/chunks/{spawnChannel-YSGSPD5D.js → spawnChannel-Q3YALTCJ.js} +44 -45
  250. package/chunks/{standalone-update-O5LYCCMB.js → standalone-update-H5OJ7MM7.js} +41 -44
  251. package/chunks/{start-opentui-ui-CS6HKYCE.js → start-opentui-ui-JKAIWGF7.js} +733 -386
  252. package/chunks/{startInteractiveUI-IVP5HEDD.js → startInteractiveUI-YRPOT6GH.js} +370 -337
  253. package/chunks/task-create-75HVPEAH.js +1 -1
  254. package/chunks/{team-create-DW4KE2PR.js → team-create-2XTBYRJF.js} +31 -34
  255. package/chunks/{team-plan-approval-33UL4JDG.js → team-plan-approval-CFNWW7ZQ.js} +27 -30
  256. package/chunks/{terminal-image-renderer-4FK76L22.js → terminal-image-renderer-UDPJPGPQ.js} +39 -42
  257. package/chunks/{theme-manager-UQ3EKEJ4.js → theme-manager-SK57EKMO.js} +39 -42
  258. package/chunks/{tool-search-QUOG6M6M.js → tool-search-ZHTJU2MV.js} +5 -9
  259. package/chunks/{total-session-admission-QRWPWSK5.js → total-session-admission-UUZBDQCG.js} +47 -50
  260. package/chunks/{tree-sitter-ALGO6NDO.js → tree-sitter-4D7QS7F6.js} +1 -1
  261. package/chunks/{tree-sitter-bash-H6YH7EBF.js → tree-sitter-bash-VEJGF5XF.js} +1 -1
  262. package/chunks/{trustedFolders-HESP75BK.js → trustedFolders-4LDBLNTS.js} +40 -43
  263. package/chunks/{update-relaunch-YROJ7A26.js → update-relaunch-LI7GRP36.js} +5 -5
  264. package/chunks/{updateCheck-CUKTRHID.js → updateCheck-PKSSORPO.js} +43 -46
  265. package/chunks/{useAutoAcceptIndicator-BQGSRBHX.js → useAutoAcceptIndicator-I32UEQPI.js} +50 -53
  266. package/chunks/{validateNonInterActiveAuth-UM5U2ZZI.js → validateNonInterActiveAuth-YFPCYYNL.js} +93 -95
  267. package/chunks/{version-A6G2KO4K.js → version-4MTL4JVU.js} +1 -1
  268. package/chunks/{web-fetch-A3RMCVQY.js → web-fetch-O6RG6ISB.js} +9 -13
  269. package/chunks/{web-search-3XGJ773E.js → web-search-JHAXVEMD.js} +9 -14
  270. package/chunks/{web-shell-static-T7UGLVE4.js → web-shell-static-FFWCUUZS.js} +8 -4
  271. package/chunks/{workflow-4TWAFNIB.js → workflow-O7L6VDYU.js} +396 -113
  272. package/chunks/{workspace-providers-status-GNTJ4OIZ.js → workspace-providers-status-WRX6CJM4.js} +53 -56
  273. package/chunks/{workspace-registration-store-D3K34O63.js → workspace-registration-store-7G4E7YPY.js} +1 -1
  274. package/chunks/{workspace-registry-ZE5ZSWNF.js → workspace-registry-SXIMGT4D.js} +47 -50
  275. package/chunks/{workspace-runtime-coordinator-DEXM2635.js → workspace-runtime-coordinator-7DOEHXYT.js} +47 -50
  276. package/chunks/{workspace-service-OGYORPWD.js → workspace-service-HDXOZMYC.js} +53 -56
  277. package/chunks/{workspace-skills-status-4W4H3BGJ.js → workspace-skills-status-VN4L37CA.js} +50 -53
  278. package/chunks/{workspace-trust-reconciler-BHR7S7UJ.js → workspace-trust-reconciler-XEBW5FUL.js} +57 -60
  279. package/chunks/{write-file-EP5AEO5E.js → write-file-LKX4ETIO.js} +29 -32
  280. package/chunks/{zh-V2EYTYJP.js → zh-F76MZTL3.js} +23 -1
  281. package/chunks/{zh-TW-7PRVUGLW.js → zh-TW-S3YTQ4DS.js} +23 -1
  282. package/chunks/{zoom-image-DDEGWG3R.js → zoom-image-RDPRTP4B.js} +5 -9
  283. package/cli.js +19 -15
  284. package/export-transcript-document.css +1 -1
  285. package/export-transcript-document.js +151 -150
  286. package/locales/ca.js +19 -2
  287. package/locales/de.js +18 -0
  288. package/locales/en.js +33 -2
  289. package/locales/fr.js +18 -0
  290. package/locales/ja.js +18 -0
  291. package/locales/pt.js +18 -0
  292. package/locales/ru.js +18 -0
  293. package/locales/zh-TW.js +33 -2
  294. package/locales/zh.js +33 -2
  295. package/package.json +3 -3
  296. package/web-shell/assets/{abnfDiagram-VCTEODGH-BtpzKw3A.js → abnfDiagram-VCTEODGH-RxykUDmi.js} +1 -1
  297. package/web-shell/assets/{arc-CQiVKZJP.js → arc-CZpgGCJC.js} +1 -1
  298. package/web-shell/assets/{architectureDiagram-5GKGNRK7-ekIPBb2d.js → architectureDiagram-5GKGNRK7-BHSMzNDT.js} +1 -1
  299. package/web-shell/assets/{blockDiagram-NRAW4CY4-BrRWkWri.js → blockDiagram-NRAW4CY4-Bn4mF9SZ.js} +1 -1
  300. package/web-shell/assets/{c4Diagram-UCG6FXSJ-qYS8CYZ3.js → c4Diagram-UCG6FXSJ-CBM-Bj6t.js} +1 -1
  301. package/web-shell/assets/channel-DFYs_LlK.js +1 -0
  302. package/web-shell/assets/{chunk-2Q5K7J3B-ZasyyEZm.js → chunk-2Q5K7J3B-D5Fin58O.js} +1 -1
  303. package/web-shell/assets/{chunk-5VM5RSS4-C_IzCGeA.js → chunk-5VM5RSS4-CY05weF7.js} +1 -1
  304. package/web-shell/assets/{chunk-F27PBJKO-C25NZOyD.js → chunk-F27PBJKO-3neZnj5Y.js} +1 -1
  305. package/web-shell/assets/{chunk-G27WJ6UU-XPOHNSGX.js → chunk-G27WJ6UU-Cd7EU4BE.js} +1 -1
  306. package/web-shell/assets/{chunk-JWPE2WC7-BQBh0Xni.js → chunk-JWPE2WC7-DwK1mqFw.js} +1 -1
  307. package/web-shell/assets/{chunk-LCL6LL3I-CoShjpX7.js → chunk-LCL6LL3I-Sl7vY22C.js} +1 -1
  308. package/web-shell/assets/{chunk-POPQ4Y6H-BwRmCDSz.js → chunk-POPQ4Y6H-BXNzpbVg.js} +1 -1
  309. package/web-shell/assets/{chunk-SVP7TREG-DSzE5-Mw.js → chunk-SVP7TREG-DjjButcp.js} +1 -1
  310. package/web-shell/assets/{chunk-XXDRQBXY-BQSQv30h.js → chunk-XXDRQBXY-DNOiCjOJ.js} +1 -1
  311. package/web-shell/assets/classDiagram-DTDB5LWJ-DnGrKXoM.js +1 -0
  312. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DnGrKXoM.js +1 -0
  313. package/web-shell/assets/{cose-bilkent-JH36ORCC-XVUVTHVo.js → cose-bilkent-JH36ORCC-BUnker7a.js} +1 -1
  314. package/web-shell/assets/{cynefin-OW5HDTMX-CrsKx4lQ.js → cynefin-OW5HDTMX-DcUgdWE5.js} +1 -1
  315. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BPeZEuHw.js → cynefinDiagram-5FMLGOSQ-CvDKsZsL.js} +1 -1
  316. package/web-shell/assets/{dagre-3AP2YEHR-D31cQ2Qs.js → dagre-3AP2YEHR-jpCmUbr1.js} +1 -1
  317. package/web-shell/assets/{diagram-S7CK7UJ4-zyiG097Q.js → diagram-S7CK7UJ4-DBe_bKE5.js} +1 -1
  318. package/web-shell/assets/{diagram-UQ7AKVKN-Br3vtfsy.js → diagram-UQ7AKVKN-oXvPpDgs.js} +1 -1
  319. package/web-shell/assets/{diagram-VSXAHHWV-Bxkhjx4u.js → diagram-VSXAHHWV-BD7-_SGh.js} +1 -1
  320. package/web-shell/assets/{diagram-VX7I27RA-BQH8QiDk.js → diagram-VX7I27RA-DOJL0wub.js} +1 -1
  321. package/web-shell/assets/{diagram-Z3DM3KII-B_aQ1cw0.js → diagram-Z3DM3KII-DRIiodDD.js} +1 -1
  322. package/web-shell/assets/{ebnfDiagram-PWID7BFC-B9N7BRQE.js → ebnfDiagram-PWID7BFC-Db31Ulmb.js} +1 -1
  323. package/web-shell/assets/{erDiagram-SSCWMZ5O-Cx6Hb1Re.js → erDiagram-SSCWMZ5O-CVHhwI2_.js} +1 -1
  324. package/web-shell/assets/{flowDiagram-A5DVABFB-DTuLP7GU.js → flowDiagram-A5DVABFB-DWOFy1FK.js} +1 -1
  325. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DYS3d-sL.js → ganttDiagram-EL5Y4UJY-C0sxQtPd.js} +1 -1
  326. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Cp0EGx04.js → gitGraphDiagram-WWUBYQGX-CNituBYC.js} +1 -1
  327. package/web-shell/assets/index-B15NlwB8.js +2213 -0
  328. package/web-shell/assets/index-BSrS0tQ6.css +36 -0
  329. package/web-shell/assets/{index-45-LkPDB.js → index-gm9tLk7h.js} +1 -1
  330. package/web-shell/assets/{infoDiagram-RXCK75RN-9--kukiT.js → infoDiagram-RXCK75RN-CxhJYtIR.js} +1 -1
  331. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CGBdsDLD.js → ishikawaDiagram-5VMMS53U-By2mchUy.js} +1 -1
  332. package/web-shell/assets/{journeyDiagram-EYS64GPL-DeXhcscd.js → journeyDiagram-EYS64GPL-CVH-OweI.js} +1 -1
  333. package/web-shell/assets/{kanban-definition-3QL26DDD-CFdvsU3b.js → kanban-definition-3QL26DDD-Cc9dQXLy.js} +1 -1
  334. package/web-shell/assets/knowledge-Dg9788h4.svg +1 -0
  335. package/web-shell/assets/{layout-DAnwQ3KB.js → layout-C_60ysHw.js} +1 -1
  336. package/web-shell/assets/{linear-CTo7v7Nh.js → linear-BvAVfqwu.js} +1 -1
  337. package/web-shell/assets/{mermaid.core-jggSxF1i.js → mermaid.core-C3CoBKAc.js} +6 -6
  338. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DzIepvlJ.js → mindmap-definition-FBJOCRG2-Cuu8Q8LM.js} +1 -1
  339. package/web-shell/assets/{pegDiagram-XKGWAZYB-BFGS9GJv.js → pegDiagram-XKGWAZYB-DmAeyDO2.js} +1 -1
  340. package/web-shell/assets/{pieDiagram-E7YTZNPT-B2UUcNIT.js → pieDiagram-E7YTZNPT-B7vbB_xv.js} +1 -1
  341. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-BgM6htrX.js → quadrantDiagram-AXDQQJYC-BqOBkRR7.js} +1 -1
  342. package/web-shell/assets/{railroadDiagram-O6MQD6OU-Dk9cS7N-.js → railroadDiagram-O6MQD6OU-sI06lZIu.js} +1 -1
  343. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-C9oRg7xi.js → requirementDiagram-EFPCY7ZU-Bg13d10S.js} +1 -1
  344. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-B-_c7GzI.js → sankeyDiagram-P5KCCOFB-WFOzZHrR.js} +1 -1
  345. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-R0M-347u.js → sequenceDiagram-WJ2MYXX4-CCdRbA4E.js} +1 -1
  346. package/web-shell/assets/{sizeCapture-X5ZJPWSS-Df0f8UAW.js → sizeCapture-X5ZJPWSS-BH5F3bGg.js} +1 -1
  347. package/web-shell/assets/{stateDiagram-HBIQ2CUA-CsUEfAA-.js → stateDiagram-HBIQ2CUA-NwS2X3QB.js} +1 -1
  348. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-1aU2JZXO.js +1 -0
  349. package/web-shell/assets/{swimlanes-XN3QIQJK-9OGHVSrx.js → swimlanes-XN3QIQJK-Bm38pM28.js} +1 -1
  350. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Dp-u6kQG.js +8 -0
  351. package/web-shell/assets/{timeline-definition-24CTP7MA-DAfGqS2B.js → timeline-definition-24CTP7MA-Do-agLSo.js} +1 -1
  352. package/web-shell/assets/{vennDiagram-4TSXK5OY-CKATpwHi.js → vennDiagram-4TSXK5OY-aggLfZzl.js} +1 -1
  353. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CQHdhTrm.js → wardleyDiagram-VM6X3IG4-D5JR3mXX.js} +1 -1
  354. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-5k9NLqlY.js → xychartDiagram-S5SC5T6Z-DhtLDuXs.js} +1 -1
  355. package/web-shell/index.html +2 -2
  356. package/chunks/chunk-7MIBD3LG.js +0 -137
  357. package/chunks/chunk-ARDHE6MM.js +0 -235
  358. package/chunks/chunk-C75BXMPM.js +0 -169
  359. package/chunks/chunk-ERU3SDXT.js +0 -27
  360. package/chunks/chunk-FPGTNKCP.js +0 -251
  361. package/chunks/chunk-JL6APGBX.js +0 -43
  362. package/chunks/chunk-L5OBTAXN.js +0 -137
  363. package/chunks/chunk-MZ3W3F44.js +0 -4172
  364. package/chunks/chunk-OIDF7L67.js +0 -514
  365. package/chunks/chunk-VSXX6VUI.js +0 -2812
  366. package/chunks/chunk-ZFYACOVD.js +0 -1416
  367. package/web-shell/assets/channel-DSQQnOZj.js +0 -1
  368. package/web-shell/assets/classDiagram-DTDB5LWJ-V94ta08R.js +0 -1
  369. package/web-shell/assets/classDiagram-v2-JRS7N3AN-V94ta08R.js +0 -1
  370. package/web-shell/assets/index-H8um-iEl.js +0 -2207
  371. package/web-shell/assets/index-n6N-2a3v.css +0 -36
  372. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-CnSuTPJ2.js +0 -1
  373. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Bb7TcWQw.js +0 -8
  374. package/chunks/{chunk-QZW6WRB7.js → chunk-5NUKK2DT.js} +2 -2
  375. package/chunks/{chunk-JS73NNWF.js → chunk-FUSEMYFX.js} +0 -0
  376. package/chunks/{chunk-SVWWF5TZ.js → chunk-WVURIAEE.js} +3 -3
  377. package/chunks/{task-update-RI7QNVDP.js → task-update-3LSYQDRW.js} +4 -4
@@ -6,6 +6,10 @@ import {
6
6
  import {
7
7
  stringifyGenAiJson
8
8
  } from "./chunk-KFFCDLKV.js";
9
+ import {
10
+ GOAL_STATE_EVENT_CAUSES,
11
+ makeGoalStateEvent
12
+ } from "./chunk-CDDP4ONL.js";
9
13
  import {
10
14
  atomicWriteJSON
11
15
  } from "./chunk-XFFRI3WM.js";
@@ -16,7 +20,7 @@ import {
16
20
  getMeter,
17
21
  isTelemetrySdkInitialized,
18
22
  isValidSensitiveSpanAttributeMaxLength
19
- } from "./chunk-4Y2I3CI3.js";
23
+ } from "./chunk-6USYH3EU.js";
20
24
  import {
21
25
  FatalConfigError,
22
26
  QWEN_DIR,
@@ -7615,6 +7619,801 @@ init_esbuild_shims();
7615
7619
  // packages/core/src/telemetry/index.ts
7616
7620
  init_esbuild_shims();
7617
7621
 
7622
+ // packages/core/src/telemetry/goal-events.ts
7623
+ init_esbuild_shims();
7624
+
7625
+ // packages/core/src/goals/goal-reducer.ts
7626
+ init_esbuild_shims();
7627
+
7628
+ // packages/core/src/goals/goal-protocol.ts
7629
+ init_esbuild_shims();
7630
+
7631
+ // packages/core/src/utils/terminalSafe.ts
7632
+ init_esbuild_shims();
7633
+ var TERMINAL_OSC_REGEX = /\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;
7634
+ var TERMINAL_CSI_REGEX = /\x1b\[[\d;?]*[a-zA-Z]/g;
7635
+ var TERMINAL_SHIFT_DCS_REGEX = /\x1b[NOP]/g;
7636
+ function stripTerminalControlSequences(s) {
7637
+ return s.replace(TERMINAL_OSC_REGEX, " ").replace(TERMINAL_CSI_REGEX, " ").replace(TERMINAL_SHIFT_DCS_REGEX, " ").replace(/[\x00-\x1f\x7f-\x9f]/g, " ");
7638
+ }
7639
+ __name(stripTerminalControlSequences, "stripTerminalControlSequences");
7640
+ function isBidiControlChar(code) {
7641
+ return code >= 8234 && code <= 8238 || code >= 8294 && code <= 8297;
7642
+ }
7643
+ __name(isBidiControlChar, "isBidiControlChar");
7644
+ function stripDisplayControlChars(text) {
7645
+ let out = "";
7646
+ for (let i = 0; i < text.length; i++) {
7647
+ const code = text.charCodeAt(i);
7648
+ if (code === 9) {
7649
+ out += text[i];
7650
+ continue;
7651
+ }
7652
+ if (code < 32) continue;
7653
+ if (code >= 128 && code <= 159) continue;
7654
+ if (isBidiControlChar(code)) continue;
7655
+ out += text[i];
7656
+ }
7657
+ return out;
7658
+ }
7659
+ __name(stripDisplayControlChars, "stripDisplayControlChars");
7660
+ var NOTIFICATION_LABEL_MAX_LENGTH = 80;
7661
+ function truncateNotificationLabel(label) {
7662
+ const normalized = stripDisplayControlChars(label).replace(/\s+/g, " ").trim();
7663
+ const codePoints = [...normalized];
7664
+ if (codePoints.length <= NOTIFICATION_LABEL_MAX_LENGTH) {
7665
+ return normalized;
7666
+ }
7667
+ return codePoints.slice(0, NOTIFICATION_LABEL_MAX_LENGTH - 3).join("") + "...";
7668
+ }
7669
+ __name(truncateNotificationLabel, "truncateNotificationLabel");
7670
+
7671
+ // packages/core/src/goals/goal-protocol.ts
7672
+ var GOAL_STATE_VERSION = 2;
7673
+ var GOAL_PROPOSAL_REASON_MAX_CHARACTERS = 8e3;
7674
+ var GOAL_PROPOSAL_REASON_MAX_BYTES = 16e3;
7675
+ var GOAL_CHECKPOINT_CLAIM_LIMIT = 32;
7676
+ var GOAL_CHECKPOINT_CLAIM_MAX_CHARACTERS = 2e3;
7677
+ var GOAL_CHECKPOINT_CLAIM_MAX_BYTES = 16e3;
7678
+ var GOAL_CHECKPOINT_SOURCE_REFERENCE_LIMIT = 32;
7679
+ var GOAL_EVIDENCE_CATALOG_EXHAUSTED_REASON = "The current Goal revision exceeded the bounded evidence catalog. Automatic retries cannot recover. Edit or replace the Goal before resuming it.";
7680
+ var GOAL_CHECKPOINT_REQUEST_TOO_LARGE_REASON = "The current Goal revision exceeded the checkpoint verifier request limit. Automatic retries cannot recover. Edit or replace the Goal before resuming it.";
7681
+ var GOAL_CHECKPOINT_STALL_LIMIT = 3;
7682
+ var GOAL_NO_PROGRESS_TURN_LIMIT = 3;
7683
+ var GOAL_CHECKPOINT_STALLED_REASON = "The current Goal revision ran three consecutive evidence checkpoints without relief: the evidence window overflowed every time, and the last check could not fit it within the checkpoint claim bounds, so every turn paid a checkpoint call and lost uncatalogued evidence. Automatic retries cannot recover. Edit or replace the Goal with a narrower objective before resuming it.";
7684
+ var GOAL_CHECKPOINT_UNUSABLE_REASON = "The current Goal revision ran three consecutive evidence checkpoints without relief: the evidence window overflowed every time, and the last check answered with output that could not be folded into claims. Narrowing the objective does not fix this. Check that the checkpoint model returns the structured JSON it is asked for, or switch models, then resume the Goal; resuming starts a fresh evidence window.";
7685
+ var GOAL_CHECKPOINT_UNREACHABLE_REASON = "The current Goal revision ran three consecutive evidence checkpoints without relief: the evidence window overflowed every time, and the last check failed before the checkpoint verifier returned an answer. The recorded checkpoint failure says why: an unreachable or rate-limited provider, a check that did not finish within model.goalCheckpointTimeoutSeconds, or an error in the check itself. Fix the provider, raise that timeout, or narrow the objective so the window checkpoints in time, then resume the Goal; resuming starts a fresh evidence window.";
7686
+ function goalCheckpointStalledReason(shape) {
7687
+ switch (shape) {
7688
+ case "capacity":
7689
+ return GOAL_CHECKPOINT_STALLED_REASON;
7690
+ case "unusable":
7691
+ return GOAL_CHECKPOINT_UNUSABLE_REASON;
7692
+ case "unreachable":
7693
+ return GOAL_CHECKPOINT_UNREACHABLE_REASON;
7694
+ default: {
7695
+ const exhaustive = shape;
7696
+ return exhaustive;
7697
+ }
7698
+ }
7699
+ }
7700
+ __name(goalCheckpointStalledReason, "goalCheckpointStalledReason");
7701
+ var GOAL_CHECKPOINT_FAILURE_MAX_CHARACTERS = 500;
7702
+ function capGoalCheckpointFailure(text) {
7703
+ const oneLine = stripDisplayControlChars(stripTerminalControlSequences(text)).replace(/\s+/g, " ").trim();
7704
+ const codePoints = [...oneLine];
7705
+ return codePoints.length <= GOAL_CHECKPOINT_FAILURE_MAX_CHARACTERS ? oneLine : `${codePoints.slice(0, GOAL_CHECKPOINT_FAILURE_MAX_CHARACTERS - 1).join("")}\u2026`;
7706
+ }
7707
+ __name(capGoalCheckpointFailure, "capGoalCheckpointFailure");
7708
+ function goalCheckpointHealthVisible(goal) {
7709
+ if (goal.status === "complete") return false;
7710
+ if ((goal.checkpointStalls ?? 0) > 0) return true;
7711
+ const failed = Boolean(goal.lastCheckpointFailure?.trim());
7712
+ if (goal.limitKind === "checkpoint_request") return failed;
7713
+ return (goal.status ?? "active") === "active" && failed;
7714
+ }
7715
+ __name(goalCheckpointHealthVisible, "goalCheckpointHealthVisible");
7716
+ function goalCheckpointHealthLine(goal, clean = (text) => text) {
7717
+ if (!goalCheckpointHealthVisible(goal)) return void 0;
7718
+ const stalls = goal.checkpointStalls ?? 0;
7719
+ return [
7720
+ stalls > 0 ? `${stalls}/${GOAL_CHECKPOINT_STALL_LIMIT} stalled` : "last check failed",
7721
+ clean(goal.lastCheckpointFailure ?? "").trim()
7722
+ ].filter(Boolean).join(" \xB7 ");
7723
+ }
7724
+ __name(goalCheckpointHealthLine, "goalCheckpointHealthLine");
7725
+ var GOAL_DEFAULT_TOKEN_BUDGET = 3e7;
7726
+ function goalTokenBudgetReason(tokenBudget) {
7727
+ return `The Goal spent its autonomous token budget (${tokenBudget.toLocaleString("en-US")} tokens). Resume the Goal to authorize another budget window, or clear it.`;
7728
+ }
7729
+ __name(goalTokenBudgetReason, "goalTokenBudgetReason");
7730
+ function isGoalTokenBudgetSpent(goal) {
7731
+ return goal.tokenBudget !== void 0 && goal.tokensUsed >= goal.tokenBudget;
7732
+ }
7733
+ __name(isGoalTokenBudgetSpent, "isGoalTokenBudgetSpent");
7734
+ function goalTurnBudgetReason(turnBudget) {
7735
+ return `The Goal ran its Goal-turn budget (${turnBudget.toLocaleString("en-US")} ${turnBudget === 1 ? "turn" : "turns"}). Resume the Goal to authorize another window of turns, or clear it.`;
7736
+ }
7737
+ __name(goalTurnBudgetReason, "goalTurnBudgetReason");
7738
+ function isGoalTurnBudgetSpent(goal) {
7739
+ return goal.turnBudget !== void 0 && goal.turnCount >= goal.turnBudget;
7740
+ }
7741
+ __name(isGoalTurnBudgetSpent, "isGoalTurnBudgetSpent");
7742
+ function formatGoalActiveTimeBudget(activeTimeBudgetMs) {
7743
+ const minutes = activeTimeBudgetMs / 6e4;
7744
+ if (minutes >= 1) {
7745
+ const rounded = Math.round(minutes);
7746
+ return `${rounded.toLocaleString("en-US")} ${rounded === 1 ? "minute" : "minutes"}`;
7747
+ }
7748
+ const seconds = Math.max(1, Math.round(activeTimeBudgetMs / 1e3));
7749
+ return `${seconds.toLocaleString("en-US")} ${seconds === 1 ? "second" : "seconds"}`;
7750
+ }
7751
+ __name(formatGoalActiveTimeBudget, "formatGoalActiveTimeBudget");
7752
+ function goalActiveTimeBudgetReason(activeTimeBudgetMs) {
7753
+ return `The Goal ran its active-time budget (${formatGoalActiveTimeBudget(activeTimeBudgetMs)}). Resume the Goal to authorize another window of time, or clear it.`;
7754
+ }
7755
+ __name(goalActiveTimeBudgetReason, "goalActiveTimeBudgetReason");
7756
+ function isGoalActiveTimeBudgetSpent(goal, elapsedActiveMs) {
7757
+ return goal.activeTimeBudgetMs !== void 0 && elapsedActiveMs >= goal.activeTimeBudgetMs;
7758
+ }
7759
+ __name(isGoalActiveTimeBudgetSpent, "isGoalActiveTimeBudgetSpent");
7760
+ function isGoalLimitKind(value) {
7761
+ return value === "evidence_catalog" || value === "checkpoint_request" || isGoalBudgetLimitKind(value);
7762
+ }
7763
+ __name(isGoalLimitKind, "isGoalLimitKind");
7764
+ function isGoalBudgetLimitKind(value) {
7765
+ return value === "token_budget" || value === "turn_budget" || value === "time_budget";
7766
+ }
7767
+ __name(isGoalBudgetLimitKind, "isGoalBudgetLimitKind");
7768
+ function goalLimitKindForReason(reason) {
7769
+ if (reason === GOAL_EVIDENCE_CATALOG_EXHAUSTED_REASON) {
7770
+ return "evidence_catalog";
7771
+ }
7772
+ if (reason === GOAL_CHECKPOINT_REQUEST_TOO_LARGE_REASON) {
7773
+ return "checkpoint_request";
7774
+ }
7775
+ return void 0;
7776
+ }
7777
+ __name(goalLimitKindForReason, "goalLimitKindForReason");
7778
+ var PAUSED_GOAL_SYSTEM_REMINDER = "<system-reminder>\nThe Goal is paused. Do not continue its objective unless the user resumes it. Treat this message as ordinary conversation.\n</system-reminder>";
7779
+ function isGoalEvidenceProofKind(value) {
7780
+ return value === "user_input" || value === "delivered_output" || value === "external_fact";
7781
+ }
7782
+ __name(isGoalEvidenceProofKind, "isGoalEvidenceProofKind");
7783
+ function emptyGoalSnapshot() {
7784
+ return { v: GOAL_STATE_VERSION, goal: null, activity: "idle" };
7785
+ }
7786
+ __name(emptyGoalSnapshot, "emptyGoalSnapshot");
7787
+ function goalRequiresExactPermit(snapshot) {
7788
+ return snapshot.goal !== null && (snapshot.goal.status === "active" || snapshot.activity === "running");
7789
+ }
7790
+ __name(goalRequiresExactPermit, "goalRequiresExactPermit");
7791
+ function isRepeatedBlockerProposal(proposal) {
7792
+ return proposal.status === "blocked" && proposal.blockerKind !== "authority" && proposal.blockerKind !== "external" && proposal.blockerKind !== "infeasible";
7793
+ }
7794
+ __name(isRepeatedBlockerProposal, "isRepeatedBlockerProposal");
7795
+ var GOAL_INFEASIBLE_NEXT_STEP = "The objective cannot be satisfied as written; edit or replace the Goal with an objective the evidence allows before resuming it.";
7796
+ function validateGoalProposalReason(reason) {
7797
+ if (!reason.trim()) return "Goal proposal reason must not be empty";
7798
+ if ([...reason].length > GOAL_PROPOSAL_REASON_MAX_CHARACTERS) {
7799
+ return `Goal proposal reason exceeds ${GOAL_PROPOSAL_REASON_MAX_CHARACTERS} characters`;
7800
+ }
7801
+ if (new TextEncoder().encode(reason).byteLength > GOAL_PROPOSAL_REASON_MAX_BYTES) {
7802
+ return `Goal proposal reason exceeds ${GOAL_PROPOSAL_REASON_MAX_BYTES} UTF-8 bytes`;
7803
+ }
7804
+ return null;
7805
+ }
7806
+ __name(validateGoalProposalReason, "validateGoalProposalReason");
7807
+ var GOAL_PAUSE_REASON_MAX_CHARACTERS = 500;
7808
+ function validateGoalPauseReason(reason) {
7809
+ if (!reason.trim()) return "Goal pause reason must not be empty";
7810
+ if (reason.length > GOAL_PAUSE_REASON_MAX_CHARACTERS) {
7811
+ let codePoints = 0;
7812
+ for (const _codePoint of reason) {
7813
+ if (++codePoints > GOAL_PAUSE_REASON_MAX_CHARACTERS) {
7814
+ return `Goal pause reason exceeds ${GOAL_PAUSE_REASON_MAX_CHARACTERS} characters`;
7815
+ }
7816
+ }
7817
+ }
7818
+ return null;
7819
+ }
7820
+ __name(validateGoalPauseReason, "validateGoalPauseReason");
7821
+ var GOAL_PAUSE_REASON_USER_INTERRUPT = "Interrupted by the user. Run /goal resume to continue.";
7822
+ var GOAL_PAUSE_REASON_COMMAND = "Paused with /goal pause.";
7823
+ var GOAL_PAUSE_REASON_SESSION_TOKEN_LIMIT = "The session token limit was exceeded before the model request. Start a new session or increase sessionTokenLimit in settings.json before resuming the Goal.";
7824
+ var GOAL_PAUSE_REASON_STOP_HOOK_CAP = "A Stop hook blocked this session too many times in a row. Run /goal resume to continue.";
7825
+ var GOAL_PAUSE_REASON_SESSION_DISPOSED = "The session started closing before the turn finished. Run /goal resume to continue.";
7826
+ var GOAL_PAUSE_REASON_HEADLESS_RUN_ENDED = "The headless run finished before the Goal did. Resume the Goal in a later run.";
7827
+ var GOAL_PAUSE_REASON_NO_PROGRESS = "Three Goal turns in a row recorded nothing to judge and no proposal. Resume the Goal to try again, or edit its objective into one the model can act on and then resume it.";
7828
+ function truncateGoalPauseReason(reason) {
7829
+ const codePoints = [...reason];
7830
+ return codePoints.length <= GOAL_PAUSE_REASON_MAX_CHARACTERS ? reason : `${codePoints.slice(0, GOAL_PAUSE_REASON_MAX_CHARACTERS - 1).join("")}\u2026`;
7831
+ }
7832
+ __name(truncateGoalPauseReason, "truncateGoalPauseReason");
7833
+ function goalPauseReasonForFailure(message) {
7834
+ const detail = message.trim();
7835
+ return truncateGoalPauseReason(
7836
+ detail ? `The Goal turn could not finish: ${detail}. Run /goal resume to continue.` : "The Goal turn could not finish. Run /goal resume to continue."
7837
+ );
7838
+ }
7839
+ __name(goalPauseReasonForFailure, "goalPauseReasonForFailure");
7840
+ function goalPauseReasonForHeadlessFailure(message) {
7841
+ const detail = message.trim();
7842
+ return truncateGoalPauseReason(
7843
+ detail ? `The headless run stopped: ${detail}. Resume the Goal in a later run.` : "The headless run stopped before the Goal turn finished. Resume the Goal in a later run."
7844
+ );
7845
+ }
7846
+ __name(goalPauseReasonForHeadlessFailure, "goalPauseReasonForHeadlessFailure");
7847
+ function goalPauseReasonForRunBudget(budget) {
7848
+ const detail = budget.trim();
7849
+ return truncateGoalPauseReason(
7850
+ detail ? `The headless run stopped at its ${detail} budget. Resume the Goal in a later run.` : "The headless run stopped at a budget. Resume the Goal in a later run."
7851
+ );
7852
+ }
7853
+ __name(goalPauseReasonForRunBudget, "goalPauseReasonForRunBudget");
7854
+
7855
+ // packages/core/src/goals/goal-reducer.ts
7856
+ var MAX_BLOCKED_AUDIT_COUNT = 3;
7857
+ var GoalConflictError = class extends Error {
7858
+ constructor(current) {
7859
+ super("Goal version does not match the current session Goal");
7860
+ this.current = current;
7861
+ this.name = "GoalConflictError";
7862
+ }
7863
+ static {
7864
+ __name(this, "GoalConflictError");
7865
+ }
7866
+ };
7867
+ var GoalInvalidTransitionError = class extends Error {
7868
+ constructor(message, current) {
7869
+ super(message);
7870
+ this.current = current;
7871
+ this.name = "GoalInvalidTransitionError";
7872
+ }
7873
+ static {
7874
+ __name(this, "GoalInvalidTransitionError");
7875
+ }
7876
+ };
7877
+ function elapsedActiveTime(goal, now) {
7878
+ return goal.activeTimeMs + (goal.status === "active" ? Math.max(0, now - goal.updatedAt) : 0);
7879
+ }
7880
+ __name(elapsedActiveTime, "elapsedActiveTime");
7881
+ function reduceGoalControl(current, transition) {
7882
+ const { request } = transition;
7883
+ if (request.action === "create") {
7884
+ if (current) throw new GoalConflictError(snapshotOf(current));
7885
+ return createGoal(
7886
+ transition.nextGoalId,
7887
+ normalizeObjective(request.objective, snapshotOf(null)),
7888
+ transition.now,
7889
+ transition.cursor,
7890
+ transition
7891
+ );
7892
+ }
7893
+ assertExpectedVersion(
7894
+ current,
7895
+ request.expectedGoalId,
7896
+ request.expectedRevision
7897
+ );
7898
+ if (request.action === "clear") return null;
7899
+ if (request.action === "replace") {
7900
+ return createGoal(
7901
+ transition.nextGoalId,
7902
+ normalizeObjective(request.objective, snapshotOf(current)),
7903
+ transition.now,
7904
+ transition.cursor,
7905
+ transition
7906
+ );
7907
+ }
7908
+ if (request.action === "edit") {
7909
+ if (current.status === "complete") {
7910
+ throw new GoalInvalidTransitionError(
7911
+ "A completed Goal cannot be edited",
7912
+ snapshotOf(current)
7913
+ );
7914
+ }
7915
+ return transitionGoal(current, transition.now, {
7916
+ revision: current.revision + 1,
7917
+ objective: normalizeObjective(request.objective, snapshotOf(current)),
7918
+ evidenceCursor: copyCursor(transition.cursor),
7919
+ evidenceCheckpoint: void 0,
7920
+ checkpointStalls: void 0,
7921
+ lastCheckpointFailure: void 0,
7922
+ noProgressTurns: void 0,
7923
+ ...rearmedBudgets(current, transition.now, transition),
7924
+ lastReason: void 0,
7925
+ limitKind: void 0
7926
+ });
7927
+ }
7928
+ if (request.action === "pause") {
7929
+ if (current.status !== "active") {
7930
+ throw new GoalInvalidTransitionError(
7931
+ "Only an active Goal can be paused",
7932
+ snapshotOf(current)
7933
+ );
7934
+ }
7935
+ return transitionGoal(current, transition.now, {
7936
+ status: "paused",
7937
+ lastReason: request.reason
7938
+ });
7939
+ }
7940
+ if (current.status === "complete") {
7941
+ throw new GoalInvalidTransitionError(
7942
+ "A completed Goal cannot be resumed",
7943
+ snapshotOf(current)
7944
+ );
7945
+ }
7946
+ if (current.status === "active") {
7947
+ throw new GoalInvalidTransitionError(
7948
+ "An active Goal cannot be resumed",
7949
+ snapshotOf(current)
7950
+ );
7951
+ }
7952
+ if (request.action === "resume" && current.status === "usage_limited" && isGoalBudgetLimitKind(current.limitKind)) {
7953
+ return transitionGoal(current, transition.now, {
7954
+ status: "active",
7955
+ noProgressTurns: void 0,
7956
+ ...rearmedBudgets(current, transition.now, transition),
7957
+ lastReason: void 0,
7958
+ limitKind: void 0
7959
+ });
7960
+ }
7961
+ if (request.action !== "resume") {
7962
+ return assertNever(request, snapshotOf(current));
7963
+ }
7964
+ if (current.status === "usage_limited" && isEvidenceLimited(current)) {
7965
+ return transitionGoal(current, transition.now, {
7966
+ status: "active",
7967
+ evidenceCursor: copyCursor(transition.cursor),
7968
+ evidenceCheckpoint: void 0,
7969
+ // The streak counts checkpoints against one window; this resume starts
7970
+ // a different one, so carrying it over would spend the new window's
7971
+ // allowance on the old window's failures.
7972
+ checkpointStalls: void 0,
7973
+ lastCheckpointFailure: void 0,
7974
+ noProgressTurns: void 0,
7975
+ ...rearmedBudgets(current, transition.now, transition),
7976
+ lastReason: void 0,
7977
+ limitKind: void 0
7978
+ });
7979
+ }
7980
+ return transitionGoal(current, transition.now, {
7981
+ status: "active",
7982
+ noProgressTurns: void 0,
7983
+ ...rearmedBudgets(current, transition.now, transition),
7984
+ ...current.status === "paused" ? { lastReason: void 0 } : {}
7985
+ });
7986
+ }
7987
+ __name(reduceGoalControl, "reduceGoalControl");
7988
+ function reduceGoalTurnFinished(current, transition) {
7989
+ if (current.status !== "active" && current.status !== "paused") {
7990
+ throw new GoalInvalidTransitionError(
7991
+ "Only an active or paused Goal can finish a turn",
7992
+ snapshotOf(current)
7993
+ );
7994
+ }
7995
+ return transitionGoal(current, transition.now, {
7996
+ turnCount: current.turnCount + 1,
7997
+ tokensUsed: current.tokensUsed + Math.max(0, transition.tokensUsed ?? 0),
7998
+ ...transition.lastReason === void 0 ? {} : { lastReason: transition.lastReason },
7999
+ ...transition.windDownTurnId === void 0 ? {} : { windDownTurnId: transition.windDownTurnId },
8000
+ // Zero is spelled as no field, the same way the record persists it.
8001
+ ...transition.noProgressTurns === void 0 ? {} : {
8002
+ noProgressTurns: transition.noProgressTurns > 0 ? transition.noProgressTurns : void 0
8003
+ }
8004
+ });
8005
+ }
8006
+ __name(reduceGoalTurnFinished, "reduceGoalTurnFinished");
8007
+ function parseGoalControlRequest(value) {
8008
+ if (!isRecord(value) || typeof value["action"] !== "string") {
8009
+ return void 0;
8010
+ }
8011
+ switch (value["action"]) {
8012
+ case "create":
8013
+ if (!hasOnlyKeys(value, ["action", "objective"])) return void 0;
8014
+ return typeof value["objective"] === "string" ? parseObjectiveRequest(value["action"], value["objective"]) : void 0;
8015
+ case "replace":
8016
+ case "edit":
8017
+ if (!hasOnlyKeys(value, [
8018
+ "action",
8019
+ "objective",
8020
+ "expectedGoalId",
8021
+ "expectedRevision"
8022
+ ]) || typeof value["objective"] !== "string" || !isExpectedVersion(value)) {
8023
+ return void 0;
8024
+ }
8025
+ return parseObjectiveVersionedRequest(
8026
+ value["action"],
8027
+ value["objective"],
8028
+ value["expectedGoalId"],
8029
+ value["expectedRevision"]
8030
+ );
8031
+ case "pause": {
8032
+ if (!hasOnlyKeys(value, [
8033
+ "action",
8034
+ "expectedGoalId",
8035
+ "expectedRevision",
8036
+ "reason"
8037
+ ]) || !isExpectedVersion(value)) {
8038
+ return void 0;
8039
+ }
8040
+ const reason = value["reason"];
8041
+ if (reason !== void 0) {
8042
+ if (typeof reason !== "string" || validateGoalPauseReason(reason)) {
8043
+ return void 0;
8044
+ }
8045
+ }
8046
+ return {
8047
+ action: "pause",
8048
+ expectedGoalId: value["expectedGoalId"],
8049
+ expectedRevision: value["expectedRevision"],
8050
+ ...reason === void 0 ? {} : { reason }
8051
+ };
8052
+ }
8053
+ case "resume":
8054
+ case "clear":
8055
+ if (!hasOnlyKeys(value, ["action", "expectedGoalId", "expectedRevision"]) || !isExpectedVersion(value)) {
8056
+ return void 0;
8057
+ }
8058
+ return {
8059
+ action: value["action"],
8060
+ expectedGoalId: value["expectedGoalId"],
8061
+ expectedRevision: value["expectedRevision"]
8062
+ };
8063
+ default:
8064
+ return void 0;
8065
+ }
8066
+ }
8067
+ __name(parseGoalControlRequest, "parseGoalControlRequest");
8068
+ function parseGoalStateRecordPayloadV2(value) {
8069
+ if (!isRecord(value) || !hasOnlyKeys(value, [
8070
+ "v",
8071
+ "cause",
8072
+ "snapshot",
8073
+ "checkpointPending",
8074
+ "blockedAudit"
8075
+ ]) || value["v"] !== GOAL_STATE_VERSION || !isGoalStateCause(value["cause"]) || !isCheckpointPending(value["checkpointPending"]) || !isBlockedAudit(value["blockedAudit"])) {
8076
+ return void 0;
8077
+ }
8078
+ const parsedSnapshot = parseGoalSnapshotV2(value["snapshot"]);
8079
+ if (parsedSnapshot?.activity !== "idle") return void 0;
8080
+ const checkpointPending = value["checkpointPending"];
8081
+ if (checkpointPending && (parsedSnapshot.goal?.status !== "active" || checkpointPending.permit.goalId !== parsedSnapshot.goal.goalId || checkpointPending.permit.revision !== parsedSnapshot.goal.revision || checkpointPending.recordUuid === parsedSnapshot.goal.evidenceCursor.recordId || value["cause"] !== "turn_finished" && value["cause"] !== "verifier_reject")) {
8082
+ return void 0;
8083
+ }
8084
+ return {
8085
+ v: GOAL_STATE_VERSION,
8086
+ cause: value["cause"],
8087
+ snapshot: parsedSnapshot,
8088
+ ...checkpointPending ? { checkpointPending: structuredClone(checkpointPending) } : {},
8089
+ ...value["blockedAudit"] ? { blockedAudit: structuredClone(value["blockedAudit"]) } : {}
8090
+ };
8091
+ }
8092
+ __name(parseGoalStateRecordPayloadV2, "parseGoalStateRecordPayloadV2");
8093
+ function parseGoalSnapshotV2(value) {
8094
+ if (!isRecord(value) || !hasOnlyKeys(value, ["v", "goal", "activity", "clearedGoal"]) || value["v"] !== GOAL_STATE_VERSION || !isGoalActivity(value["activity"])) {
8095
+ return void 0;
8096
+ }
8097
+ if (value["goal"] === null) {
8098
+ const clearedGoal = parseGoalOrder(value["clearedGoal"]);
8099
+ if (value["clearedGoal"] !== void 0 && !clearedGoal) return void 0;
8100
+ return {
8101
+ v: GOAL_STATE_VERSION,
8102
+ goal: null,
8103
+ activity: value["activity"],
8104
+ ...clearedGoal ? { clearedGoal } : {}
8105
+ };
8106
+ }
8107
+ if (value["clearedGoal"] !== void 0) return void 0;
8108
+ const goal = parseGoalRecord(value["goal"]);
8109
+ return goal ? { v: GOAL_STATE_VERSION, goal, activity: value["activity"] } : void 0;
8110
+ }
8111
+ __name(parseGoalSnapshotV2, "parseGoalSnapshotV2");
8112
+ function parseGoalOrder(value) {
8113
+ if (!isRecord(value) || !hasOnlyKeys(value, ["goalId", "revision", "updatedAt"]) || typeof value["goalId"] !== "string" || !value["goalId"] || !isNonNegativeInteger(value["revision"]) || value["revision"] === 0 || !isFiniteNumber(value["updatedAt"])) {
8114
+ return void 0;
8115
+ }
8116
+ return {
8117
+ goalId: value["goalId"],
8118
+ revision: value["revision"],
8119
+ updatedAt: value["updatedAt"]
8120
+ };
8121
+ }
8122
+ __name(parseGoalOrder, "parseGoalOrder");
8123
+ function parseGoalStateCause(value) {
8124
+ return isGoalStateCause(value) ? value : void 0;
8125
+ }
8126
+ __name(parseGoalStateCause, "parseGoalStateCause");
8127
+ function createGoal(goalId, objective, now, cursor, grants) {
8128
+ return {
8129
+ goalId,
8130
+ revision: 1,
8131
+ objective,
8132
+ status: "active",
8133
+ evidenceCursor: copyCursor(cursor),
8134
+ turnCount: 0,
8135
+ activeTimeMs: 0,
8136
+ tokensUsed: 0,
8137
+ ...armedBudget("tokenBudget", grants.tokenBudgetGrant),
8138
+ ...armedBudget("turnBudget", grants.turnBudgetGrant),
8139
+ ...armedBudget("activeTimeBudgetMs", grants.activeTimeBudgetGrantMs),
8140
+ createdAt: now,
8141
+ updatedAt: now
8142
+ };
8143
+ }
8144
+ __name(createGoal, "createGoal");
8145
+ function armedBudget(field, grant) {
8146
+ return grant !== void 0 && Number.isFinite(grant) ? { [field]: grant } : {};
8147
+ }
8148
+ __name(armedBudget, "armedBudget");
8149
+ function assertExpectedVersion(current, expectedGoalId, expectedRevision) {
8150
+ if (!current || current.goalId !== expectedGoalId || current.revision !== expectedRevision) {
8151
+ throw new GoalConflictError(snapshotOf(current));
8152
+ }
8153
+ }
8154
+ __name(assertExpectedVersion, "assertExpectedVersion");
8155
+ function normalizeObjective(objective, current) {
8156
+ const normalized = objective.trim();
8157
+ if (!normalized) {
8158
+ throw new GoalInvalidTransitionError(
8159
+ "Goal objective must not be empty",
8160
+ current
8161
+ );
8162
+ }
8163
+ return normalized;
8164
+ }
8165
+ __name(normalizeObjective, "normalizeObjective");
8166
+ function isEvidenceLimited(goal) {
8167
+ return goal.limitKind === "evidence_catalog" || goal.limitKind === "checkpoint_request" || goal.lastReason !== void 0 && goalLimitKindForReason(goal.lastReason) !== void 0;
8168
+ }
8169
+ __name(isEvidenceLimited, "isEvidenceLimited");
8170
+ function rearmedTokenBudget(current, grant) {
8171
+ if (grant === void 0 || !isGoalTokenBudgetSpent(current)) {
8172
+ return {};
8173
+ }
8174
+ return Number.isFinite(grant) ? { tokenBudget: current.tokensUsed + grant, windDownTurnId: void 0 } : { tokenBudget: void 0, windDownTurnId: void 0 };
8175
+ }
8176
+ __name(rearmedTokenBudget, "rearmedTokenBudget");
8177
+ function rearmedTurnBudget(current, grant) {
8178
+ if (grant === void 0 || !isGoalTurnBudgetSpent(current)) {
8179
+ return {};
8180
+ }
8181
+ return Number.isFinite(grant) ? { turnBudget: current.turnCount + grant, windDownTurnId: void 0 } : { turnBudget: void 0, windDownTurnId: void 0 };
8182
+ }
8183
+ __name(rearmedTurnBudget, "rearmedTurnBudget");
8184
+ function rearmedActiveTimeBudget(current, now, grant) {
8185
+ const elapsed = elapsedActiveTime(current, now);
8186
+ if (grant === void 0 || !isGoalActiveTimeBudgetSpent(current, elapsed)) {
8187
+ return {};
8188
+ }
8189
+ return Number.isFinite(grant) ? { activeTimeBudgetMs: elapsed + grant, windDownTurnId: void 0 } : { activeTimeBudgetMs: void 0, windDownTurnId: void 0 };
8190
+ }
8191
+ __name(rearmedActiveTimeBudget, "rearmedActiveTimeBudget");
8192
+ function rearmedBudgets(current, now, grants) {
8193
+ return {
8194
+ ...rearmedTokenBudget(current, grants.tokenBudgetGrant),
8195
+ ...rearmedTurnBudget(current, grants.turnBudgetGrant),
8196
+ ...rearmedActiveTimeBudget(current, now, grants.activeTimeBudgetGrantMs)
8197
+ };
8198
+ }
8199
+ __name(rearmedBudgets, "rearmedBudgets");
8200
+ function transitionGoal(goal, now, changes) {
8201
+ const transitioned = {
8202
+ ...goal,
8203
+ ...changes,
8204
+ activeTimeMs: elapsedActiveTime(goal, now),
8205
+ updatedAt: now
8206
+ };
8207
+ if ("tokenBudget" in changes && changes.tokenBudget === void 0) {
8208
+ delete transitioned.tokenBudget;
8209
+ }
8210
+ if ("turnBudget" in changes && changes.turnBudget === void 0) {
8211
+ delete transitioned.turnBudget;
8212
+ }
8213
+ if ("activeTimeBudgetMs" in changes && changes.activeTimeBudgetMs === void 0) {
8214
+ delete transitioned.activeTimeBudgetMs;
8215
+ }
8216
+ if ("windDownTurnId" in changes && changes.windDownTurnId === void 0) {
8217
+ delete transitioned.windDownTurnId;
8218
+ }
8219
+ if ("noProgressTurns" in changes && changes.noProgressTurns === void 0) {
8220
+ delete transitioned.noProgressTurns;
8221
+ }
8222
+ return transitioned;
8223
+ }
8224
+ __name(transitionGoal, "transitionGoal");
8225
+ function snapshotOf(goal) {
8226
+ return { v: GOAL_STATE_VERSION, goal, activity: "idle" };
8227
+ }
8228
+ __name(snapshotOf, "snapshotOf");
8229
+ function copyCursor(cursor) {
8230
+ return { recordId: cursor.recordId };
8231
+ }
8232
+ __name(copyCursor, "copyCursor");
8233
+ function parseObjectiveRequest(action, objective) {
8234
+ const normalized = objective.trim();
8235
+ return normalized ? { action, objective: normalized } : void 0;
8236
+ }
8237
+ __name(parseObjectiveRequest, "parseObjectiveRequest");
8238
+ function parseObjectiveVersionedRequest(action, objective, expectedGoalId, expectedRevision) {
8239
+ const normalized = objective.trim();
8240
+ return normalized ? { action, objective: normalized, expectedGoalId, expectedRevision } : void 0;
8241
+ }
8242
+ __name(parseObjectiveVersionedRequest, "parseObjectiveVersionedRequest");
8243
+ function parseGoalRecord(value) {
8244
+ if (!isRecord(value) || !hasOnlyKeys(value, [
8245
+ "goalId",
8246
+ "revision",
8247
+ "objective",
8248
+ "status",
8249
+ "evidenceCursor",
8250
+ "turnCount",
8251
+ "activeTimeMs",
8252
+ "tokensUsed",
8253
+ "tokenBudget",
8254
+ "turnBudget",
8255
+ "activeTimeBudgetMs",
8256
+ "windDownTurnId",
8257
+ "createdAt",
8258
+ "updatedAt",
8259
+ "evidenceCheckpoint",
8260
+ "checkpointStalls",
8261
+ "lastCheckpointFailure",
8262
+ "noProgressTurns",
8263
+ "lastReason",
8264
+ "limitKind"
8265
+ ]) || typeof value["goalId"] !== "string" || !value["goalId"] || !isNonNegativeInteger(value["revision"]) || value["revision"] === 0 || typeof value["objective"] !== "string" || !value["objective"].trim() || !isGoalStatus(value["status"]) || !isTranscriptCursor(value["evidenceCursor"]) || !isNonNegativeInteger(value["turnCount"]) || !isNonNegativeNumber(value["activeTimeMs"]) || value["tokensUsed"] !== void 0 && !isNonNegativeNumber(value["tokensUsed"]) || value["tokenBudget"] !== void 0 && !isNonNegativeNumber(value["tokenBudget"]) || value["turnBudget"] !== void 0 && !isNonNegativeInteger(value["turnBudget"]) || value["activeTimeBudgetMs"] !== void 0 && !isNonNegativeNumber(value["activeTimeBudgetMs"]) || value["windDownTurnId"] !== void 0 && (typeof value["windDownTurnId"] !== "string" || !value["windDownTurnId"]) || !isFiniteNumber(value["createdAt"]) || !isFiniteNumber(value["updatedAt"]) || !isGoalEvidenceCheckpoint(value["evidenceCheckpoint"]) || value["checkpointStalls"] !== void 0 && !isNonNegativeInteger(value["checkpointStalls"]) || value["lastCheckpointFailure"] !== void 0 && (typeof value["lastCheckpointFailure"] !== "string" || !value["lastCheckpointFailure"]) || value["noProgressTurns"] !== void 0 && !isNonNegativeInteger(value["noProgressTurns"]) || value["lastReason"] !== void 0 && typeof value["lastReason"] !== "string" || value["limitKind"] !== void 0 && (!isGoalLimitKind(value["limitKind"]) || value["status"] !== "usage_limited")) {
8266
+ return void 0;
8267
+ }
8268
+ if (value["evidenceCheckpoint"] && value["evidenceCursor"].recordId !== value["evidenceCheckpoint"].checkpointId) {
8269
+ return void 0;
8270
+ }
8271
+ return {
8272
+ goalId: value["goalId"],
8273
+ revision: value["revision"],
8274
+ objective: value["objective"],
8275
+ status: value["status"],
8276
+ evidenceCursor: copyCursor(value["evidenceCursor"]),
8277
+ turnCount: value["turnCount"],
8278
+ activeTimeMs: value["activeTimeMs"],
8279
+ // Goals persisted before `tokensUsed` existed carry no spend to restore.
8280
+ tokensUsed: value["tokensUsed"] ?? 0,
8281
+ // And no budget: a Goal from before budgets existed stays unbounded.
8282
+ ...value["tokenBudget"] === void 0 ? {} : { tokenBudget: value["tokenBudget"] },
8283
+ ...value["turnBudget"] === void 0 ? {} : { turnBudget: value["turnBudget"] },
8284
+ ...value["activeTimeBudgetMs"] === void 0 ? {} : { activeTimeBudgetMs: value["activeTimeBudgetMs"] },
8285
+ ...value["windDownTurnId"] === void 0 ? {} : { windDownTurnId: value["windDownTurnId"] },
8286
+ createdAt: value["createdAt"],
8287
+ updatedAt: value["updatedAt"],
8288
+ ...value["evidenceCheckpoint"] === void 0 ? {} : {
8289
+ evidenceCheckpoint: structuredClone(value["evidenceCheckpoint"])
8290
+ },
8291
+ // Zero is spelled as no field; a persisted 0 restores the same way.
8292
+ ...value["checkpointStalls"] ? { checkpointStalls: value["checkpointStalls"] } : {},
8293
+ ...value["lastCheckpointFailure"] === void 0 ? {} : { lastCheckpointFailure: value["lastCheckpointFailure"] },
8294
+ ...value["noProgressTurns"] ? { noProgressTurns: value["noProgressTurns"] } : {},
8295
+ ...value["lastReason"] === void 0 ? {} : { lastReason: value["lastReason"] },
8296
+ ...value["limitKind"] === void 0 ? {} : { limitKind: value["limitKind"] }
8297
+ };
8298
+ }
8299
+ __name(parseGoalRecord, "parseGoalRecord");
8300
+ function isExpectedVersion(value) {
8301
+ return typeof value["expectedGoalId"] === "string" && value["expectedGoalId"].length > 0 && isNonNegativeInteger(value["expectedRevision"]) && value["expectedRevision"] > 0;
8302
+ }
8303
+ __name(isExpectedVersion, "isExpectedVersion");
8304
+ function isTranscriptCursor(value) {
8305
+ return isRecord(value) && hasOnlyKeys(value, ["recordId"]) && (typeof value["recordId"] === "string" || value["recordId"] === null);
8306
+ }
8307
+ __name(isTranscriptCursor, "isTranscriptCursor");
8308
+ function isGoalStatus(value) {
8309
+ return value === "active" || value === "paused" || value === "blocked" || value === "usage_limited" || value === "complete";
8310
+ }
8311
+ __name(isGoalStatus, "isGoalStatus");
8312
+ function isGoalActivity(value) {
8313
+ return value === "idle" || value === "running" || value === "verifying";
8314
+ }
8315
+ __name(isGoalActivity, "isGoalActivity");
8316
+ function isGoalStateCause(value) {
8317
+ return value === "create" || value === "replace" || value === "edit" || value === "pause" || value === "resume" || value === "turn_finished" || value === "checkpoint" || value === "verifier_accept" || value === "verifier_reject" || value === "complete" || value === "blocked" || value === "usage_limited" || value === "clear" || value === "migrated";
8318
+ }
8319
+ __name(isGoalStateCause, "isGoalStateCause");
8320
+ function isGoalEvidenceCheckpoint(value) {
8321
+ if (value === void 0) return true;
8322
+ if (!isRecord(value) || !hasOnlyKeys(value, ["checkpointId", "createdAt", "claims"]) || typeof value["checkpointId"] !== "string" || value["checkpointId"].length === 0 || !isFiniteNumber(value["createdAt"]) || !Array.isArray(value["claims"]) || value["claims"].length === 0 || value["claims"].length > GOAL_CHECKPOINT_CLAIM_LIMIT) {
8323
+ return false;
8324
+ }
8325
+ let checkpointBytes = 0;
8326
+ for (const [index, claim] of value["claims"].entries()) {
8327
+ if (!isRecord(claim) || !hasOnlyKeys(claim, ["id", "proofKind", "claim", "sourceRefs"]) || claim["id"] !== `${value["checkpointId"]}:${index + 1}` || !isGoalEvidenceProofKind(claim["proofKind"]) || typeof claim["claim"] !== "string" || claim["claim"].trim().length === 0 || [...claim["claim"]].length > GOAL_CHECKPOINT_CLAIM_MAX_CHARACTERS || !Array.isArray(claim["sourceRefs"]) || claim["sourceRefs"].length === 0 || claim["sourceRefs"].length > GOAL_CHECKPOINT_SOURCE_REFERENCE_LIMIT || new Set(claim["sourceRefs"]).size !== claim["sourceRefs"].length || claim["sourceRefs"].some(
8328
+ (reference) => typeof reference !== "string" || reference.length === 0
8329
+ )) {
8330
+ return false;
8331
+ }
8332
+ checkpointBytes += new TextEncoder().encode(claim["claim"]).byteLength;
8333
+ if (checkpointBytes > GOAL_CHECKPOINT_CLAIM_MAX_BYTES) return false;
8334
+ }
8335
+ return true;
8336
+ }
8337
+ __name(isGoalEvidenceCheckpoint, "isGoalEvidenceCheckpoint");
8338
+ function isCheckpointPending(value) {
8339
+ return value === void 0 || isRecord(value) && hasOnlyKeys(value, ["permit", "recordUuid"]) && isGoalTurnPermit(value["permit"]) && typeof value["recordUuid"] === "string" && value["recordUuid"].length > 0;
8340
+ }
8341
+ __name(isCheckpointPending, "isCheckpointPending");
8342
+ function isGoalTurnPermit(value) {
8343
+ return isRecord(value) && hasOnlyKeys(value, ["goalId", "revision", "turnId"]) && typeof value["goalId"] === "string" && value["goalId"].length > 0 && isNonNegativeInteger(value["revision"]) && value["revision"] > 0 && typeof value["turnId"] === "string" && value["turnId"].length > 0;
8344
+ }
8345
+ __name(isGoalTurnPermit, "isGoalTurnPermit");
8346
+ function isBlockedAudit(value) {
8347
+ return value === void 0 || isRecord(value) && hasOnlyKeys(value, ["fingerprint", "count", "turnIds"]) && typeof value["fingerprint"] === "string" && value["fingerprint"].length > 0 && isNonNegativeInteger(value["count"]) && value["count"] > 0 && value["count"] <= MAX_BLOCKED_AUDIT_COUNT && Array.isArray(value["turnIds"]) && value["turnIds"].length === value["count"] && value["turnIds"].every(
8348
+ (turnId) => typeof turnId === "string" && turnId.length > 0
8349
+ );
8350
+ }
8351
+ __name(isBlockedAudit, "isBlockedAudit");
8352
+ function isRecord(value) {
8353
+ return typeof value === "object" && value !== null && !Array.isArray(value);
8354
+ }
8355
+ __name(isRecord, "isRecord");
8356
+ function hasOnlyKeys(value, keys) {
8357
+ return Object.keys(value).every((key) => keys.includes(key));
8358
+ }
8359
+ __name(hasOnlyKeys, "hasOnlyKeys");
8360
+ function isNonNegativeInteger(value) {
8361
+ return typeof value === "number" && Number.isInteger(value) && value >= 0;
8362
+ }
8363
+ __name(isNonNegativeInteger, "isNonNegativeInteger");
8364
+ function isNonNegativeNumber(value) {
8365
+ return typeof value === "number" && Number.isFinite(value) && value >= 0;
8366
+ }
8367
+ __name(isNonNegativeNumber, "isNonNegativeNumber");
8368
+ function isFiniteNumber(value) {
8369
+ return typeof value === "number" && Number.isFinite(value);
8370
+ }
8371
+ __name(isFiniteNumber, "isFiniteNumber");
8372
+ function assertNever(value, snapshot) {
8373
+ throw new GoalInvalidTransitionError(
8374
+ `Unsupported Goal control action: ${String(value)}`,
8375
+ snapshot
8376
+ );
8377
+ }
8378
+ __name(assertNever, "assertNever");
8379
+
8380
+ // packages/core/src/telemetry/goal-events.ts
8381
+ var REPORTED_CAUSES = new Set(
8382
+ GOAL_STATE_EVENT_CAUSES
8383
+ );
8384
+ function isGoalStateEventCause(cause) {
8385
+ return cause !== void 0 && REPORTED_CAUSES.has(cause);
8386
+ }
8387
+ __name(isGoalStateEventCause, "isGoalStateEventCause");
8388
+ function goalStateEventFromSnapshot(snapshot, cause, now = Date.now()) {
8389
+ if (!isGoalStateEventCause(cause)) return void 0;
8390
+ const goal = snapshot.goal;
8391
+ if (!goal) {
8392
+ const cleared = snapshot.clearedGoal;
8393
+ return cause === "clear" && cleared ? makeGoalStateEvent({
8394
+ cause,
8395
+ goal_id: cleared.goalId,
8396
+ revision: cleared.revision
8397
+ }) : void 0;
8398
+ }
8399
+ return makeGoalStateEvent({
8400
+ cause,
8401
+ goal_id: goal.goalId,
8402
+ revision: goal.revision,
8403
+ status: goal.status,
8404
+ limit_kind: goal.limitKind,
8405
+ turn_count: goal.turnCount,
8406
+ tokens_used: goal.tokensUsed,
8407
+ no_progress_turns: goal.noProgressTurns,
8408
+ token_budget: goal.tokenBudget,
8409
+ turn_budget: goal.turnBudget,
8410
+ active_time_ms: elapsedActiveTime(goal, now),
8411
+ active_time_budget_ms: goal.activeTimeBudgetMs,
8412
+ objective_length: [...goal.objective].length
8413
+ });
8414
+ }
8415
+ __name(goalStateEventFromSnapshot, "goalStateEventFromSnapshot");
8416
+
7618
8417
  // packages/core/src/telemetry/daemon-metrics.ts
7619
8418
  init_esbuild_shims();
7620
8419
  init_esm();
@@ -9568,6 +10367,61 @@ __name(restoreArchivedAutoSkill, "restoreArchivedAutoSkill");
9568
10367
  export {
9569
10368
  parseBooleanEnvFlag,
9570
10369
  resolveTelemetrySettings,
10370
+ TERMINAL_OSC_REGEX,
10371
+ TERMINAL_CSI_REGEX,
10372
+ TERMINAL_SHIFT_DCS_REGEX,
10373
+ stripTerminalControlSequences,
10374
+ isBidiControlChar,
10375
+ stripDisplayControlChars,
10376
+ truncateNotificationLabel,
10377
+ GOAL_STATE_VERSION,
10378
+ GOAL_PROPOSAL_REASON_MAX_CHARACTERS,
10379
+ GOAL_CHECKPOINT_CLAIM_LIMIT,
10380
+ GOAL_CHECKPOINT_CLAIM_MAX_CHARACTERS,
10381
+ GOAL_CHECKPOINT_CLAIM_MAX_BYTES,
10382
+ GOAL_CHECKPOINT_SOURCE_REFERENCE_LIMIT,
10383
+ GOAL_EVIDENCE_CATALOG_EXHAUSTED_REASON,
10384
+ GOAL_CHECKPOINT_REQUEST_TOO_LARGE_REASON,
10385
+ GOAL_CHECKPOINT_STALL_LIMIT,
10386
+ GOAL_NO_PROGRESS_TURN_LIMIT,
10387
+ goalCheckpointStalledReason,
10388
+ capGoalCheckpointFailure,
10389
+ goalCheckpointHealthVisible,
10390
+ goalCheckpointHealthLine,
10391
+ GOAL_DEFAULT_TOKEN_BUDGET,
10392
+ goalTokenBudgetReason,
10393
+ isGoalTokenBudgetSpent,
10394
+ goalTurnBudgetReason,
10395
+ isGoalTurnBudgetSpent,
10396
+ goalActiveTimeBudgetReason,
10397
+ isGoalActiveTimeBudgetSpent,
10398
+ PAUSED_GOAL_SYSTEM_REMINDER,
10399
+ isGoalEvidenceProofKind,
10400
+ emptyGoalSnapshot,
10401
+ goalRequiresExactPermit,
10402
+ isRepeatedBlockerProposal,
10403
+ GOAL_INFEASIBLE_NEXT_STEP,
10404
+ validateGoalProposalReason,
10405
+ GOAL_PAUSE_REASON_USER_INTERRUPT,
10406
+ GOAL_PAUSE_REASON_COMMAND,
10407
+ GOAL_PAUSE_REASON_SESSION_TOKEN_LIMIT,
10408
+ GOAL_PAUSE_REASON_STOP_HOOK_CAP,
10409
+ GOAL_PAUSE_REASON_SESSION_DISPOSED,
10410
+ GOAL_PAUSE_REASON_HEADLESS_RUN_ENDED,
10411
+ GOAL_PAUSE_REASON_NO_PROGRESS,
10412
+ goalPauseReasonForFailure,
10413
+ goalPauseReasonForHeadlessFailure,
10414
+ goalPauseReasonForRunBudget,
10415
+ GoalConflictError,
10416
+ GoalInvalidTransitionError,
10417
+ elapsedActiveTime,
10418
+ reduceGoalControl,
10419
+ reduceGoalTurnFinished,
10420
+ parseGoalControlRequest,
10421
+ parseGoalStateRecordPayloadV2,
10422
+ parseGoalSnapshotV2,
10423
+ parseGoalStateCause,
10424
+ goalStateEventFromSnapshot,
9571
10425
  initializeDaemonMetrics,
9572
10426
  registerDaemonGaugeCallbacks,
9573
10427
  recordDaemonHttpRequest,
@@ -9617,6 +10471,11 @@ export {
9617
10471
  getAutoSkillCuratorStatus,
9618
10472
  restoreArchivedAutoSkill
9619
10473
  };
10474
+ /**
10475
+ * @license
10476
+ * Copyright 2025 Qwen Code
10477
+ * SPDX-License-Identifier: Apache-2.0
10478
+ */
9620
10479
  /**
9621
10480
  * @license
9622
10481
  * Copyright 2026 Qwen Team