@qwen-code/qwen-code 0.22.0-nightly.20260825.22bb5e8b9f → 0.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/bundled/coordinate/SKILL.md +3 -3
  2. package/bundled/qc-helper/docs/configuration/model-providers.md +2 -0
  3. package/bundled/qc-helper/docs/configuration/settings.md +6 -6
  4. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  5. package/bundled/qc-helper/docs/features/channels/dws.md +120 -0
  6. package/bundled/qc-helper/docs/features/channels/overview.md +3 -3
  7. package/bundled/qc-helper/docs/features/code-review.md +1 -1
  8. package/bundled/qc-helper/docs/qwen-serve.md +2 -0
  9. package/bundled/review/SKILL.md +47 -12
  10. package/bundled/review/references/persistence.md +6 -6
  11. package/bundled/review/references/posting.md +2 -2
  12. package/chunks/MaxSizedBox-UUTUE42J.js +112 -0
  13. package/chunks/{StandaloneSessionPicker-NEWUAPCT.js → StandaloneSessionPicker-XF2TVJFK.js} +78 -77
  14. package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
  15. package/chunks/{acpAgent-A5CIQGW6.js → acpAgent-GY53MJIW.js} +254 -158
  16. package/chunks/{agent-TQ6CYOIL.js → agent-7U6CC5KF.js} +41 -41
  17. package/chunks/agent-headless-32O4L2CT.js +87 -0
  18. package/chunks/{anthropicContentGenerator-FSBGS426.js → anthropicContentGenerator-U76GTVB6.js} +7 -7
  19. package/chunks/{artifact-tool-UQTNZDUF.js → artifact-tool-XDJCZZCF.js} +2 -2
  20. package/chunks/{askUserQuestion-BSZALR7M.js → askUserQuestion-ZXXERLEV.js} +2 -2
  21. package/chunks/{bridge-MBOVCHXN.js → bridge-DFX2FFH4.js} +57 -56
  22. package/chunks/{ca-DZBZOMLU.js → ca-7HPYOYSZ.js} +1 -0
  23. package/chunks/{channel-management-service-XGGL6PLF.js → channel-management-service-HXXS3HOZ.js} +4 -4
  24. package/chunks/channel-settings-store-ELLH2M4M.js +117 -0
  25. package/chunks/{channel-worker-group-GIXIF4VT.js → channel-worker-group-EVDC2P4K.js} +5 -5
  26. package/chunks/{channel-worker-manager-ZBSYXJEB.js → channel-worker-manager-IJJZHGEI.js} +5 -5
  27. package/chunks/{channel-worker-supervisor-NI6JEY4Q.js → channel-worker-supervisor-YSKB5GVB.js} +9 -5
  28. package/chunks/{chunk-CPZQJP6J.js → chunk-27ONXAFY.js} +1 -1
  29. package/chunks/{chunk-FXNLH7E6.js → chunk-2CRNTW2B.js} +18 -2
  30. package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
  31. package/chunks/{chunk-YX4II73B.js → chunk-2FN2HNTI.js} +2 -2
  32. package/chunks/{chunk-7KGJGYGA.js → chunk-2MHGD7EE.js} +1 -1
  33. package/chunks/{chunk-H5K5MRU7.js → chunk-2NCVUT3C.js} +4 -4
  34. package/chunks/{chunk-VLEGGCEA.js → chunk-2NNTE2ED.js} +171 -1
  35. package/chunks/{chunk-LNKZTLTH.js → chunk-2SERYG4T.js} +1 -1
  36. package/chunks/{chunk-UEHH33VE.js → chunk-2YDYDDE2.js} +6 -6
  37. package/chunks/{chunk-U7GJPTEY.js → chunk-2YEZNBSD.js} +66 -60
  38. package/chunks/{chunk-L6PFEZUM.js → chunk-2ZV3CZKI.js} +82 -12
  39. package/chunks/{chunk-36XTQW3N.js → chunk-3B5DCAQU.js} +28 -11
  40. package/chunks/{chunk-DE24WTEJ.js → chunk-3BV7TZNQ.js} +3 -3
  41. package/chunks/{chunk-IKPQM6I5.js → chunk-3FSBMAYD.js} +1 -1
  42. package/chunks/{chunk-J54EA46E.js → chunk-3UZCLCXR.js} +3 -3
  43. package/chunks/{chunk-ZROP2DTX.js → chunk-43C2II2G.js} +5 -5
  44. package/chunks/{chunk-2ZH5XAOO.js → chunk-47SIHHPL.js} +8 -8
  45. package/chunks/{chunk-EEBIINBT.js → chunk-4DCP3362.js} +6 -14
  46. package/chunks/{chunk-DF6DJZIX.js → chunk-4TPAG3O7.js} +1 -1
  47. package/chunks/{chunk-6L5EXDDN.js → chunk-5CI4AXDD.js} +4 -4
  48. package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
  49. package/chunks/{chunk-YPJVAQ7V.js → chunk-5MK32KJV.js} +3 -3
  50. package/chunks/{chunk-XXA72PGJ.js → chunk-5T4LWWNX.js} +2 -2
  51. package/chunks/{chunk-NA6AZRDQ.js → chunk-5Y2JCJAH.js} +2 -2
  52. package/chunks/{chunk-3ROKI6MD.js → chunk-5ZYZPDDF.js} +978 -886
  53. package/chunks/{chunk-U4SJGOBF.js → chunk-62PXFOK4.js} +4 -4
  54. package/chunks/{chunk-SKXXO64C.js → chunk-6E4WHQJV.js} +1 -1
  55. package/chunks/{chunk-6Y7XMJFF.js → chunk-6HTMIKXZ.js} +6 -6
  56. package/chunks/{chunk-MGEXTDBI.js → chunk-6KS24S3X.js} +2 -2
  57. package/chunks/{chunk-ZJWFRMCY.js → chunk-6US7BF3G.js} +2 -2
  58. package/chunks/{chunk-RSOG6JND.js → chunk-6YAR6ZU3.js} +2 -2
  59. package/chunks/{chunk-Z3GFRVAY.js → chunk-73WFGVIZ.js} +3 -3
  60. package/chunks/{chunk-IX3CWNG7.js → chunk-76WGY6LW.js} +3 -3
  61. package/chunks/{chunk-CGWPQ6IM.js → chunk-77TOMRBG.js} +3 -3
  62. package/chunks/{chunk-JVTU5JYO.js → chunk-7AS7QX72.js} +1 -1
  63. package/chunks/{chunk-RLIS2VLZ.js → chunk-7DPKPBOQ.js} +2 -2
  64. package/chunks/{chunk-XQNWTA4Y.js → chunk-7JPW6IYH.js} +1 -1
  65. package/chunks/{chunk-UEY5WCRB.js → chunk-7QGEJI7M.js} +1 -1
  66. package/chunks/{chunk-GWUZOBCQ.js → chunk-A7X32SCT.js} +5 -5
  67. package/chunks/{chunk-R7Q5V3A5.js → chunk-AYVIGUUK.js} +1 -1
  68. package/chunks/{chunk-AIT6BMBI.js → chunk-BDHLBR46.js} +17 -3
  69. package/chunks/{chunk-3G6MRLTM.js → chunk-BKDAF7ES.js} +2 -2
  70. package/chunks/{chunk-5AHCPETA.js → chunk-BQBUZDDH.js} +3 -3
  71. package/chunks/{chunk-3KV5KXKU.js → chunk-BVE5EMIG.js} +2 -2
  72. package/chunks/{chunk-NDVTSFWZ.js → chunk-BX2BZPFJ.js} +3 -3
  73. package/chunks/{chunk-7UVAWPYG.js → chunk-C4WBKZJT.js} +4 -4
  74. package/chunks/{chunk-HYBEI2LH.js → chunk-CITGRGCM.js} +2 -1
  75. package/chunks/{chunk-TEQKBONY.js → chunk-CPPYZHBN.js} +1 -1
  76. package/chunks/chunk-DCSAVGDJ.js +20 -0
  77. package/chunks/{chunk-RSWDOHXS.js → chunk-DEYPMJPD.js} +1 -1
  78. package/chunks/{chunk-OWE7TE3F.js → chunk-DP7LABIB.js} +1 -1
  79. package/chunks/{chunk-LQF4PWEU.js → chunk-E4I5MVBR.js} +1 -1
  80. package/chunks/{chunk-NFDTDV37.js → chunk-E55H6BZ7.js} +4 -0
  81. package/chunks/{chunk-K623ENWT.js → chunk-E6FGMDFQ.js} +4 -0
  82. package/chunks/{chunk-QWTNAHCM.js → chunk-EAV3TENS.js} +3 -3
  83. package/chunks/{chunk-27HAGBZG.js → chunk-EB4VDXNI.js} +1 -1
  84. package/chunks/{chunk-RDPKOVXL.js → chunk-EC5BONC3.js} +1 -1
  85. package/chunks/{chunk-JHZIPJWY.js → chunk-EEQYTWGU.js} +5 -5
  86. package/chunks/{chunk-MFSV57XN.js → chunk-EKP3M4RF.js} +1 -1
  87. package/chunks/{chunk-R544UY5E.js → chunk-ELY4QVIB.js} +1 -1
  88. package/chunks/{chunk-PFCVB5ZI.js → chunk-EMGAVCBZ.js} +2 -2
  89. package/chunks/{chunk-JGDTCEBH.js → chunk-FJWICLG7.js} +1 -1
  90. package/chunks/{chunk-OXMS5HCS.js → chunk-FK4H3V6S.js} +5 -5
  91. package/chunks/{chunk-WANR3VVK.js → chunk-FN5C6C7G.js} +125 -60
  92. package/chunks/{chunk-5PVLDRGJ.js → chunk-FPH6TXD3.js} +1 -1
  93. package/chunks/{chunk-OY3ZSNQC.js → chunk-FVDQ5E67.js} +3 -3
  94. package/chunks/{chunk-J752LLEJ.js → chunk-GNMJNDZE.js} +1 -1
  95. package/chunks/{chunk-MSCVPOZR.js → chunk-GNRVKN76.js} +4 -4
  96. package/chunks/{chunk-FNZ42WN7.js → chunk-GTUKW3I6.js} +1 -1
  97. package/chunks/{chunk-NSPS67BG.js → chunk-GZJUCMH4.js} +1 -1
  98. package/chunks/{chunk-SNWAXNJ4.js → chunk-HJOWQUE2.js} +14 -11
  99. package/chunks/{chunk-3K5ORUVO.js → chunk-I32QCIK7.js} +1 -1
  100. package/chunks/{chunk-BOQRZ443.js → chunk-I6VVOZDK.js} +2 -2
  101. package/chunks/{chunk-KUPVZ4EO.js → chunk-I6YW3T3W.js} +207 -26
  102. package/chunks/{chunk-O6CS7VRT.js → chunk-ICWGPK23.js} +7 -7
  103. package/chunks/{chunk-EFT2T2LA.js → chunk-IJVDHPKD.js} +2 -2
  104. package/chunks/{chunk-SEMN7BNM.js → chunk-IKN3IUJP.js} +9 -8
  105. package/chunks/{chunk-O5ONGZGZ.js → chunk-ILPXSKGQ.js} +2 -2
  106. package/chunks/{chunk-QQQSUCC4.js → chunk-IPQA4SR5.js} +1 -1
  107. package/chunks/{chunk-SXBRB7ZP.js → chunk-IRIX323G.js} +2 -2
  108. package/chunks/{chunk-EJ5XRNOK.js → chunk-J7MLXFC5.js} +2 -2
  109. package/chunks/{chunk-KDGY3ST4.js → chunk-JECO75XD.js} +2 -2
  110. package/chunks/chunk-JLGFGPZJ.js +346 -0
  111. package/chunks/{chunk-COT2IXPM.js → chunk-JUIJ3FXC.js} +5 -5
  112. package/chunks/{chunk-IFWUT4GY.js → chunk-JVPFTDBK.js} +1 -1
  113. package/chunks/{chunk-455ZIBFX.js → chunk-K63NK3KL.js} +13 -13
  114. package/chunks/{chunk-MBLNXX3G.js → chunk-KCOXDRQL.js} +5 -5
  115. package/chunks/{chunk-3LUGIYS3.js → chunk-KOJ6MHD5.js} +3 -1
  116. package/chunks/{chunk-W4JA6Z44.js → chunk-KWFP3WV6.js} +9 -7
  117. package/chunks/{chunk-QKSMM4HF.js → chunk-L436XFLJ.js} +1 -1
  118. package/chunks/{chunk-M4TV7AJX.js → chunk-LI2HEMKO.js} +4 -4
  119. package/chunks/{chunk-FLTGTSLG.js → chunk-LJP2BBMK.js} +4 -4
  120. package/chunks/{chunk-HTIG2U5C.js → chunk-LRKMQPMD.js} +1 -1
  121. package/chunks/{chunk-YS4H3OFV.js → chunk-MDZO5V2O.js} +6 -6
  122. package/chunks/{chunk-2HYQZYPT.js → chunk-MW5AHWOZ.js} +7 -7
  123. package/chunks/{chunk-SJDR2S55.js → chunk-MYLXL7F6.js} +11 -11
  124. package/chunks/{chunk-PIZZIIEA.js → chunk-MZS7GEC7.js} +1 -1
  125. package/chunks/{chunk-H3JIT2M6.js → chunk-NER3H7PI.js} +1 -1
  126. package/chunks/{chunk-XYUJPDPB.js → chunk-NVK4HJYQ.js} +1 -1
  127. package/chunks/{chunk-GQQHY6TL.js → chunk-NY3IJYAV.js} +7 -7
  128. package/chunks/{chunk-3E53DKST.js → chunk-O3BUXIPM.js} +3 -3
  129. package/chunks/{chunk-QOUFO7TV.js → chunk-O5YGAEQS.js} +6 -6
  130. package/chunks/{chunk-OINGLDAX.js → chunk-ODXCSIH5.js} +4 -4
  131. package/chunks/{chunk-FMDWTE5I.js → chunk-OI2DR6QB.js} +2 -2
  132. package/chunks/{chunk-ENZMDVCM.js → chunk-OQ6LTSX3.js} +1 -1
  133. package/chunks/{chunk-KUDADN3R.js → chunk-OT26ITEY.js} +3 -3
  134. package/chunks/{chunk-FZUVUBYH.js → chunk-OX44MOAN.js} +3 -3
  135. package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
  136. package/chunks/{chunk-D2IGZJA7.js → chunk-PAJGKZAA.js} +272 -3
  137. package/chunks/{chunk-MTKBZIXU.js → chunk-PVBT5QPD.js} +1 -1
  138. package/chunks/{chunk-HDH5IDJH.js → chunk-R2ZJH3FV.js} +3 -3
  139. package/chunks/{chunk-SJLW5XGQ.js → chunk-RRKNX553.js} +1 -1
  140. package/chunks/{chunk-JS55F2GJ.js → chunk-SDVF6A42.js} +3 -3
  141. package/chunks/{chunk-DZPWZPGJ.js → chunk-SKNVVYIJ.js} +3 -3
  142. package/chunks/{chunk-SIC4S3RX.js → chunk-SLEWBQWM.js} +2 -2
  143. package/chunks/{chunk-P7DVAZKV.js → chunk-SM7ZVKTF.js} +7 -7
  144. package/chunks/{chunk-3N7EFOOM.js → chunk-SQPOJ4ZI.js} +11 -1
  145. package/chunks/{chunk-YOM3CJOP.js → chunk-SRGENTPF.js} +19 -19
  146. package/chunks/{chunk-ZB7VDPZB.js → chunk-T2CRBIDJ.js} +1 -1
  147. package/chunks/{chunk-F37T2S4O.js → chunk-T2HMXHYA.js} +6 -6
  148. package/chunks/{chunk-5X33EPHJ.js → chunk-T6OODF2U.js} +1 -1
  149. package/chunks/{chunk-7GECZMES.js → chunk-TKO4TLT6.js} +3 -3
  150. package/chunks/{chunk-PQ4RTSTH.js → chunk-TOF4UZHH.js} +3 -3
  151. package/chunks/{chunk-LD76HNCC.js → chunk-UCSV2IZW.js} +3 -3
  152. package/chunks/{chunk-EUZE3GSL.js → chunk-UX3IFLJM.js} +93 -9
  153. package/chunks/{chunk-AHQBSQYT.js → chunk-V3GINY6K.js} +3 -3
  154. package/chunks/{chunk-DD5XZICM.js → chunk-VL4YX3FH.js} +1 -1
  155. package/chunks/{chunk-DLYJ3RN7.js → chunk-VMDURMFY.js} +58 -32
  156. package/chunks/{chunk-E6BJFSLJ.js → chunk-W2WRNJKX.js} +6 -6
  157. package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
  158. package/chunks/{chunk-QKGJIP2H.js → chunk-WBT3STGU.js} +1 -1
  159. package/chunks/{chunk-X3PRXXUH.js → chunk-WEGXPP5E.js} +1 -1
  160. package/chunks/{chunk-V6R3IEHF.js → chunk-XJS54K4A.js} +2 -2
  161. package/chunks/{chunk-NDJ3436G.js → chunk-XNXWEGKB.js} +3 -3
  162. package/chunks/{chunk-UFWRXRQ5.js → chunk-XYX474JQ.js} +1312 -290
  163. package/chunks/{chunk-UY2JOZK7.js → chunk-ZEADBZLO.js} +3 -3
  164. package/chunks/{chunk-SNJOBGQV.js → chunk-ZJG323IA.js} +4 -3
  165. package/chunks/{chunk-CZIF7I53.js → chunk-ZKAZP2ZG.js} +2 -2
  166. package/chunks/{chunk-DV3KOUUU.js → chunk-ZLTEQYNC.js} +2 -2
  167. package/chunks/{chunk-RLR7K4JJ.js → chunk-ZWKGZB2K.js} +3 -3
  168. package/chunks/{chunk-EJ2GPZDU.js → chunk-ZXDM7DYV.js} +1049 -383
  169. package/chunks/config-utils-7M6PCTLT.js +113 -0
  170. package/chunks/contextCommand-G4QG3TW6.js +108 -0
  171. package/chunks/{core-runtime-SZFD2YQA.js → core-runtime-PKNQ63VL.js} +53 -52
  172. package/chunks/{create-sub-session-OXESCUS7.js → create-sub-session-PLGPY6TV.js} +53 -52
  173. package/chunks/{create-sub-session-5ZLCAS2P.js → create-sub-session-RVHSWVAP.js} +3 -3
  174. package/chunks/{cron-create-P4CPPO25.js → cron-create-IJGVR5R2.js} +4 -4
  175. package/chunks/{cron-delete-FPD75GL4.js → cron-delete-4N5BI6GL.js} +4 -4
  176. package/chunks/{cron-list-QPML4MWL.js → cron-list-2CATIPUX.js} +4 -4
  177. package/chunks/{daemon-HY4AVTUM.js → daemon-NAYK4XXU.js} +34 -12
  178. package/chunks/{daemon-git-worktree-guard-EAVTZ6CE.js → daemon-git-worktree-guard-LDBJXH2U.js} +331 -86
  179. package/chunks/daemon-status-provider-F5FEHVVG.js +118 -0
  180. package/chunks/daemon-trust-policy-C6YTU5CQ.js +114 -0
  181. package/chunks/{daemon-trust-policy-monitor-ITF54474.js → daemon-trust-policy-monitor-IGEJPHQ4.js} +59 -58
  182. package/chunks/{deferred-core-runtime-WQ4NQA3N.js → deferred-core-runtime-GHT3GDOR.js} +53 -52
  183. package/chunks/{display-image-HOBBUJS5.js → display-image-DR55LL6M.js} +5 -5
  184. package/chunks/dist-4Q7NTUNB.js +2512 -0
  185. package/chunks/{dist-RW4QZD3K.js → dist-6H6RZ5H6.js} +2 -2
  186. package/chunks/{dist-ZUWCGMJ4.js → dist-7CKN54NL.js} +1 -1
  187. package/chunks/{dist-ZQJEKFZH.js → dist-DJBNNPLN.js} +1 -1
  188. package/chunks/{dist-5BX3J3AL.js → dist-FVJZSIO4.js} +28 -7
  189. package/chunks/{dist-OB6D7E7T.js → dist-SATKXKUR.js} +1 -1
  190. package/chunks/{dist-MEANA2OS.js → dist-TJUDJTCB.js} +1 -1
  191. package/chunks/{dist-4LRFQF7R.js → dist-UQUFZDIY.js} +1 -1
  192. package/chunks/{dist-7HGG7XLA.js → dist-ZBVOXSKF.js} +1 -1
  193. package/chunks/earlyInputCapture-HOSJTLWP.js +109 -0
  194. package/chunks/{edit-4MZYBPF5.js → edit-KSPVUEAS.js} +42 -42
  195. package/chunks/{en-X66KZS7T.js → en-6MDBWMTG.js} +1 -0
  196. package/chunks/{enter-worktree-WNR4JUPU.js → enter-worktree-UOZ6ZTP7.js} +7 -7
  197. package/chunks/{enterPlanMode-2EL6YAM5.js → enterPlanMode-DZTABSKN.js} +41 -41
  198. package/chunks/{environment-4QYNT2L3.js → environment-JXOSW25V.js} +57 -54
  199. package/chunks/{errors-N66MMOYD.js → errors-IOXFDE4J.js} +55 -54
  200. package/chunks/{exit-worktree-BUHUM6YC.js → exit-worktree-G2QATUCV.js} +7 -7
  201. package/chunks/{exitPlanMode-F73VQJBO.js → exitPlanMode-PZG4FXRB.js} +41 -41
  202. package/chunks/{fast-path-3L4YK6SO.js → fast-path-EBS7NAVL.js} +2 -2
  203. package/chunks/{gemini-4PINQJWX.js → gemini-JELEKOVS.js} +107 -103
  204. package/chunks/{geminiContentGenerator-7T7IU2V5.js → geminiContentGenerator-I2CKP7XI.js} +8 -8
  205. package/chunks/{glob-TWUYSRRG.js → glob-TDVEVPQZ.js} +41 -41
  206. package/chunks/{goal-tools-FTDQHRRX.js → goal-tools-CNVXMSZD.js} +70 -27
  207. package/chunks/{grep-QUQ3J6SR.js → grep-3NLSS32D.js} +6 -6
  208. package/chunks/handleAutoUpdate-AWAGHKOX.js +111 -0
  209. package/chunks/{i18n-Q6K7AX7Y.js → i18n-CYA25C5F.js} +54 -53
  210. package/chunks/{image-gen-RYOBEDNB.js → image-gen-63NN2H5N.js} +9 -9
  211. package/chunks/initializer-JD2FLNLO.js +115 -0
  212. package/chunks/installationInfo-N3DCWVWR.js +109 -0
  213. package/chunks/{keychain-token-storage-LQTBIXSX.js → keychain-token-storage-3MGFRYGM.js} +2 -2
  214. package/chunks/list-XDQAUET5.js +118 -0
  215. package/chunks/{list-agents-522ILPAR.js → list-agents-EXRSHIDJ.js} +2 -2
  216. package/chunks/loadedSettingsAdapter-IK7H5JRK.js +112 -0
  217. package/chunks/{loggingContentGenerator-RTDUJF6Y.js → loggingContentGenerator-CZWUAHAI.js} +20 -20
  218. package/chunks/{loop-wakeup-VSA4TBIC.js → loop-wakeup-XBPB2BRO.js} +5 -5
  219. package/chunks/{ls-FUCLEBTL.js → ls-WFONAND2.js} +4 -4
  220. package/chunks/{lsp-FYP6TW4R.js → lsp-DUKPDUXN.js} +2 -2
  221. package/chunks/{managed-npm-update-NUDVKV7F.js → managed-npm-update-54W23SP5.js} +54 -53
  222. package/chunks/mcp-2E7ZLMEE.js +112 -0
  223. package/chunks/{monitor-AU2SG5OL.js → monitor-A4J5QRGJ.js} +41 -41
  224. package/chunks/nonInteractiveCli-ZNDXB62Y.js +185 -0
  225. package/chunks/{notebook-edit-TGU7XHIO.js → notebook-edit-4ANFZON5.js} +42 -42
  226. package/chunks/{openaiContentGenerator-QPFWSUPT.js → openaiContentGenerator-JCCJJQZC.js} +24 -24
  227. package/chunks/pidfile-DHV2Y7UD.js +113 -0
  228. package/chunks/{processUtils-ZSHN6VGJ.js → processUtils-JJAR56SO.js} +2 -2
  229. package/chunks/prompt-terminal-ledger-LDZ6QVYA.js +107 -0
  230. package/chunks/{qwenContentGenerator-MEXKZX5O.js → qwenContentGenerator-5JM44ZSA.js} +46 -46
  231. package/chunks/{qwenOAuth2-QHHUP4KQ.js → qwenOAuth2-JIYAWXTW.js} +8 -8
  232. package/chunks/{read-file-T7ESVJAQ.js → read-file-N3E5DY7N.js} +12 -12
  233. package/chunks/{read-mcp-resource-5QGBDZ43.js → read-mcp-resource-7A7NFSFL.js} +2 -2
  234. package/chunks/read-package-up-6T6ICKR7.js +13 -0
  235. package/chunks/{record-artifact-K6BYYWXY.js → record-artifact-CPJ4IJSD.js} +4 -4
  236. package/chunks/report-findings-VFM5DENC.js +33 -0
  237. package/chunks/{request-shutdown-EUXDG4IH.js → request-shutdown-AXVOFN5C.js} +7 -7
  238. package/chunks/{resumeHistoryUtils-JFEAZEWW.js → resumeHistoryUtils-YQRITQAG.js} +60 -59
  239. package/chunks/{ripGrep-KOP6AHIX.js → ripGrep-NEIHKBKB.js} +17 -17
  240. package/chunks/{run-qwen-serve-IAVPTDB7.js → run-qwen-serve-IWGPZADI.js} +577 -67
  241. package/chunks/{runtime-ZICTJKT5.js → runtime-I76HPFUE.js} +64 -63
  242. package/chunks/{scheduler-YNVAANNX.js → scheduler-M6YL4K4I.js} +55 -54
  243. package/chunks/{sdk-exporters-http-GCVM7E4X.js → sdk-exporters-http-XXSKBD2C.js} +2 -2
  244. package/chunks/{sdk-impl-E3KA6NMY.js → sdk-impl-VPNBLV7I.js} +4 -4
  245. package/chunks/{send-message-EJUCEIKN.js → send-message-A2GXDX3B.js} +7 -7
  246. package/chunks/{serve-NF25WYMU.js → serve-XY5S63GN.js} +59 -58
  247. package/chunks/{server-7LKYWHCE.js → server-TWXRRREO.js} +605 -334
  248. package/chunks/{session-5FBBDYPI.js → session-IT5ZXU7A.js} +104 -99
  249. package/chunks/{settings-F7IXLQQW.js → settings-IX5HOOCG.js} +58 -57
  250. package/chunks/{shell-IJYC4BVX.js → shell-LZ55AAJB.js} +41 -41
  251. package/chunks/{skill-RTZU743G.js → skill-WSZ53D2R.js} +107 -23
  252. package/chunks/{skill-settings-ZOHS4J2E.js → skill-settings-5U7FTJIK.js} +58 -57
  253. package/chunks/{spawnChannel-JLKWUMTV.js → spawnChannel-TMC6VXGN.js} +55 -54
  254. package/chunks/{standalone-update-W44DUURE.js → standalone-update-CUYGWTR4.js} +55 -54
  255. package/chunks/{startInteractiveUI-7HPDSR7W.js → startInteractiveUI-O6BI2OSA.js} +219 -170
  256. package/chunks/{syntheticOutput-3ITPRJOB.js → syntheticOutput-5AJ444QT.js} +3 -3
  257. package/chunks/{task-create-USIZE733.js → task-create-CDJSOEQD.js} +11 -11
  258. package/chunks/{task-list-AWAJUPIP.js → task-list-BELMPA75.js} +5 -5
  259. package/chunks/{task-stop-I2CQSMDX.js → task-stop-U3S3KZG2.js} +2 -2
  260. package/chunks/{task-update-TFF2KJGL.js → task-update-77VCFDDZ.js} +11 -11
  261. package/chunks/{team-create-IU2A6HD3.js → team-create-UF4TMQEH.js} +41 -41
  262. package/chunks/{team-delete-E4C4AMPF.js → team-delete-YWFXX77L.js} +5 -5
  263. package/chunks/{team-plan-approval-BWI43D37.js → team-plan-approval-U57NSR6C.js} +41 -41
  264. package/chunks/{terminal-image-renderer-GQAMHJF2.js → terminal-image-renderer-DRL3BROJ.js} +55 -54
  265. package/chunks/theme-manager-HHJPUDRN.js +104 -0
  266. package/chunks/{todoWrite-ZUS3HGEF.js → todoWrite-435EO2CS.js} +4 -4
  267. package/chunks/{tool-search-TQNHT22X.js → tool-search-SV35UV72.js} +17 -17
  268. package/chunks/{total-session-admission-JMM73HNK.js → total-session-admission-TQI7TCTL.js} +57 -56
  269. package/chunks/{trustedFolders-BKQ2UXIB.js → trustedFolders-YKK67IP3.js} +54 -53
  270. package/chunks/{update-relaunch-WI7IWWCM.js → update-relaunch-DX7LVA4P.js} +5 -5
  271. package/chunks/{updateCheck-K6WUHPPT.js → updateCheck-6JRTKTUF.js} +58 -57
  272. package/chunks/useAutoAcceptIndicator-MYXYSKSL.js +122 -0
  273. package/chunks/{validateNonInterActiveAuth-RXCZM7MM.js → validateNonInterActiveAuth-B26O4YJP.js} +100 -95
  274. package/chunks/{version-IRAYALVC.js → version-K5D7VJ4B.js} +2 -2
  275. package/chunks/{web-fetch-FUG5KGKQ.js → web-fetch-VFHZLLNZ.js} +16 -16
  276. package/chunks/{web-search-SO3LHSHP.js → web-search-AQE5A4J5.js} +9 -9
  277. package/chunks/{workflow-XJRA3GRI.js → workflow-XL6AEUZ7.js} +150 -52
  278. package/chunks/workspace-providers-status-H6TG34YV.js +116 -0
  279. package/chunks/{workspace-registration-store-LCB4GHNP.js → workspace-registration-store-I4U3V5LL.js} +1 -1
  280. package/chunks/{workspace-registry-QWPFWGEF.js → workspace-registry-2PWNIYNI.js} +57 -56
  281. package/chunks/{workspace-service-MPGLZJF6.js → workspace-service-4FGTUJLA.js} +65 -64
  282. package/chunks/workspace-skills-status-7VOLUDT6.js +115 -0
  283. package/chunks/{workspace-trust-reconciler-4QDDGBQZ.js → workspace-trust-reconciler-GJ466KCE.js} +65 -64
  284. package/chunks/write-file-PWOYCT2K.js +90 -0
  285. package/chunks/{zh-TW-FZ3ETVR2.js → zh-TW-MV4FWFB6.js} +1 -0
  286. package/chunks/{zh-K3OJZ5LI.js → zh-X3WGU6SI.js} +1 -0
  287. package/chunks/{zoom-image-TCBO2YL5.js → zoom-image-NYJPC3NI.js} +12 -12
  288. package/cli.js +13 -13
  289. package/locales/ca.js +1 -0
  290. package/locales/en.js +1 -0
  291. package/locales/zh-TW.js +1 -0
  292. package/locales/zh.js +1 -0
  293. package/package.json +3 -3
  294. package/web-shell/assets/{abnfDiagram-VCTEODGH-hQsSuKY7.js → abnfDiagram-VCTEODGH-yq7z7Anb.js} +1 -1
  295. package/web-shell/assets/{arc-CpKLq3XD.js → arc-CbJO0xnT.js} +1 -1
  296. package/web-shell/assets/{architectureDiagram-5GKGNRK7-Bplk1J-m.js → architectureDiagram-5GKGNRK7-CRh89421.js} +1 -1
  297. package/web-shell/assets/{blockDiagram-NRAW4CY4-B-cca4ej.js → blockDiagram-NRAW4CY4-C75KAhKv.js} +1 -1
  298. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ8cn00E.js → c4Diagram-UCG6FXSJ-BzlMveFB.js} +1 -1
  299. package/web-shell/assets/channel-B3sGR79J.js +1 -0
  300. package/web-shell/assets/{chunk-2Q5K7J3B-DEQ2uYU0.js → chunk-2Q5K7J3B-DA8QDX3a.js} +1 -1
  301. package/web-shell/assets/{chunk-5VM5RSS4-DqH8Lz-4.js → chunk-5VM5RSS4-Bgu7gQ7Y.js} +1 -1
  302. package/web-shell/assets/{chunk-F27PBJKO-Dru7qMTB.js → chunk-F27PBJKO-BOew7pIK.js} +1 -1
  303. package/web-shell/assets/{chunk-G27WJ6UU-DN8KcdzT.js → chunk-G27WJ6UU-DHx1I-hO.js} +1 -1
  304. package/web-shell/assets/{chunk-JWPE2WC7-DMS-EquZ.js → chunk-JWPE2WC7-SarFW0WU.js} +1 -1
  305. package/web-shell/assets/{chunk-LCL6LL3I-ubbLaEwq.js → chunk-LCL6LL3I-BLzP083Z.js} +1 -1
  306. package/web-shell/assets/{chunk-POPQ4Y6H-DdIZqnYy.js → chunk-POPQ4Y6H-Bmkv_iKm.js} +1 -1
  307. package/web-shell/assets/{chunk-SVP7TREG-DkgYFSnb.js → chunk-SVP7TREG-MPx9r1N2.js} +1 -1
  308. package/web-shell/assets/{chunk-XXDRQBXY-CaesHiYG.js → chunk-XXDRQBXY-Ck-09rKG.js} +1 -1
  309. package/web-shell/assets/classDiagram-DTDB5LWJ-sTGo0K3v.js +1 -0
  310. package/web-shell/assets/classDiagram-v2-JRS7N3AN-sTGo0K3v.js +1 -0
  311. package/web-shell/assets/{cose-bilkent-JH36ORCC-bqnC4Oq-.js → cose-bilkent-JH36ORCC-DWm6lfOG.js} +1 -1
  312. package/web-shell/assets/{cynefin-OW5HDTMX-mDRBhRzB.js → cynefin-OW5HDTMX-DcBUyr5R.js} +1 -1
  313. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-B4Tod_Ik.js → cynefinDiagram-5FMLGOSQ-Df8qmd_p.js} +1 -1
  314. package/web-shell/assets/{dagre-3AP2YEHR-DU9f-iCw.js → dagre-3AP2YEHR-DDmGspD7.js} +1 -1
  315. package/web-shell/assets/{diagram-S7CK7UJ4-BsYVeB7c.js → diagram-S7CK7UJ4-BK_qFvbi.js} +1 -1
  316. package/web-shell/assets/{diagram-UQ7AKVKN-frM5Sn9C.js → diagram-UQ7AKVKN-Uw3AP_bi.js} +1 -1
  317. package/web-shell/assets/{diagram-VSXAHHWV-C1Z7uZdv.js → diagram-VSXAHHWV-CJOQKxY7.js} +1 -1
  318. package/web-shell/assets/{diagram-VX7I27RA-CIY4x0M9.js → diagram-VX7I27RA-DhdvZna5.js} +1 -1
  319. package/web-shell/assets/{diagram-Z3DM3KII-hTl4GIbg.js → diagram-Z3DM3KII-edQU0nlP.js} +1 -1
  320. package/web-shell/assets/{ebnfDiagram-PWID7BFC-4loIGTHZ.js → ebnfDiagram-PWID7BFC-4kugBEsO.js} +1 -1
  321. package/web-shell/assets/{erDiagram-SSCWMZ5O-B9Up14ul.js → erDiagram-SSCWMZ5O-BMkFivWO.js} +1 -1
  322. package/web-shell/assets/{flowDiagram-A5DVABFB-CIPfQBl9.js → flowDiagram-A5DVABFB-BM1ea8g-.js} +1 -1
  323. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DaZk3lrl.js → ganttDiagram-EL5Y4UJY-CXj_cKRf.js} +1 -1
  324. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-D-knAHoQ.js → gitGraphDiagram-WWUBYQGX-D0nEqwqu.js} +1 -1
  325. package/web-shell/assets/{index-Di8dYJlQ.js → index-B6JN54Pd.js} +1 -1
  326. package/web-shell/assets/{index-RNKRtdDf.css → index-C-XlQn24.css} +1 -1
  327. package/web-shell/assets/{index-pkWucfFU.js → index-DLjXM0dn.js} +367 -367
  328. package/web-shell/assets/{infoDiagram-RXCK75RN-7AJndIyq.js → infoDiagram-RXCK75RN-DF7aGGbQ.js} +1 -1
  329. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-DjIU3IKv.js → ishikawaDiagram-5VMMS53U-CZYNX1lL.js} +1 -1
  330. package/web-shell/assets/{journeyDiagram-EYS64GPL-D3cf3462.js → journeyDiagram-EYS64GPL-CvrqMUz1.js} +1 -1
  331. package/web-shell/assets/{kanban-definition-3QL26DDD-CmuPjlRe.js → kanban-definition-3QL26DDD-BZNJQZBj.js} +1 -1
  332. package/web-shell/assets/{layout-C2Ci1XAx.js → layout-Bf83x7D6.js} +1 -1
  333. package/web-shell/assets/{linear-CqOKGHue.js → linear-Bkc3ES2f.js} +1 -1
  334. package/web-shell/assets/{mermaid.core-Bnt57s5_.js → mermaid.core-C6xuovwz.js} +6 -6
  335. package/web-shell/assets/{mindmap-definition-FBJOCRG2-BSSJVfj3.js → mindmap-definition-FBJOCRG2-DzH6gVRg.js} +1 -1
  336. package/web-shell/assets/{pegDiagram-XKGWAZYB-DNLHwge4.js → pegDiagram-XKGWAZYB-DCvLh2fa.js} +1 -1
  337. package/web-shell/assets/{pieDiagram-E7YTZNPT-CYRSio_9.js → pieDiagram-E7YTZNPT-BtjVlx_6.js} +1 -1
  338. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CzSwKETq.js → quadrantDiagram-AXDQQJYC-IbroqxFe.js} +1 -1
  339. package/web-shell/assets/{railroadDiagram-O6MQD6OU-Dzbg_Jis.js → railroadDiagram-O6MQD6OU-BvMykiWW.js} +1 -1
  340. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CY3Apuzl.js → requirementDiagram-EFPCY7ZU-D-HHMyrh.js} +1 -1
  341. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-432Hiv50.js → sankeyDiagram-P5KCCOFB-C0XXhB6d.js} +1 -1
  342. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-CucAf-fk.js → sequenceDiagram-WJ2MYXX4-DseAXj5d.js} +1 -1
  343. package/web-shell/assets/{sizeCapture-X5ZJPWSS-RBc9fiXv.js → sizeCapture-X5ZJPWSS-Cek2EweK.js} +1 -1
  344. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BwsgjK6k.js → stateDiagram-HBIQ2CUA-yLv8wafW.js} +1 -1
  345. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DeThXnol.js +1 -0
  346. package/web-shell/assets/{swimlanes-XN3QIQJK-DMMYIqPz.js → swimlanes-XN3QIQJK-Cwz-opvE.js} +1 -1
  347. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-GW0R1ZSv.js +8 -0
  348. package/web-shell/assets/{timeline-definition-24CTP7MA-BbmmEMJb.js → timeline-definition-24CTP7MA-BJuFD7OG.js} +1 -1
  349. package/web-shell/assets/{vennDiagram-4TSXK5OY-DlfQjNzM.js → vennDiagram-4TSXK5OY-CNAavdoV.js} +1 -1
  350. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-86EXFbP6.js → wardleyDiagram-VM6X3IG4-DaIjAidq.js} +1 -1
  351. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-794nZBSV.js → xychartDiagram-S5SC5T6Z-DkcQXjTy.js} +1 -1
  352. package/web-shell/index.html +2 -2
  353. package/chunks/MaxSizedBox-RQWAKXYC.js +0 -111
  354. package/chunks/agent-headless-YBSOXERA.js +0 -87
  355. package/chunks/channel-settings-store-DD6W3EJQ.js +0 -116
  356. package/chunks/config-utils-WXWWMH2D.js +0 -112
  357. package/chunks/contextCommand-UKPGPBW5.js +0 -107
  358. package/chunks/daemon-status-provider-D2HNWRDK.js +0 -116
  359. package/chunks/daemon-trust-policy-F4JM5CKX.js +0 -113
  360. package/chunks/earlyInputCapture-54M7AWAF.js +0 -108
  361. package/chunks/handleAutoUpdate-T36AMYVP.js +0 -110
  362. package/chunks/initializer-6USYPDX7.js +0 -114
  363. package/chunks/installationInfo-46TRIE5M.js +0 -108
  364. package/chunks/list-BCX6JAYS.js +0 -117
  365. package/chunks/loadedSettingsAdapter-7OBB7B6J.js +0 -111
  366. package/chunks/mcp-FCS6V74Y.js +0 -111
  367. package/chunks/nonInteractiveCli-CQUUSJ3N.js +0 -180
  368. package/chunks/pidfile-SIEQM3X5.js +0 -112
  369. package/chunks/prompt-terminal-ledger-YIAGDBHG.js +0 -106
  370. package/chunks/theme-manager-73W4SEDX.js +0 -103
  371. package/chunks/useAutoAcceptIndicator-SMCU7IYQ.js +0 -121
  372. package/chunks/workspace-providers-status-ZYXLTCJ5.js +0 -115
  373. package/chunks/workspace-skills-status-ZVFYCT5C.js +0 -114
  374. package/chunks/write-file-2KVXXVWB.js +0 -90
  375. package/web-shell/assets/channel-DggMZLoL.js +0 -1
  376. package/web-shell/assets/classDiagram-DTDB5LWJ-DPMQMV0q.js +0 -1
  377. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DPMQMV0q.js +0 -1
  378. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C_HLER48.js +0 -1
  379. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-KP0j5nd5.js +0 -8
@@ -3,24 +3,24 @@
3
3
  import {
4
4
  AUTO_THEME_NAME,
5
5
  themeManager
6
- } from "./chunk-X3PRXXUH.js";
6
+ } from "./chunk-WEGXPP5E.js";
7
7
  import {
8
8
  initializeI18n,
9
9
  resolveLanguageSetting,
10
10
  t
11
- } from "./chunk-E6BJFSLJ.js";
11
+ } from "./chunk-W2WRNJKX.js";
12
12
  import {
13
13
  IdeClient
14
- } from "./chunk-UFWRXRQ5.js";
14
+ } from "./chunk-XYX474JQ.js";
15
15
  import {
16
16
  AuthEvent,
17
17
  IdeConnectionEvent,
18
18
  logAuth,
19
19
  logIdeConnection
20
- } from "./chunk-EUZE3GSL.js";
20
+ } from "./chunk-UX3IFLJM.js";
21
21
  import {
22
22
  getErrorMessage
23
- } from "./chunk-VLEGGCEA.js";
23
+ } from "./chunk-2NNTE2ED.js";
24
24
  import {
25
25
  init_esbuild_shims
26
26
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  runSideQuery
5
- } from "./chunk-QQQSUCC4.js";
5
+ } from "./chunk-IPQA4SR5.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -21,6 +21,8 @@ var GOAL_CHECKPOINT_CLAIM_MAX_BYTES = 16e3;
21
21
  var GOAL_CHECKPOINT_SOURCE_REFERENCE_LIMIT = 32;
22
22
  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.";
23
23
  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.";
24
+ var GOAL_CHECKPOINT_STALL_LIMIT = 3;
25
+ var GOAL_CHECKPOINT_STALLED_REASON = "The current Goal revision ran three consecutive evidence checkpoints without relief: the evidence window overflowed every time, and each check either came back with a full claim list or a result that could not be folded into claims at all, 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.";
24
26
  function isGoalLimitKind(value) {
25
27
  return value === "evidence_catalog" || value === "checkpoint_request";
26
28
  }
@@ -559,7 +561,7 @@ var GoalEvidenceRecordIndexAccumulator = class {
559
561
  this.lastPartPreviewValues
560
562
  ).trim();
561
563
  }
562
- preview = capPreviewBytes(preview);
564
+ preview = capPreviewBytes(preview, CATALOG_PREVIEW_BYTE_LIMIT);
563
565
  const catalogEntry = this.provenance && this.parsedGoalContext && preview ? {
564
566
  uuid: this.uuid,
565
567
  provenance: this.provenance,
@@ -1102,7 +1104,10 @@ function checkpointCatalogEntries(goal) {
1102
1104
  uuid: claim.id,
1103
1105
  provenance: "goal_checkpoint",
1104
1106
  turnId: `checkpoint:${checkpoint.checkpointId}`,
1105
- preview: capPreviewBytes(claim.claim.slice(0, CATALOG_PREVIEW_LIMIT)),
1107
+ preview: capPreviewBytes(
1108
+ claim.claim.slice(0, CATALOG_PREVIEW_LIMIT),
1109
+ CATALOG_PREVIEW_BYTE_LIMIT
1110
+ ),
1106
1111
  proofKind: claim.proofKind
1107
1112
  }));
1108
1113
  }
@@ -1171,15 +1176,15 @@ function legacySafeProvenance(record) {
1171
1176
  return void 0;
1172
1177
  }
1173
1178
  __name(legacySafeProvenance, "legacySafeProvenance");
1174
- function capPreviewBytes(value) {
1175
- if (Buffer.byteLength(value, "utf8") <= CATALOG_PREVIEW_BYTE_LIMIT) {
1179
+ function capPreviewBytes(value, limit) {
1180
+ if (Buffer.byteLength(value, "utf8") <= limit) {
1176
1181
  return value;
1177
1182
  }
1178
1183
  let byteLength = 0;
1179
1184
  let cutoff = 0;
1180
1185
  for (const codePoint of value) {
1181
1186
  const codePointBytes = Buffer.byteLength(codePoint, "utf8");
1182
- if (byteLength + codePointBytes > CATALOG_PREVIEW_BYTE_LIMIT) break;
1187
+ if (byteLength + codePointBytes > limit) break;
1183
1188
  byteLength += codePointBytes;
1184
1189
  cutoff += codePoint.length;
1185
1190
  }
@@ -1225,7 +1230,8 @@ function evidencePreview(record, provenance) {
1225
1230
  const projection = provenance === "real_user" ? projectUserTranscriptForDisplay(record) : void 0;
1226
1231
  if (projection?.displayText !== void 0) {
1227
1232
  return capPreviewBytes(
1228
- projection.displayText.slice(0, CATALOG_PREVIEW_LIMIT).trim()
1233
+ projection.displayText.slice(0, CATALOG_PREVIEW_LIMIT).trim(),
1234
+ CATALOG_PREVIEW_BYTE_LIMIT
1229
1235
  );
1230
1236
  }
1231
1237
  let preview = "";
@@ -1245,7 +1251,7 @@ function evidencePreview(record, provenance) {
1245
1251
  }
1246
1252
  if (preview.length >= CATALOG_PREVIEW_LIMIT) break;
1247
1253
  }
1248
- return capPreviewBytes(preview.trim());
1254
+ return capPreviewBytes(preview.trim(), CATALOG_PREVIEW_BYTE_LIMIT);
1249
1255
  }
1250
1256
  __name(evidencePreview, "evidencePreview");
1251
1257
  function renderToolResponse(functionResponse) {
@@ -1395,6 +1401,7 @@ function reduceGoalControl(current, transition) {
1395
1401
  objective: normalizeObjective(request.objective, snapshotOf(current)),
1396
1402
  evidenceCursor: copyCursor(transition.cursor),
1397
1403
  evidenceCheckpoint: void 0,
1404
+ checkpointStalls: void 0,
1398
1405
  lastReason: void 0,
1399
1406
  limitKind: void 0
1400
1407
  });
@@ -1420,15 +1427,22 @@ function reduceGoalControl(current, transition) {
1420
1427
  snapshotOf(current)
1421
1428
  );
1422
1429
  }
1423
- if (current.status === "usage_limited" && isEvidenceLimited(current)) {
1424
- throw new GoalInvalidTransitionError(
1425
- "An evidence-limited Goal cannot be resumed; edit or replace the Goal first",
1426
- snapshotOf(current)
1427
- );
1428
- }
1429
1430
  if (request.action !== "resume") {
1430
1431
  return assertNever(request, snapshotOf(current));
1431
1432
  }
1433
+ if (current.status === "usage_limited" && isEvidenceLimited(current)) {
1434
+ return transitionGoal(current, transition.now, {
1435
+ status: "active",
1436
+ evidenceCursor: copyCursor(transition.cursor),
1437
+ evidenceCheckpoint: void 0,
1438
+ // The streak counts checkpoints against one window; this resume starts
1439
+ // a different one, so carrying it over would spend the new window's
1440
+ // allowance on the old window's failures.
1441
+ checkpointStalls: void 0,
1442
+ lastReason: void 0,
1443
+ limitKind: void 0
1444
+ });
1445
+ }
1432
1446
  return transitionGoal(current, transition.now, {
1433
1447
  status: "active"
1434
1448
  });
@@ -1623,9 +1637,10 @@ function parseGoalRecord(value) {
1623
1637
  "createdAt",
1624
1638
  "updatedAt",
1625
1639
  "evidenceCheckpoint",
1640
+ "checkpointStalls",
1626
1641
  "lastReason",
1627
1642
  "limitKind"
1628
- ]) || 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"]) || !isFiniteNumber(value["createdAt"]) || !isFiniteNumber(value["updatedAt"]) || !isGoalEvidenceCheckpoint(value["evidenceCheckpoint"]) || value["lastReason"] !== void 0 && typeof value["lastReason"] !== "string" || value["limitKind"] !== void 0 && (!isGoalLimitKind(value["limitKind"]) || value["status"] !== "usage_limited")) {
1643
+ ]) || 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"]) || !isFiniteNumber(value["createdAt"]) || !isFiniteNumber(value["updatedAt"]) || !isGoalEvidenceCheckpoint(value["evidenceCheckpoint"]) || value["checkpointStalls"] !== void 0 && !isNonNegativeInteger(value["checkpointStalls"]) || value["lastReason"] !== void 0 && typeof value["lastReason"] !== "string" || value["limitKind"] !== void 0 && (!isGoalLimitKind(value["limitKind"]) || value["status"] !== "usage_limited")) {
1629
1644
  return void 0;
1630
1645
  }
1631
1646
  if (value["evidenceCheckpoint"] && value["evidenceCursor"].recordId !== value["evidenceCheckpoint"].checkpointId) {
@@ -1646,6 +1661,8 @@ function parseGoalRecord(value) {
1646
1661
  ...value["evidenceCheckpoint"] === void 0 ? {} : {
1647
1662
  evidenceCheckpoint: structuredClone(value["evidenceCheckpoint"])
1648
1663
  },
1664
+ // Zero is spelled as no field; a persisted 0 restores the same way.
1665
+ ...value["checkpointStalls"] ? { checkpointStalls: value["checkpointStalls"] } : {},
1649
1666
  ...value["lastReason"] === void 0 ? {} : { lastReason: value["lastReason"] },
1650
1667
  ...value["limitKind"] === void 0 ? {} : { limitKind: value["limitKind"] }
1651
1668
  };
@@ -1737,6 +1754,10 @@ import { randomUUID } from "node:crypto";
1737
1754
 
1738
1755
  // packages/core/src/goals/goal-checkpoint.ts
1739
1756
  init_esbuild_shims();
1757
+ function isGoalCheckpointStalled(window, checkpoint) {
1758
+ return window.truncated && checkpoint.claims.length >= GOAL_CHECKPOINT_CLAIM_LIMIT;
1759
+ }
1760
+ __name(isGoalCheckpointStalled, "isGoalCheckpointStalled");
1740
1761
  var InvalidGoalCheckpointError = class extends Error {
1741
1762
  static {
1742
1763
  __name(this, "InvalidGoalCheckpointError");
@@ -1919,10 +1940,14 @@ function parseGoalCheckpointVerifierText(text) {
1919
1940
  try {
1920
1941
  value = JSON.parse(text);
1921
1942
  } catch {
1922
- throw new Error("Goal checkpoint verifier returned invalid JSON");
1943
+ throw new InvalidGoalCheckpointError(
1944
+ "Goal checkpoint verifier returned invalid JSON"
1945
+ );
1923
1946
  }
1924
1947
  if (!isRecord4(value) || !hasOnlyKeys4(value, ["claims"]) || !Array.isArray(value["claims"]) || value["claims"].length === 0 || value["claims"].length > GOAL_CHECKPOINT_CLAIM_LIMIT) {
1925
- throw new Error("Goal checkpoint verifier returned invalid claims");
1948
+ throw new InvalidGoalCheckpointError(
1949
+ "Goal checkpoint verifier returned invalid claims"
1950
+ );
1926
1951
  }
1927
1952
  const claims = value["claims"].map(
1928
1953
  (claim, index) => parseClaim(claim, index)
@@ -1930,15 +1955,6 @@ function parseGoalCheckpointVerifierText(text) {
1930
1955
  return { claims };
1931
1956
  }
1932
1957
  __name(parseGoalCheckpointVerifierText, "parseGoalCheckpointVerifierText");
1933
- function validateGoalCheckpointVerifierText(text) {
1934
- try {
1935
- parseGoalCheckpointVerifierText(text);
1936
- return null;
1937
- } catch (error) {
1938
- return error instanceof Error ? error.message : "Goal checkpoint verifier returned invalid output";
1939
- }
1940
- }
1941
- __name(validateGoalCheckpointVerifierText, "validateGoalCheckpointVerifierText");
1942
1958
  function createGoalCheckpointVerifier(config, options = {}) {
1943
1959
  const timeoutMs = options.timeoutMs ?? GOAL_CHECKPOINT_VERIFIER_TIMEOUT_MS;
1944
1960
  return async (input, attemptSignal) => {
@@ -1963,8 +1979,11 @@ function createGoalCheckpointVerifier(config, options = {}) {
1963
1979
  responseMimeType: "application/json",
1964
1980
  responseJsonSchema: GOAL_CHECKPOINT_VERIFIER_SCHEMA,
1965
1981
  thinkingConfig: { thinkingBudget: 0, includeThoughts: false }
1966
- },
1967
- validate: validateGoalCheckpointVerifierText
1982
+ }
1983
+ // Parsing stays out of a validate hook: runSideQuery re-wraps hook
1984
+ // failures into plain Errors, dropping the InvalidGoalCheckpointError
1985
+ // class the runtime's checkpoint stall breaker counts unusable
1986
+ // results by.
1968
1987
  });
1969
1988
  return parseGoalCheckpointVerifierText(result.text);
1970
1989
  } finally {
@@ -1977,11 +1996,15 @@ function parseClaim(value, index) {
1977
1996
  if (!isRecord4(value) || !hasOnlyKeys4(value, ["proofKind", "claim", "sourceRefs"]) || !isGoalEvidenceProofKind(value["proofKind"]) || typeof value["claim"] !== "string" || !Array.isArray(value["sourceRefs"]) || value["sourceRefs"].length === 0 || value["sourceRefs"].length > GOAL_CHECKPOINT_SOURCE_REFERENCE_LIMIT || value["sourceRefs"].some(
1978
1997
  (reference) => typeof reference !== "string" || reference.length === 0
1979
1998
  ) || new Set(value["sourceRefs"]).size !== value["sourceRefs"].length) {
1980
- throw new Error(`Goal checkpoint verifier claim ${index + 1} is invalid`);
1999
+ throw new InvalidGoalCheckpointError(
2000
+ `Goal checkpoint verifier claim ${index + 1} is invalid`
2001
+ );
1981
2002
  }
1982
2003
  const claim = value["claim"].trim();
1983
2004
  if (!claim || [...claim].length > GOAL_CHECKPOINT_CLAIM_MAX_CHARACTERS) {
1984
- throw new Error(`Goal checkpoint verifier claim ${index + 1} is invalid`);
2005
+ throw new InvalidGoalCheckpointError(
2006
+ `Goal checkpoint verifier claim ${index + 1} is invalid`
2007
+ );
1985
2008
  }
1986
2009
  return {
1987
2010
  proofKind: value["proofKind"],
@@ -2227,6 +2250,10 @@ function createGoalRuntime(options) {
2227
2250
  return 0;
2228
2251
  }
2229
2252
  }, "takeTurnTokens");
2253
+ const withCheckpointStalls = /* @__PURE__ */ __name((goal, checkpointStalls) => {
2254
+ const { checkpointStalls: _previous, ...rest } = goal;
2255
+ return checkpointStalls > 0 ? { ...rest, checkpointStalls } : rest;
2256
+ }, "withCheckpointStalls");
2230
2257
  const assertAvailable = /* @__PURE__ */ __name(() => {
2231
2258
  if (disposed) throw new Error(GOAL_RUNTIME_DISPOSED_MESSAGE);
2232
2259
  }, "assertAvailable");
@@ -2584,15 +2611,23 @@ function createGoalRuntime(options) {
2584
2611
  await settleDanglingAttempt(checkpoint.permit);
2585
2612
  }
2586
2613
  }, "runVerification");
2587
- const finishCheckpointCheck = /* @__PURE__ */ __name(async (attempt) => {
2614
+ const finishCheckpointCheck = /* @__PURE__ */ __name(async (attempt, outcome = "inconclusive") => {
2588
2615
  await enqueue(async () => {
2589
2616
  if (!isCurrentCheckpointAttempt(attempt) || !snapshot.goal) return;
2617
+ const checkpointStalls = outcome === "room" ? 0 : outcome === "stalled" ? (snapshot.goal.checkpointStalls ?? 0) + 1 : snapshot.goal.checkpointStalls ?? 0;
2618
+ if (await settleIfCheckpointStalled(
2619
+ attempt,
2620
+ snapshot.goal,
2621
+ checkpointStalls
2622
+ )) {
2623
+ return;
2624
+ }
2590
2625
  const persistedCause = nextVerifierFeedback === void 0 ? "checkpoint" : "verifier_reject";
2591
2626
  const now = Date.now();
2592
2627
  const checkedSnapshot = {
2593
2628
  v: GOAL_STATE_VERSION,
2594
2629
  goal: {
2595
- ...snapshot.goal,
2630
+ ...withCheckpointStalls(snapshot.goal, checkpointStalls),
2596
2631
  activeTimeMs: elapsedActiveTime(snapshot.goal, now),
2597
2632
  updatedAt: now
2598
2633
  },
@@ -2614,45 +2649,66 @@ function createGoalRuntime(options) {
2614
2649
  }
2615
2650
  });
2616
2651
  }, "finishCheckpointCheck");
2652
+ const settleCheckpointFailure = /* @__PURE__ */ __name(async (attempt, goal, reason, limitKind) => {
2653
+ const now = Date.now();
2654
+ const limitedSnapshot = {
2655
+ v: GOAL_STATE_VERSION,
2656
+ goal: {
2657
+ ...goal,
2658
+ status: "usage_limited",
2659
+ activeTimeMs: elapsedActiveTime(goal, now),
2660
+ updatedAt: now,
2661
+ lastReason: reason,
2662
+ ...limitKind === void 0 ? {} : { limitKind }
2663
+ },
2664
+ activity: "idle"
2665
+ };
2666
+ await options.journal.recordGoalState(randomUUID(), {
2667
+ v: GOAL_STATE_VERSION,
2668
+ cause: "usage_limited",
2669
+ snapshot: limitedSnapshot
2670
+ });
2671
+ if (!isCurrentCheckpointAttempt(attempt) || !snapshot.goal) return;
2672
+ checkpointAttempt = void 0;
2673
+ continuationQueued = false;
2674
+ currentTurnFeedback = void 0;
2675
+ snapshot = structuredClone(limitedSnapshot);
2676
+ broadcast("usage_limited");
2677
+ }, "settleCheckpointFailure");
2678
+ const settleIfCheckpointStalled = /* @__PURE__ */ __name(async (attempt, goal, checkpointStalls) => {
2679
+ if (checkpointStalls < GOAL_CHECKPOINT_STALL_LIMIT) return false;
2680
+ await settleCheckpointFailure(
2681
+ attempt,
2682
+ withCheckpointStalls(goal, checkpointStalls),
2683
+ GOAL_CHECKPOINT_STALLED_REASON,
2684
+ "evidence_catalog"
2685
+ );
2686
+ return true;
2687
+ }, "settleIfCheckpointStalled");
2617
2688
  const recordCheckpointFailure = /* @__PURE__ */ __name(async (attempt, reason, limitKind) => {
2618
2689
  await enqueue(async () => {
2619
2690
  if (!isCurrentCheckpointAttempt(attempt) || !snapshot.goal) return;
2620
- const now = Date.now();
2621
- const limitedSnapshot = {
2622
- v: GOAL_STATE_VERSION,
2623
- goal: {
2624
- ...snapshot.goal,
2625
- status: "usage_limited",
2626
- activeTimeMs: elapsedActiveTime(snapshot.goal, now),
2627
- updatedAt: now,
2628
- lastReason: reason,
2629
- ...limitKind === void 0 ? {} : { limitKind }
2630
- },
2631
- activity: "idle"
2632
- };
2633
- await options.journal.recordGoalState(randomUUID(), {
2634
- v: GOAL_STATE_VERSION,
2635
- cause: "usage_limited",
2636
- snapshot: limitedSnapshot
2637
- });
2638
- if (!isCurrentCheckpointAttempt(attempt) || !snapshot.goal) return;
2639
- checkpointAttempt = void 0;
2640
- continuationQueued = false;
2641
- currentTurnFeedback = void 0;
2642
- snapshot = structuredClone(limitedSnapshot);
2643
- broadcast("usage_limited");
2691
+ await settleCheckpointFailure(attempt, snapshot.goal, reason, limitKind);
2644
2692
  });
2645
2693
  }, "recordCheckpointFailure");
2646
- const recordCheckpoint = /* @__PURE__ */ __name(async (attempt, checkpoint) => {
2694
+ const recordCheckpoint = /* @__PURE__ */ __name(async (attempt, checkpoint, stalled) => {
2647
2695
  if (!checkpoint) return;
2648
2696
  await enqueue(async () => {
2649
2697
  if (!isCurrentCheckpointAttempt(attempt) || !snapshot.goal) return;
2698
+ const checkpointStalls = stalled ? (snapshot.goal.checkpointStalls ?? 0) + 1 : 0;
2699
+ if (await settleIfCheckpointStalled(
2700
+ attempt,
2701
+ snapshot.goal,
2702
+ checkpointStalls
2703
+ )) {
2704
+ return;
2705
+ }
2650
2706
  const now = Date.now();
2651
2707
  const persistedCause = nextVerifierFeedback === void 0 ? "checkpoint" : "verifier_reject";
2652
2708
  const checkpointSnapshot = {
2653
2709
  v: GOAL_STATE_VERSION,
2654
2710
  goal: {
2655
- ...snapshot.goal,
2711
+ ...withCheckpointStalls(snapshot.goal, checkpointStalls),
2656
2712
  evidenceCursor: { recordId: attempt.recordUuid },
2657
2713
  evidenceCheckpoint: checkpoint,
2658
2714
  activeTimeMs: elapsedActiveTime(snapshot.goal, now),
@@ -2708,7 +2764,7 @@ function createGoalRuntime(options) {
2708
2764
  return;
2709
2765
  }
2710
2766
  if (!window.shouldCheckpoint) {
2711
- await finishCheckpointCheck(attempt);
2767
+ await finishCheckpointCheck(attempt, "room");
2712
2768
  return;
2713
2769
  }
2714
2770
  let checkpoint;
@@ -2743,10 +2799,18 @@ function createGoalRuntime(options) {
2743
2799
  );
2744
2800
  return;
2745
2801
  }
2802
+ if (error instanceof InvalidGoalCheckpointError && window.truncated) {
2803
+ await finishCheckpointCheck(attempt, "stalled");
2804
+ return;
2805
+ }
2746
2806
  await finishCheckpointCheck(attempt);
2747
2807
  return;
2748
2808
  }
2749
- await recordCheckpoint(attempt, checkpoint);
2809
+ await recordCheckpoint(
2810
+ attempt,
2811
+ checkpoint,
2812
+ isGoalCheckpointStalled(window, checkpoint)
2813
+ );
2750
2814
  } catch (error) {
2751
2815
  if (attempt.controller.signal.aborted) return;
2752
2816
  if (error instanceof EvidenceSourceUnavailableError && error.code === "current_turn_not_tail") {
@@ -3288,6 +3352,7 @@ export {
3288
3352
  InvalidGoalEvidenceReferenceError,
3289
3353
  GoalEvidenceRecordIndexAccumulator,
3290
3354
  GoalEvidenceCheckpointAccumulator,
3355
+ capPreviewBytes,
3291
3356
  createGoalCheckpointVerifier,
3292
3357
  GoalConflictError,
3293
3358
  GoalInvalidTransitionError,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  themeManager
5
- } from "./chunk-X3PRXXUH.js";
5
+ } from "./chunk-WEGXPP5E.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  delay
5
- } from "./chunk-AHQBSQYT.js";
5
+ } from "./chunk-V3GINY6K.js";
6
6
  import {
7
7
  isTlsVerificationDisabled
8
- } from "./chunk-FNZ42WN7.js";
8
+ } from "./chunk-GTUKW3I6.js";
9
9
  import {
10
10
  getErrorMessage
11
- } from "./chunk-VLEGGCEA.js";
11
+ } from "./chunk-2NNTE2ED.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-VLEGGCEA.js";
5
+ } from "./chunk-2NNTE2ED.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -3,23 +3,23 @@
3
3
  import {
4
4
  resolveModelConfig,
5
5
  resolveProviderProtocol
6
- } from "./chunk-UFWRXRQ5.js";
6
+ } from "./chunk-XYX474JQ.js";
7
7
  import {
8
8
  external_exports
9
9
  } from "./chunk-CQ35AJ4Z.js";
10
10
  import {
11
11
  stripRuntimeSnapshotPrefix
12
- } from "./chunk-R7Q5V3A5.js";
12
+ } from "./chunk-AYVIGUUK.js";
13
13
  import {
14
14
  REASONING_EFFORT_TIERS,
15
15
  normalizeReasoningEffort
16
16
  } from "./chunk-2LD5U7Q3.js";
17
17
  import {
18
18
  MODEL_GENERATION_CONFIG_FIELDS
19
- } from "./chunk-O6CS7VRT.js";
19
+ } from "./chunk-ICWGPK23.js";
20
20
  import {
21
21
  AuthType
22
- } from "./chunk-FNZ42WN7.js";
22
+ } from "./chunk-GTUKW3I6.js";
23
23
  import {
24
24
  init_esbuild_shims
25
25
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-VLEGGCEA.js";
5
+ } from "./chunk-2NNTE2ED.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  MissingCliEntryError
5
- } from "./chunk-HYBEI2LH.js";
5
+ } from "./chunk-CITGRGCM.js";
6
6
  import {
7
7
  redactLogCredentials
8
8
  } from "./chunk-M5GB774H.js";
@@ -5,35 +5,35 @@ import {
5
5
  } from "./chunk-E7REAOTN.js";
6
6
  import {
7
7
  formatHistoryGapNotice
8
- } from "./chunk-QKSMM4HF.js";
8
+ } from "./chunk-L436XFLJ.js";
9
9
  import {
10
10
  loadUndici
11
11
  } from "./chunk-TXASDT2M.js";
12
12
  import {
13
13
  LOAD_REPLAY_META_KEY
14
- } from "./chunk-LURJYO2T.js";
14
+ } from "./chunk-OZ6KS6KW.js";
15
15
  import {
16
16
  projectGoalStateToLegacy
17
- } from "./chunk-DLYJ3RN7.js";
17
+ } from "./chunk-VMDURMFY.js";
18
18
  import {
19
19
  observeToolResultBoundary,
20
20
  toolResultBoundaryArtifact
21
- } from "./chunk-UFWRXRQ5.js";
21
+ } from "./chunk-XYX474JQ.js";
22
22
  import {
23
23
  parseGoalSnapshotV2,
24
24
  parseGoalStateCause,
25
25
  projectUserTranscriptForDisplay
26
- } from "./chunk-WANR3VVK.js";
26
+ } from "./chunk-FN5C6C7G.js";
27
27
  import {
28
28
  formatVisionBridgeNoticeDisplay,
29
29
  isVisionBridgeNoticeDisplay
30
- } from "./chunk-EUZE3GSL.js";
30
+ } from "./chunk-UX3IFLJM.js";
31
31
  import {
32
32
  ToolNames
33
- } from "./chunk-3LUGIYS3.js";
33
+ } from "./chunk-KOJ6MHD5.js";
34
34
  import {
35
35
  createDebugLogger
36
- } from "./chunk-VLEGGCEA.js";
36
+ } from "./chunk-2NNTE2ED.js";
37
37
  import {
38
38
  writeStderrLine,
39
39
  writeStderrLineSafe
@@ -378,9 +378,10 @@ function parseGoalRecord(value) {
378
378
  "createdAt",
379
379
  "updatedAt",
380
380
  "evidenceCheckpoint",
381
+ "checkpointStalls",
381
382
  "lastReason",
382
383
  "limitKind"
383
- ]) || 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"]) || !isFiniteNumber(value["createdAt"]) || !isFiniteNumber(value["updatedAt"]) || !isGoalEvidenceCheckpoint(value["evidenceCheckpoint"]) || value["lastReason"] !== void 0 && typeof value["lastReason"] !== "string" || value["limitKind"] !== void 0 && (!isGoalLimitKind(value["limitKind"]) || value["status"] !== "usage_limited")) {
384
+ ]) || 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"]) || !isFiniteNumber(value["createdAt"]) || !isFiniteNumber(value["updatedAt"]) || !isGoalEvidenceCheckpoint(value["evidenceCheckpoint"]) || value["checkpointStalls"] !== void 0 && !isNonNegativeInteger(value["checkpointStalls"]) || value["lastReason"] !== void 0 && typeof value["lastReason"] !== "string" || value["limitKind"] !== void 0 && (!isGoalLimitKind(value["limitKind"]) || value["status"] !== "usage_limited")) {
384
385
  return void 0;
385
386
  }
386
387
  if (value["evidenceCheckpoint"] && value["evidenceCursor"].recordId !== value["evidenceCheckpoint"].checkpointId) {
@@ -401,6 +402,8 @@ function parseGoalRecord(value) {
401
402
  ...value["evidenceCheckpoint"] === void 0 ? {} : {
402
403
  evidenceCheckpoint: structuredClone(value["evidenceCheckpoint"])
403
404
  },
405
+ // Zero is spelled as no field; a persisted 0 restores the same way.
406
+ ...value["checkpointStalls"] ? { checkpointStalls: value["checkpointStalls"] } : {},
404
407
  ...value["lastReason"] === void 0 ? {} : { lastReason: value["lastReason"] },
405
408
  ...value["limitKind"] === void 0 ? {} : { limitKind: value["limitKind"] }
406
409
  };
@@ -2119,7 +2122,7 @@ var HistoryReplayer = class {
2119
2122
  await this.sendUpdate(update);
2120
2123
  }
2121
2124
  await this.replayPage(records, {
2122
- finalizeDangling: true,
2125
+ finalizeDangling: options.finalizeDangling ?? true,
2123
2126
  gaps,
2124
2127
  ...options.skipFinalizeCallIds ? { skipFinalizeCallIds: options.skipFinalizeCallIds } : {},
2125
2128
  ...options.initialGoalState ? { goalState: options.initialGoalState } : {},
@@ -2946,7 +2949,7 @@ async function extractMetadata(conversation, config) {
2946
2949
  const gitBranch = firstRecord?.gitBranch;
2947
2950
  let gitRepo;
2948
2951
  if (cwd) {
2949
- const { getGitRepoName } = await import("./deferred-core-runtime-WQ4NQA3N.js");
2952
+ const { getGitRepoName } = await import("./deferred-core-runtime-GHT3GDOR.js");
2950
2953
  gitRepo = getGitRepoName(cwd);
2951
2954
  }
2952
2955
  let model;
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  parseRule
5
- } from "./chunk-UFWRXRQ5.js";
5
+ } from "./chunk-XYX474JQ.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -4,10 +4,10 @@ import {
4
4
  getRateLimitErrorDetails,
5
5
  isQwenQuotaExceededError,
6
6
  isRateLimitError
7
- } from "./chunk-27HAGBZG.js";
7
+ } from "./chunk-EB4VDXNI.js";
8
8
  import {
9
9
  isAbortError
10
- } from "./chunk-VLEGGCEA.js";
10
+ } from "./chunk-2NNTE2ED.js";
11
11
  import {
12
12
  init_esbuild_shims
13
13
  } from "./chunk-5O2XNYP6.js";