@zubriq/code 0.19.8-1 → 0.19.9-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 (243) hide show
  1. package/dist/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  2. package/dist/bundled/qc-helper/docs/features/channels/overview.md +23 -12
  3. package/dist/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
  4. package/dist/bundled/qc-helper/docs/features/channels/wecom.md +111 -0
  5. package/dist/bundled/qc-helper/docs/features/hooks.md +36 -34
  6. package/dist/bundled/qc-helper/docs/features/memory.md +1 -1
  7. package/dist/bundled/qc-helper/docs/qwen-serve.md +17 -10
  8. package/dist/bundled/review/SKILL.md +6 -2
  9. package/dist/chunks/{MaxSizedBox-OWTCJQNO.js → MaxSizedBox-W6SAJMJC.js} +13 -11
  10. package/dist/chunks/{StandaloneSessionPicker-6NGEQFBH.js → StandaloneSessionPicker-YBKZZKIA.js} +28 -23
  11. package/dist/chunks/{acpAgent-XPRWSNOW.js → acpAgent-SQJQBOTS.js} +110 -80
  12. package/dist/chunks/{agent-TB6S4VXU.js → agent-QU7Q2RZN.js} +8 -8
  13. package/dist/chunks/{agent-headless-R3XYK5TT.js → agent-headless-PBHLWHND.js} +8 -8
  14. package/dist/chunks/{anthropicContentGenerator-FZQAEMYK.js → anthropicContentGenerator-52G6ZA3D.js} +31 -4
  15. package/dist/chunks/{artifact-tool-H2TNPNP5.js → artifact-tool-D233YJFH.js} +25 -6
  16. package/dist/chunks/{bridge-HVRG6SMU.js → bridge-LJLLDUMW.js} +17 -14
  17. package/dist/chunks/{ca-HCMB2I54.js → ca-MKD32FQL.js} +26 -1
  18. package/dist/chunks/{channel-worker-supervisor-B7MSMB5K.js → channel-worker-supervisor-NZQUOEFJ.js} +3 -3
  19. package/dist/chunks/{chunk-YRM6BC6H.js → chunk-27AYMAL6.js} +506 -63
  20. package/dist/chunks/{chunk-536GZ6UF.js → chunk-2MDC5WDB.js} +17 -111
  21. package/dist/chunks/{chunk-H3D6XAOL.js → chunk-2PRSBVPI.js} +3 -3
  22. package/dist/chunks/chunk-332PWN27.js +19 -0
  23. package/dist/chunks/{chunk-FVMWEHWU.js → chunk-3B26UVCX.js} +114 -12
  24. package/dist/chunks/{chunk-ZM5BPDXV.js → chunk-3F22JT4E.js} +1 -1
  25. package/dist/chunks/{chunk-W6RH6KHR.js → chunk-3GPVYALM.js} +4 -2
  26. package/dist/chunks/{chunk-G7ZG7CA6.js → chunk-3UP777ZS.js} +8 -7
  27. package/dist/chunks/{chunk-PA7QS4X5.js → chunk-43W4YSO6.js} +1 -12
  28. package/dist/chunks/{chunk-5EB2HK3X.js → chunk-4IK56VLC.js} +1 -1
  29. package/dist/chunks/{chunk-UE5TCZE6.js → chunk-5FAUIGXH.js} +5 -13
  30. package/dist/chunks/{chunk-VEB3NYSO.js → chunk-5MBO76SL.js} +5 -0
  31. package/dist/chunks/{chunk-PDITONOB.js → chunk-5MRUKUOG.js} +5347 -4132
  32. package/dist/chunks/{chunk-4UC3U66K.js → chunk-6EUMFVPJ.js} +5 -5
  33. package/dist/chunks/{chunk-YOGGIAGF.js → chunk-6JL5OVLX.js} +1 -1
  34. package/dist/chunks/{chunk-QG4ZO2EB.js → chunk-74E6VVF6.js} +11 -11
  35. package/dist/chunks/chunk-A2X3KLC3.js +3807 -0
  36. package/dist/chunks/{chunk-BA4HLTG2.js → chunk-B6B2MUUF.js} +5 -5
  37. package/dist/chunks/{chunk-XKYOIERV.js → chunk-BN5VYAOZ.js} +681 -1239
  38. package/dist/chunks/{chunk-IO76BGJ3.js → chunk-BYUA6YYS.js} +15 -9
  39. package/dist/chunks/{chunk-NCFY7PWS.js → chunk-CCGOFQV3.js} +51 -2
  40. package/dist/chunks/{chunk-66KNL43D.js → chunk-CD6USWHZ.js} +1 -1
  41. package/dist/chunks/{chunk-ZWSTIPSW.js → chunk-CEITMQ62.js} +2 -2
  42. package/dist/chunks/{chunk-7AQTBTVY.js → chunk-EJP6Z7NU.js} +4 -3
  43. package/dist/chunks/{chunk-RTW5ZXHO.js → chunk-EZTNYRHH.js} +6 -5
  44. package/dist/chunks/{chunk-MJQFA66Z.js → chunk-FAATDXYS.js} +308 -81
  45. package/dist/chunks/{chunk-DNV4FSN5.js → chunk-FBET5XZ2.js} +6 -4
  46. package/dist/chunks/{chunk-HTC4R67V.js → chunk-FES4YXJ3.js} +9 -9
  47. package/dist/chunks/{chunk-NBKE6QRZ.js → chunk-FHTUTVIQ.js} +10 -5
  48. package/dist/chunks/chunk-FII3C4E7.js +168 -0
  49. package/dist/chunks/{chunk-2NL7ED5Q.js → chunk-FV7425LN.js} +22 -1
  50. package/dist/chunks/{chunk-J6OET6C3.js → chunk-GAI76CFX.js} +4 -4
  51. package/dist/chunks/{chunk-B34OV7K2.js → chunk-GGQQA4JW.js} +13 -0
  52. package/dist/chunks/chunk-GLE2YUPU.js +34 -0
  53. package/dist/chunks/{chunk-X265R5C6.js → chunk-GN3F6PIU.js} +1 -1
  54. package/dist/chunks/{chunk-SM624MOZ.js → chunk-GWUN54UD.js} +1 -1
  55. package/dist/chunks/chunk-H3TELH3H.js +942 -0
  56. package/dist/chunks/{chunk-XZULYFIX.js → chunk-HD4DZI2L.js} +2 -2
  57. package/dist/chunks/{chunk-KLLLWQM2.js → chunk-HPQIVXSP.js} +1 -1
  58. package/dist/chunks/{chunk-WSVZFWN4.js → chunk-IBY3Q3HG.js} +693 -104
  59. package/dist/chunks/{chunk-JSEOX4CM.js → chunk-JGR6W4IX.js} +14 -8
  60. package/dist/chunks/chunk-K652V4NH.js +283 -0
  61. package/dist/chunks/{chunk-OCBJKHF2.js → chunk-KH2CZZDD.js} +2 -2
  62. package/dist/chunks/chunk-LGFAYIKX.js +115 -0
  63. package/dist/chunks/{chunk-QG5KDB6X.js → chunk-LZDW5TDV.js} +5 -5
  64. package/dist/chunks/{chunk-ENKWIF75.js → chunk-MA4AZNP7.js} +10 -10
  65. package/dist/chunks/{chunk-4RQIB5UZ.js → chunk-O2YT7VB4.js} +0 -34
  66. package/dist/chunks/{chunk-4KJ2BPIT.js → chunk-OACJLMLD.js} +2 -38
  67. package/dist/chunks/{chunk-ML2ZWH2K.js → chunk-PCWYMX57.js} +14 -153
  68. package/dist/chunks/{chunk-NHFBLJOI.js → chunk-Q3PQ5VGJ.js} +1 -1
  69. package/dist/chunks/{chunk-LGXBB2R2.js → chunk-QK3I36QG.js} +1 -1
  70. package/dist/chunks/chunk-RA7TR75G.js +8223 -0
  71. package/dist/chunks/{chunk-KSPVDFE4.js → chunk-SAIILPQ3.js} +0 -3
  72. package/dist/chunks/{chunk-DHKDK57Q.js → chunk-SNZPA74J.js} +146 -54
  73. package/dist/chunks/{chunk-PWR5MVM3.js → chunk-SSP3UT5C.js} +4 -4
  74. package/dist/chunks/{chunk-4LETJLG2.js → chunk-SUCRVT5L.js} +1 -1
  75. package/dist/chunks/{chunk-5YLZHETW.js → chunk-TRR5KGDN.js} +1 -1
  76. package/dist/chunks/chunk-UIDXQNMV.js +13 -0
  77. package/dist/chunks/{chunk-PIORL4OD.js → chunk-UKV3D7WB.js} +0 -44
  78. package/dist/chunks/chunk-UYNUIGUR.js +167 -0
  79. package/dist/chunks/chunk-V2TYBEWU.js +28 -0
  80. package/dist/chunks/chunk-V35MD7KN.js +13 -0
  81. package/dist/chunks/{chunk-N4HTVZDZ.js → chunk-VR3KCBHH.js} +1 -1
  82. package/dist/chunks/{chunk-APYUOROB.js → chunk-W4CTWW7M.js} +423 -61
  83. package/dist/chunks/{chunk-ABANKQYY.js → chunk-WJAW2O5H.js} +92 -465
  84. package/dist/chunks/{chunk-6RSBRKF5.js → chunk-WN4YJJGH.js} +2 -2
  85. package/dist/chunks/chunk-XNXVCNAT.js +88 -0
  86. package/dist/chunks/{chunk-TDGF35EN.js → chunk-XOHNA2S6.js} +1 -1
  87. package/dist/chunks/chunk-XQPMKWSV.js +487 -0
  88. package/dist/chunks/{chunk-4FQL7KUS.js → chunk-XWDHZP7P.js} +8 -8
  89. package/dist/chunks/{chunk-REPRY4F7.js → chunk-YCKKP4QA.js} +10 -10
  90. package/dist/chunks/{chunk-YNWQ3PUQ.js → chunk-YJWMOGGZ.js} +3 -3
  91. package/dist/chunks/{chunk-RFIL6REB.js → chunk-YKZIAK7C.js} +119 -29
  92. package/dist/chunks/{chunk-45YCXM2H.js → chunk-YZDBUH6S.js} +45 -9
  93. package/dist/chunks/chunk-Z3I3QJK3.js +47 -0
  94. package/dist/chunks/{chunk-G23FFNLT.js → chunk-ZDGPPCTW.js} +20 -8
  95. package/dist/chunks/chunk-ZL5HN75Q.js +61 -0
  96. package/dist/chunks/{chunk-IQX5S2RS.js → chunk-ZL7JCYWM.js} +66 -7
  97. package/dist/chunks/{computer-use-A72BECH4.js → computer-use-4B45EG2F.js} +8 -8
  98. package/dist/chunks/{contextCommand-RREXA4B7.js → contextCommand-GIVRWNTS.js} +12 -11
  99. package/dist/chunks/{cron-create-DDYU4DIR.js → cron-create-JSXEIPVS.js} +1 -1
  100. package/dist/chunks/{cron-delete-DFKOUZWN.js → cron-delete-OIFVEPGU.js} +1 -1
  101. package/dist/chunks/{cron-list-ME5QGAR5.js → cron-list-D4ZX4IOE.js} +1 -1
  102. package/dist/chunks/{daemon-XWG2EGFX.js → daemon-WPAENEBW.js} +71 -3
  103. package/dist/chunks/{daemon-status-provider-Y6AFXTET.js → daemon-status-provider-WBOAMCHE.js} +20 -17
  104. package/dist/chunks/{de-PLLFDERI.js → de-ZFPPQVSF.js} +26 -1
  105. package/dist/chunks/{dist-LPVU3L2M.js → dist-BEXOZXLQ.js} +6 -3792
  106. package/dist/chunks/{dist-7GU63KI5.js → dist-E6UANPIM.js} +1 -1
  107. package/dist/chunks/{dist-VHBP2PIG.js → dist-H2AEJCZ5.js} +2 -2
  108. package/dist/chunks/{dist-3UDX5T4T.js → dist-O2IRTRPP.js} +1 -1
  109. package/dist/chunks/dist-SCFLLYMK.js +3217 -0
  110. package/dist/chunks/{dist-H4HHZYCI.js → dist-Z34QPAQW.js} +2 -2
  111. package/dist/chunks/{earlyInputCapture-OAHBOGOO.js → earlyInputCapture-JWMCAJZR.js} +8 -8
  112. package/dist/chunks/{edit-SFYW3FOV.js → edit-O5FUVHBE.js} +9 -9
  113. package/dist/chunks/{en-AXARKOWO.js → en-N4EPZAQI.js} +31 -2
  114. package/dist/chunks/{enter-worktree-LUPPQ2NH.js → enter-worktree-LOJFRC3D.js} +8 -8
  115. package/dist/chunks/{enterPlanMode-44GEN5U6.js → enterPlanMode-VS3FAUPX.js} +8 -8
  116. package/dist/chunks/environment-WKW5TLSH.js +90 -0
  117. package/dist/chunks/{errors-H3Q3W3DL.js → errors-LEZXHJMR.js} +10 -10
  118. package/dist/chunks/{exit-worktree-34CVVWT4.js → exit-worktree-RN2NXRMP.js} +8 -8
  119. package/dist/chunks/{exitPlanMode-5G5BHNUP.js → exitPlanMode-EPC424I4.js} +8 -8
  120. package/dist/chunks/{fast-path-7PKGFBRM.js → fast-path-UUPAFOSQ.js} +12 -3
  121. package/dist/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-7RIFI3PK.js} +3 -2
  122. package/dist/chunks/{fr-MBMNQSQ6.js → fr-5WWMY53B.js} +30 -1
  123. package/dist/chunks/{gemini-2II6JH4H.js → gemini-QCKK4XNU.js} +438 -265
  124. package/dist/chunks/{geminiContentGenerator-SWEJVOC4.js → geminiContentGenerator-DX4SRXJA.js} +1 -1
  125. package/dist/chunks/{glob-5DFC7DXW.js → glob-4URMJWRX.js} +8 -8
  126. package/dist/chunks/{grep-QYVXGRRJ.js → grep-AEQB5KED.js} +8 -8
  127. package/dist/chunks/handleAutoUpdate-Y4YNG34Y.js +65 -0
  128. package/dist/chunks/{initializer-XX3UGUHE.js → initializer-NDEBMSOG.js} +17 -13
  129. package/dist/chunks/{ja-HFV5QCHR.js → ja-CUHZOLEJ.js} +30 -1
  130. package/dist/chunks/{list-AX5FWBVC.js → list-VSCBNOWT.js} +17 -15
  131. package/dist/chunks/{loadedSettingsAdapter-ISOM6GJ7.js → loadedSettingsAdapter-FDO752BA.js} +15 -13
  132. package/dist/chunks/{loop-wakeup-ZW5P6VPY.js → loop-wakeup-OHWEMFP5.js} +2 -2
  133. package/dist/chunks/{ls-L654WOAT.js → ls-7MFU2QYW.js} +1 -1
  134. package/dist/chunks/{lsp-M35KE54Y.js → lsp-XHDTPTGV.js} +2 -4
  135. package/dist/chunks/{mcp-74F6725E.js → mcp-MLPWTHUV.js} +15 -13
  136. package/dist/chunks/{monitor-W4WRSC2C.js → monitor-WCVHIJUJ.js} +16 -11
  137. package/dist/chunks/{nonInteractiveCli-4QMV6C4J.js → nonInteractiveCli-32HZK274.js} +52 -44
  138. package/dist/chunks/{notebook-edit-XBZEIP42.js → notebook-edit-NPOMPKS4.js} +9 -9
  139. package/dist/chunks/{openaiContentGenerator-RTUJDESE.js → openaiContentGenerator-6AIBSRQK.js} +6 -6
  140. package/dist/chunks/{pidfile-YWSGNTPK.js → pidfile-7Y3QEDSZ.js} +8 -8
  141. package/dist/chunks/{pt-2THT3YHA.js → pt-OLYN42DS.js} +26 -1
  142. package/dist/chunks/{qwenContentGenerator-4ZFYAZLY.js → qwenContentGenerator-OUYOAYT4.js} +10 -10
  143. package/dist/chunks/{read-file-D7DKDIAC.js → read-file-EESFA24L.js} +3 -3
  144. package/dist/chunks/{record-artifact-PP3LKHTS.js → record-artifact-SQ2OKRJW.js} +3 -3
  145. package/dist/chunks/{ripGrep-KG7JYNER.js → ripGrep-DLYV7ZZG.js} +8 -8
  146. package/dist/chunks/{ru-PER5I4OI.js → ru-MKM2HFDS.js} +26 -1
  147. package/dist/chunks/{run-qwen-serve-XGJSNF6S.js → run-qwen-serve-WUEHQROF.js} +602 -143
  148. package/dist/chunks/{scheduler-MOLWOE4G.js → scheduler-SK4Y66V4.js} +8 -8
  149. package/dist/chunks/{send-message-OA6MV4EU.js → send-message-76GT3JMC.js} +1 -1
  150. package/dist/chunks/{serve-4ZNVPYND.js → serve-UCDGVZFI.js} +17 -14
  151. package/dist/chunks/{server-ACWDFHIF.js → server-FVGFFVZ4.js} +1394 -328
  152. package/dist/chunks/{session-VYO2GRO2.js → session-RIGKDMGR.js} +53 -45
  153. package/dist/chunks/{settings-4J2O3K22.js → settings-LVFFGXGE.js} +24 -20
  154. package/dist/chunks/{shell-RKERJYXR.js → shell-PAWNAFYN.js} +8 -8
  155. package/dist/chunks/{skill-JYACZJ5V.js → skill-5YIN3Z6Y.js} +15 -5
  156. package/dist/chunks/{spawnChannel-BA3U3RGX.js → spawnChannel-KIMZHWNR.js} +10 -10
  157. package/dist/chunks/{src-3P337V4P.js → src-BIWCD3VX.js} +21 -9
  158. package/dist/chunks/{startInteractiveUI-SUSZ6FWB.js → startInteractiveUI-AFXLGUFI.js} +33759 -41620
  159. package/dist/chunks/{task-create-RPFZNB4B.js → task-create-WCHTB435.js} +2 -2
  160. package/dist/chunks/{task-update-5WUG5MVQ.js → task-update-XYWMHJGJ.js} +2 -2
  161. package/dist/chunks/{team-create-YVWGRZEA.js → team-create-26WOMISV.js} +8 -8
  162. package/dist/chunks/{team-plan-approval-VRF54TTI.js → team-plan-approval-B5XB6UQC.js} +8 -8
  163. package/dist/chunks/{theme-manager-JW2KOACL.js → theme-manager-4TJ5TEFD.js} +8 -8
  164. package/dist/chunks/{tool-search-KUSMAZBN.js → tool-search-FFU63E6M.js} +6 -23
  165. package/dist/chunks/total-session-admission-JOD7SMPJ.js +72 -0
  166. package/dist/chunks/{trustedFolders-ERGSUCDK.js → trustedFolders-IJ2QHXSC.js} +9 -9
  167. package/dist/chunks/updateCheck-5Z25DCBP.js +65 -0
  168. package/dist/chunks/{validateNonInterActiveAuth-DDI62H5X.js → validateNonInterActiveAuth-G5EY47DE.js} +49 -41
  169. package/dist/chunks/{version-VB3AHVUF.js → version-LGO3GOKQ.js} +2 -1
  170. package/dist/chunks/{workflow-WINKRCI4.js → workflow-ZTK3WT3D.js} +9 -9
  171. package/dist/chunks/{workspace-providers-status-ZVZPXKSO.js → workspace-providers-status-YMPTRKW2.js} +18 -15
  172. package/dist/chunks/workspace-registry-NBUL6LBH.js +74 -0
  173. package/dist/chunks/{workspace-service-GAS2LV2P.js → workspace-service-V6G2RCD4.js} +21 -19
  174. package/dist/chunks/{workspace-skills-status-4WGKYJVA.js → workspace-skills-status-ZCW44BCH.js} +16 -14
  175. package/dist/chunks/{write-file-UTLKVZNN.js → write-file-4FUTAEW6.js} +9 -9
  176. package/dist/chunks/{zh-RS3HZHFH.js → zh-J4F6QWQV.js} +31 -2
  177. package/dist/chunks/{zh-TW-L5GRQ4S4.js → zh-TW-XVDWOLSW.js} +31 -2
  178. package/dist/cli.js +11 -11
  179. package/dist/locales/ca.js +30 -0
  180. package/dist/locales/de.js +30 -0
  181. package/dist/locales/en.js +38 -2
  182. package/dist/locales/fr.js +36 -0
  183. package/dist/locales/ja.js +36 -0
  184. package/dist/locales/pt.js +30 -0
  185. package/dist/locales/ru.js +30 -0
  186. package/dist/locales/zh-TW.js +38 -2
  187. package/dist/locales/zh.js +38 -2
  188. package/dist/package.json +3 -3
  189. package/dist/web-shell/assets/{arc-C6tzvtOa.js → arc-BWyoJpY2.js} +1 -1
  190. package/dist/web-shell/assets/{architectureDiagram-3BPJPVTR-DSYQFGn9.js → architectureDiagram-3BPJPVTR-BT0mGrz2.js} +1 -1
  191. package/dist/web-shell/assets/{blockDiagram-GPEHLZMM-CHjBdXAD.js → blockDiagram-GPEHLZMM-BLgUWvyf.js} +1 -1
  192. package/dist/web-shell/assets/{c4Diagram-AAUBKEIU-BQzK6Yyb.js → c4Diagram-AAUBKEIU-DYx9M7oU.js} +1 -1
  193. package/dist/web-shell/assets/channel-wmPUGHtg.js +1 -0
  194. package/dist/web-shell/assets/{chunk-2J33WTMH-hpP2p3Ij.js → chunk-2J33WTMH-CfMHWbuZ.js} +1 -1
  195. package/dist/web-shell/assets/{chunk-4BX2VUAB-B5KtK1JJ.js → chunk-4BX2VUAB-B1URoqEV.js} +1 -1
  196. package/dist/web-shell/assets/{chunk-55IACEB6-BDv6Mfr2.js → chunk-55IACEB6-DAIaM4QF.js} +1 -1
  197. package/dist/web-shell/assets/{chunk-727SXJPM-BevPWfrX.js → chunk-727SXJPM-B2X34knw.js} +1 -1
  198. package/dist/web-shell/assets/{chunk-AQP2D5EJ-ChDrz2ad.js → chunk-AQP2D5EJ-Cif-zLTQ.js} +1 -1
  199. package/dist/web-shell/assets/{chunk-FMBD7UC4-ClMdVSDs.js → chunk-FMBD7UC4-H18WCXdY.js} +1 -1
  200. package/dist/web-shell/assets/{chunk-ND2GUHAM-BceV8kZS.js → chunk-ND2GUHAM-YFtetHi0.js} +1 -1
  201. package/dist/web-shell/assets/{chunk-QZHKN3VN-DtyK2wwc.js → chunk-QZHKN3VN-By2hiH3r.js} +1 -1
  202. package/dist/web-shell/assets/classDiagram-4FO5ZUOK-BA2ljEjW.js +1 -0
  203. package/dist/web-shell/assets/classDiagram-v2-Q7XG4LA2-BA2ljEjW.js +1 -0
  204. package/dist/web-shell/assets/{cose-bilkent-S5V4N54A-BGMsqwmE.js → cose-bilkent-S5V4N54A-VrcnnLZu.js} +1 -1
  205. package/dist/web-shell/assets/{dagre-BM42HDAG-C-71clpF.js → dagre-BM42HDAG-CGo-IaVV.js} +1 -1
  206. package/dist/web-shell/assets/{diagram-2AECGRRQ-WIzzlkec.js → diagram-2AECGRRQ-Dl4QjzIB.js} +1 -1
  207. package/dist/web-shell/assets/{diagram-5GNKFQAL-CtnhZUP1.js → diagram-5GNKFQAL-qMLmsO0u.js} +1 -1
  208. package/dist/web-shell/assets/{diagram-KO2AKTUF-CS_IUezp.js → diagram-KO2AKTUF-CHlmuxPI.js} +1 -1
  209. package/dist/web-shell/assets/{diagram-LMA3HP47-BQnGRwN9.js → diagram-LMA3HP47-BUwU3GwT.js} +1 -1
  210. package/dist/web-shell/assets/{diagram-OG6HWLK6-By2VIocq.js → diagram-OG6HWLK6-HEhwPDUM.js} +1 -1
  211. package/dist/web-shell/assets/{erDiagram-TEJ5UH35-Dy8WeNkr.js → erDiagram-TEJ5UH35-1n0llBmM.js} +1 -1
  212. package/dist/web-shell/assets/{flowDiagram-I6XJVG4X-Diu_4y0w.js → flowDiagram-I6XJVG4X-BN74uMnt.js} +1 -1
  213. package/dist/web-shell/assets/{ganttDiagram-6RSMTGT7-CH8euujP.js → ganttDiagram-6RSMTGT7-BoOq78i3.js} +1 -1
  214. package/dist/web-shell/assets/{gitGraphDiagram-PVQCEYII-DHiObZq1.js → gitGraphDiagram-PVQCEYII-CN8b00c8.js} +1 -1
  215. package/dist/web-shell/assets/index-CNwoO1Cn.js +783 -0
  216. package/dist/web-shell/assets/index-CWQ0z6kZ.css +5 -0
  217. package/dist/web-shell/assets/{infoDiagram-5YYISTIA-CvC9A6fh.js → infoDiagram-5YYISTIA-CCurnIna.js} +1 -1
  218. package/dist/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BK46kC4E.js → ishikawaDiagram-YF4QCWOH-AwuRqdUP.js} +1 -1
  219. package/dist/web-shell/assets/{journeyDiagram-JHISSGLW-B2TIiKq4.js → journeyDiagram-JHISSGLW-B7IICk-E.js} +1 -1
  220. package/dist/web-shell/assets/{kanban-definition-UN3LZRKU-Bh0WAulO.js → kanban-definition-UN3LZRKU-BYF0OKhx.js} +1 -1
  221. package/dist/web-shell/assets/{linear-Bxe9SHMk.js → linear-GWWguGfD.js} +1 -1
  222. package/dist/web-shell/assets/{mermaid.core-B1Pv6D5B.js → mermaid.core-JqtkxvCl.js} +5 -5
  223. package/dist/web-shell/assets/{mindmap-definition-RKZ34NQL-Bz0joLH8.js → mindmap-definition-RKZ34NQL-B0MmHsZ6.js} +1 -1
  224. package/dist/web-shell/assets/{pieDiagram-4H26LBE5-CnN4x-VS.js → pieDiagram-4H26LBE5-DhImUZLQ.js} +1 -1
  225. package/dist/web-shell/assets/{quadrantDiagram-W4KKPZXB-BYWD4xO4.js → quadrantDiagram-W4KKPZXB-DGeSC3DT.js} +1 -1
  226. package/dist/web-shell/assets/{requirementDiagram-4Y6WPE33-B4MEhI9h.js → requirementDiagram-4Y6WPE33-DkspY6Re.js} +1 -1
  227. package/dist/web-shell/assets/{sankeyDiagram-5OEKKPKP-Dk_FgKLp.js → sankeyDiagram-5OEKKPKP-CaOofS2x.js} +1 -1
  228. package/dist/web-shell/assets/{sequenceDiagram-3UESZ5HK-B4ksiBZQ.js → sequenceDiagram-3UESZ5HK-DFQ_kFnN.js} +1 -1
  229. package/dist/web-shell/assets/{stateDiagram-AJRCARHV-CYf0xSPl.js → stateDiagram-AJRCARHV-D3snw0Tz.js} +1 -1
  230. package/dist/web-shell/assets/stateDiagram-v2-BHNVJYJU-BbSm_9d0.js +1 -0
  231. package/dist/web-shell/assets/{timeline-definition-PNZ67QCA-0CXeWHNY.js → timeline-definition-PNZ67QCA-l4zH8nLM.js} +1 -1
  232. package/dist/web-shell/assets/{vennDiagram-CIIHVFJN-DHoYY9v2.js → vennDiagram-CIIHVFJN-BnRlA98M.js} +1 -1
  233. package/dist/web-shell/assets/{wardley-L42UT6IY-D_65qshr.js → wardley-L42UT6IY-BS0xUdmd.js} +1 -1
  234. package/dist/web-shell/assets/{wardleyDiagram-YWT4CUSO-Cv90x1sd.js → wardleyDiagram-YWT4CUSO-DKGBUWyQ.js} +1 -1
  235. package/dist/web-shell/assets/{xychartDiagram-2RQKCTM6-5FQCYJyh.js → xychartDiagram-2RQKCTM6-DVb2HuOB.js} +1 -1
  236. package/dist/web-shell/index.html +2 -2
  237. package/package.json +3 -2
  238. package/dist/web-shell/assets/channel-V-ZaJrA6.js +0 -1
  239. package/dist/web-shell/assets/classDiagram-4FO5ZUOK-s-H0snGT.js +0 -1
  240. package/dist/web-shell/assets/classDiagram-v2-Q7XG4LA2-s-H0snGT.js +0 -1
  241. package/dist/web-shell/assets/index-DW75jq0K.css +0 -5
  242. package/dist/web-shell/assets/index-tiCo0xbZ.js +0 -779
  243. package/dist/web-shell/assets/stateDiagram-v2-BHNVJYJU-CMtrFRUb.js +0 -1
@@ -1,10 +1,13 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ eastAsianWidth
5
+ } from "./chunk-LGFAYIKX.js";
3
6
  import {
4
7
  ansiRegex,
5
8
  init_ansi_regex,
6
9
  stripAnsi
7
- } from "./chunk-PDITONOB.js";
10
+ } from "./chunk-5MRUKUOG.js";
8
11
  import {
9
12
  init_esbuild_shims
10
13
  } from "./chunk-A4BMJM77.js";
@@ -26,109 +29,6 @@ var require_emoji_regex = __commonJS({
26
29
 
27
30
  // packages/cli/node_modules/string-width/index.js
28
31
  init_esbuild_shims();
29
-
30
- // node_modules/get-east-asian-width/index.js
31
- init_esbuild_shims();
32
-
33
- // node_modules/get-east-asian-width/lookup.js
34
- init_esbuild_shims();
35
-
36
- // node_modules/get-east-asian-width/lookup-data.js
37
- init_esbuild_shims();
38
- var ambiguousRanges = [161, 161, 164, 164, 167, 168, 170, 170, 173, 174, 176, 180, 182, 186, 188, 191, 198, 198, 208, 208, 215, 216, 222, 225, 230, 230, 232, 234, 236, 237, 240, 240, 242, 243, 247, 250, 252, 252, 254, 254, 257, 257, 273, 273, 275, 275, 283, 283, 294, 295, 299, 299, 305, 307, 312, 312, 319, 322, 324, 324, 328, 331, 333, 333, 338, 339, 358, 359, 363, 363, 462, 462, 464, 464, 466, 466, 468, 468, 470, 470, 472, 472, 474, 474, 476, 476, 593, 593, 609, 609, 708, 708, 711, 711, 713, 715, 717, 717, 720, 720, 728, 731, 733, 733, 735, 735, 768, 879, 913, 929, 931, 937, 945, 961, 963, 969, 1025, 1025, 1040, 1103, 1105, 1105, 8208, 8208, 8211, 8214, 8216, 8217, 8220, 8221, 8224, 8226, 8228, 8231, 8240, 8240, 8242, 8243, 8245, 8245, 8251, 8251, 8254, 8254, 8308, 8308, 8319, 8319, 8321, 8324, 8364, 8364, 8451, 8451, 8453, 8453, 8457, 8457, 8467, 8467, 8470, 8470, 8481, 8482, 8486, 8486, 8491, 8491, 8531, 8532, 8539, 8542, 8544, 8555, 8560, 8569, 8585, 8585, 8592, 8601, 8632, 8633, 8658, 8658, 8660, 8660, 8679, 8679, 8704, 8704, 8706, 8707, 8711, 8712, 8715, 8715, 8719, 8719, 8721, 8721, 8725, 8725, 8730, 8730, 8733, 8736, 8739, 8739, 8741, 8741, 8743, 8748, 8750, 8750, 8756, 8759, 8764, 8765, 8776, 8776, 8780, 8780, 8786, 8786, 8800, 8801, 8804, 8807, 8810, 8811, 8814, 8815, 8834, 8835, 8838, 8839, 8853, 8853, 8857, 8857, 8869, 8869, 8895, 8895, 8978, 8978, 9312, 9449, 9451, 9547, 9552, 9587, 9600, 9615, 9618, 9621, 9632, 9633, 9635, 9641, 9650, 9651, 9654, 9655, 9660, 9661, 9664, 9665, 9670, 9672, 9675, 9675, 9678, 9681, 9698, 9701, 9711, 9711, 9733, 9734, 9737, 9737, 9742, 9743, 9756, 9756, 9758, 9758, 9792, 9792, 9794, 9794, 9824, 9825, 9827, 9829, 9831, 9834, 9836, 9837, 9839, 9839, 9886, 9887, 9919, 9919, 9926, 9933, 9935, 9939, 9941, 9953, 9955, 9955, 9960, 9961, 9963, 9969, 9972, 9972, 9974, 9977, 9979, 9980, 9982, 9983, 10045, 10045, 10102, 10111, 11094, 11097, 12872, 12879, 57344, 63743, 65024, 65039, 65533, 65533, 127232, 127242, 127248, 127277, 127280, 127337, 127344, 127373, 127375, 127376, 127387, 127404, 917760, 917999, 983040, 1048573, 1048576, 1114109];
39
- var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
40
- var halfwidthRanges = [8361, 8361, 65377, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65512, 65518];
41
- var narrowRanges = [32, 126, 162, 163, 165, 166, 172, 172, 175, 175, 10214, 10221, 10629, 10630];
42
- var wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];
43
-
44
- // node_modules/get-east-asian-width/utilities.js
45
- init_esbuild_shims();
46
- var isInRange = /* @__PURE__ */ __name((ranges, codePoint) => {
47
- let low = 0;
48
- let high = Math.floor(ranges.length / 2) - 1;
49
- while (low <= high) {
50
- const mid = Math.floor((low + high) / 2);
51
- const i = mid * 2;
52
- if (codePoint < ranges[i]) {
53
- high = mid - 1;
54
- } else if (codePoint > ranges[i + 1]) {
55
- low = mid + 1;
56
- } else {
57
- return true;
58
- }
59
- }
60
- return false;
61
- }, "isInRange");
62
-
63
- // node_modules/get-east-asian-width/lookup.js
64
- var minimumAmbiguousCodePoint = ambiguousRanges[0];
65
- var maximumAmbiguousCodePoint = ambiguousRanges.at(-1);
66
- var minimumFullWidthCodePoint = fullwidthRanges[0];
67
- var maximumFullWidthCodePoint = fullwidthRanges.at(-1);
68
- var minimumHalfWidthCodePoint = halfwidthRanges[0];
69
- var maximumHalfWidthCodePoint = halfwidthRanges.at(-1);
70
- var minimumNarrowCodePoint = narrowRanges[0];
71
- var maximumNarrowCodePoint = narrowRanges.at(-1);
72
- var minimumWideCodePoint = wideRanges[0];
73
- var maximumWideCodePoint = wideRanges.at(-1);
74
- var commonCjkCodePoint = 19968;
75
- var [wideFastPathStart, wideFastPathEnd] = findWideFastPathRange(wideRanges);
76
- function findWideFastPathRange(ranges) {
77
- let fastPathStart = ranges[0];
78
- let fastPathEnd = ranges[1];
79
- for (let index = 0; index < ranges.length; index += 2) {
80
- const start = ranges[index];
81
- const end = ranges[index + 1];
82
- if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) {
83
- return [start, end];
84
- }
85
- if (end - start > fastPathEnd - fastPathStart) {
86
- fastPathStart = start;
87
- fastPathEnd = end;
88
- }
89
- }
90
- return [fastPathStart, fastPathEnd];
91
- }
92
- __name(findWideFastPathRange, "findWideFastPathRange");
93
- var isAmbiguous = /* @__PURE__ */ __name((codePoint) => {
94
- if (codePoint < minimumAmbiguousCodePoint || codePoint > maximumAmbiguousCodePoint) {
95
- return false;
96
- }
97
- return isInRange(ambiguousRanges, codePoint);
98
- }, "isAmbiguous");
99
- var isFullWidth = /* @__PURE__ */ __name((codePoint) => {
100
- if (codePoint < minimumFullWidthCodePoint || codePoint > maximumFullWidthCodePoint) {
101
- return false;
102
- }
103
- return isInRange(fullwidthRanges, codePoint);
104
- }, "isFullWidth");
105
- var isWide = /* @__PURE__ */ __name((codePoint) => {
106
- if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) {
107
- return true;
108
- }
109
- if (codePoint < minimumWideCodePoint || codePoint > maximumWideCodePoint) {
110
- return false;
111
- }
112
- return isInRange(wideRanges, codePoint);
113
- }, "isWide");
114
-
115
- // node_modules/get-east-asian-width/index.js
116
- function validate(codePoint) {
117
- if (!Number.isSafeInteger(codePoint)) {
118
- throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
119
- }
120
- }
121
- __name(validate, "validate");
122
- function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
123
- validate(codePoint);
124
- if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
125
- return 2;
126
- }
127
- return 1;
128
- }
129
- __name(eastAsianWidth, "eastAsianWidth");
130
-
131
- // packages/cli/node_modules/string-width/index.js
132
32
  var import_emoji_regex = __toESM(require_emoji_regex(), 1);
133
33
  var segmenter = new Intl.Segmenter();
134
34
  var defaultIgnorableCodePointRegex = new RegExp("^\\p{Default_Ignorable_Code_Point}$", "u");
@@ -380,7 +280,8 @@ function sanitizeSensitiveText(text, maxLength = 200) {
380
280
  }
381
281
  __name(sanitizeSensitiveText, "sanitizeSensitiveText");
382
282
  var FILENAME_CONTROL_CHARS_REGEX = /[\x00-\x1f\x7f-\x9f]/g;
383
- function escapeFilenameControlChar(ch) {
283
+ var MULTILINE_CONTROL_CHARS_REGEX = /[\x00-\x08\x0b-\x1f\x7f-\x9f]/g;
284
+ function escapeControlChar(ch) {
384
285
  switch (ch) {
385
286
  case "\b":
386
287
  return "\\b";
@@ -398,19 +299,23 @@ function escapeFilenameControlChar(ch) {
398
299
  }
399
300
  }
400
301
  }
401
- __name(escapeFilenameControlChar, "escapeFilenameControlChar");
302
+ __name(escapeControlChar, "escapeControlChar");
402
303
  function sanitizeFilenameForDisplay(name) {
403
304
  return escapeAnsiCtrlCodes(name).replace(
404
305
  FILENAME_CONTROL_CHARS_REGEX,
405
- escapeFilenameControlChar
306
+ escapeControlChar
406
307
  );
407
308
  }
408
309
  __name(sanitizeFilenameForDisplay, "sanitizeFilenameForDisplay");
310
+ function sanitizeMultilineForDisplay(text) {
311
+ return escapeAnsiCtrlCodes(text).replace(
312
+ MULTILINE_CONTROL_CHARS_REGEX,
313
+ escapeControlChar
314
+ );
315
+ }
316
+ __name(sanitizeMultilineForDisplay, "sanitizeMultilineForDisplay");
409
317
 
410
318
  export {
411
- isFullWidth,
412
- isWide,
413
- eastAsianWidth,
414
319
  stringWidth,
415
320
  getAsciiArtWidth,
416
321
  toCodePoints,
@@ -421,7 +326,8 @@ export {
421
326
  wrapToVisualLines,
422
327
  escapeAnsiCtrlCodes,
423
328
  sanitizeSensitiveText,
424
- sanitizeFilenameForDisplay
329
+ sanitizeFilenameForDisplay,
330
+ sanitizeMultilineForDisplay
425
331
  };
426
332
  /**
427
333
  * @license
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-KHDZHZMH.js";
6
6
  import {
7
7
  getCliVersion
8
- } from "./chunk-PA7QS4X5.js";
8
+ } from "./chunk-V2TYBEWU.js";
9
9
  import {
10
10
  IdeClient
11
- } from "./chunk-PDITONOB.js";
11
+ } from "./chunk-5MRUKUOG.js";
12
12
  import {
13
13
  createDebugLogger
14
14
  } from "./chunk-22MNNNXE.js";
@@ -27,7 +27,7 @@ import { execFile } from "node:child_process";
27
27
 
28
28
  // packages/cli/src/generated/git-commit.ts
29
29
  init_esbuild_shims();
30
- var GIT_COMMIT_INFO = "4a9160b";
30
+ var GIT_COMMIT_INFO = "2e83274";
31
31
 
32
32
  // packages/cli/src/utils/systemInfo.ts
33
33
  var debugLogger = createDebugLogger("STATUS");
@@ -0,0 +1,19 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-A4BMJM77.js";
6
+
7
+ // packages/cli/src/patches/is-in-ci.ts
8
+ init_esbuild_shims();
9
+ var isInCi = false;
10
+ var is_in_ci_default = isInCi;
11
+
12
+ export {
13
+ is_in_ci_default
14
+ };
15
+ /**
16
+ * @license
17
+ * Copyright 2025 Google LLC
18
+ * SPDX-License-Identifier: Apache-2.0
19
+ */
@@ -11,12 +11,13 @@ import {
11
11
  import {
12
12
  CRON_TASKS_DISPLAY_PATH,
13
13
  addCronTask,
14
+ appendCronRun,
14
15
  generateCronTaskId,
15
16
  getCronFilePath,
16
17
  readCronTasks,
17
18
  removeCronTasks,
18
19
  updateCronTasks
19
- } from "./chunk-2NL7ED5Q.js";
20
+ } from "./chunk-FV7425LN.js";
20
21
  import {
21
22
  ToolNames
22
23
  } from "./chunk-X3YGAX7V.js";
@@ -282,6 +283,42 @@ var CronScheduler = class {
282
283
  // the live job away (or clear its pendingRemoval guard) as if it had
283
284
  // been deleted on disk.
284
285
  pendingAdd = /* @__PURE__ */ new Set();
286
+ // Durable ids whose lastFiredAt persist is in flight after a fire — the tick
287
+ // (on-time) OR a catch-up delivery. A reload racing that async write reads the
288
+ // stale disk stamp, so it must not re-detect and re-fire the same slot. Only
289
+ // populated once a fire has actually been stamped/delivered, so a catch-up that
290
+ // was merely buffered and then dropped never enters it and still re-detects.
291
+ //
292
+ // REF-COUNTED per id (not a plain Set): the same task can have two persists in
293
+ // flight at once (it fired again before the first write landed). Clearing on
294
+ // the FIRST settle would drop the guard while the second write is still
295
+ // pending; the count keeps it until the LAST in-flight persist for that id
296
+ // settles.
297
+ //
298
+ // LIMITATION: this guard is INSTANCE-scoped in-memory state. It protects
299
+ // against a reload racing a persist WITHIN one scheduler. It does NOT survive
300
+ // a new scheduler instance (daemon restart, keepalive revive, session reload):
301
+ // a fresh instance starts with an empty map, so if the previous instance died
302
+ // with a persist still in flight, the new one reads the stale on-disk stamp
303
+ // and can re-fire that slot once. Fully closing that narrow cross-instance
304
+ // window would need a durable stamp (in the tasks file or a lock file); it's
305
+ // accepted here as a sub-second restart-timing edge.
306
+ firePersistPending = /* @__PURE__ */ new Map();
307
+ markFirePersistPending(ids) {
308
+ for (const id of ids) {
309
+ this.firePersistPending.set(
310
+ id,
311
+ (this.firePersistPending.get(id) ?? 0) + 1
312
+ );
313
+ }
314
+ }
315
+ clearFirePersistPending(ids) {
316
+ for (const id of ids) {
317
+ const next = (this.firePersistPending.get(id) ?? 0) - 1;
318
+ if (next > 0) this.firePersistPending.set(id, next);
319
+ else this.firePersistPending.delete(id);
320
+ }
321
+ }
285
322
  fileWatcher = null;
286
323
  lockProbeTimer = null;
287
324
  debounceTimer = null;
@@ -567,9 +604,12 @@ var CronScheduler = class {
567
604
  const missedOneShots = [];
568
605
  const catchUpIds = [];
569
606
  const finalTasks = [];
570
- if (handleMissed) {
607
+ {
571
608
  for (const t of tasks) {
572
609
  if (this.pendingRemoval.has(t.id)) continue;
610
+ const responsibleForMissed = typeof t.sessionId === "string" && t.sessionId.length > 0 ? t.sessionId === this.sessionId : handleMissed;
611
+ if (!responsibleForMissed) continue;
612
+ if (this.firePersistPending.has(t.id)) continue;
573
613
  const jitter = computeJitter(t.id, t.cron, t.recurring);
574
614
  const anchor = t.recurring ? t.lastFiredAt ?? t.createdAt : t.createdAt;
575
615
  const nextFire = computeNextFireMs(t.cron, anchor, jitter);
@@ -733,16 +773,28 @@ var CronScheduler = class {
733
773
  if (fired !== void 0) stamps.set(id, fired);
734
774
  }
735
775
  if (stamps.size === 0) return;
776
+ const guarded = [...stamps.keys()];
777
+ this.markFirePersistPending(guarded);
736
778
  this.trackPersist(
737
779
  updateCronTasks(this.projectRoot, (tasks) => {
738
780
  let changed = false;
739
781
  const next = tasks.map((t) => {
740
782
  const stamp = stamps.get(t.id);
741
- if (stamp === void 0 || t.lastFiredAt === stamp) return t;
783
+ if (stamp === void 0 || (t.lastFiredAt ?? 0) >= stamp) return t;
742
784
  changed = true;
743
- return { ...t, lastFiredAt: stamp };
785
+ return {
786
+ ...t,
787
+ lastFiredAt: stamp,
788
+ runs: appendCronRun(t.runs, {
789
+ at: stamp,
790
+ kind: "catch-up",
791
+ ...this.sessionId ? { sessionId: this.sessionId } : {}
792
+ })
793
+ };
744
794
  });
745
795
  return changed ? next : tasks;
796
+ }).finally(() => {
797
+ this.clearFirePersistPending(guarded);
746
798
  })
747
799
  );
748
800
  }
@@ -911,6 +963,20 @@ var CronScheduler = class {
911
963
  this._disabled = true;
912
964
  this.stop();
913
965
  }
966
+ /**
967
+ * Whether THIS session should fire a given durable job:
968
+ * - A session-bound task (`boundSessionId` set) fires only in its own
969
+ * session, independent of the per-project lock — so each task's fires
970
+ * land in its dedicated transcript and no two sessions race it.
971
+ * - An unbound task fires only in the lock owner (the legacy shared model).
972
+ * A task bound to a *different* session is never fired here.
973
+ */
974
+ #shouldFireDurable(job) {
975
+ if (job.boundSessionId !== void 0) {
976
+ return job.boundSessionId === this.sessionId;
977
+ }
978
+ return this.isOwner;
979
+ }
914
980
  /**
915
981
  * Manual tick — checks all jobs against the current time and fires those
916
982
  * that are due. Exported for testing.
@@ -922,7 +988,7 @@ var CronScheduler = class {
922
988
  const firedAt = /* @__PURE__ */ new Map();
923
989
  const removedIds = [];
924
990
  for (const job of this.jobs.values()) {
925
- if (job.durable && !this.isOwner) continue;
991
+ if (job.durable && !this.#shouldFireDurable(job)) continue;
926
992
  if (job.durable && this.skipDurableFire?.(job)) {
927
993
  debugLogger.debug(
928
994
  `Skipping durable job ${job.id} (tick): consumer cannot run it`
@@ -940,13 +1006,30 @@ var CronScheduler = class {
940
1006
  if (this.projectRoot && (firedAt.size > 0 || removedIds.length > 0)) {
941
1007
  for (const id of removedIds) this.pendingRemoval.add(id);
942
1008
  const removed = new Set(removedIds);
1009
+ const guarded = [...firedAt.keys()];
1010
+ this.markFirePersistPending(guarded);
943
1011
  this.trackPersist(
944
1012
  updateCronTasks(
945
1013
  this.projectRoot,
946
- (tasks) => tasks.filter((t) => !removed.has(t.id)).map(
947
- (t) => firedAt.has(t.id) ? { ...t, lastFiredAt: firedAt.get(t.id) } : t
948
- )
949
- )
1014
+ (tasks) => tasks.filter((t) => !removed.has(t.id)).map((t) => {
1015
+ const stamp = firedAt.get(t.id);
1016
+ if (stamp === void 0 || (t.lastFiredAt ?? 0) >= stamp)
1017
+ return t;
1018
+ return {
1019
+ ...t,
1020
+ lastFiredAt: stamp,
1021
+ runs: appendCronRun(t.runs, {
1022
+ at: stamp,
1023
+ kind: "scheduled",
1024
+ // The owner session that ran this fire — links the run back
1025
+ // to its transcript. Set whenever a durable fire persists.
1026
+ ...this.sessionId ? { sessionId: this.sessionId } : {}
1027
+ })
1028
+ };
1029
+ })
1030
+ ).finally(() => {
1031
+ this.clearFirePersistPending(guarded);
1032
+ })
950
1033
  );
951
1034
  }
952
1035
  for (const wakeup of this.wakeups.values()) {
@@ -1073,7 +1156,8 @@ function durableTaskToJob(task, recurringMaxAgeMs, existing) {
1073
1156
  expiresAt: task.recurring ? task.createdAt + recurringMaxAgeMs : Infinity,
1074
1157
  lastFiredAt: task.lastFiredAt ?? void 0,
1075
1158
  jitterMs,
1076
- durable: true
1159
+ durable: true,
1160
+ ...task.sessionId ? { boundSessionId: task.sessionId } : {}
1077
1161
  };
1078
1162
  }
1079
1163
  __name(durableTaskToJob, "durableTaskToJob");
@@ -1084,7 +1168,8 @@ function jobToDurableTask(job) {
1084
1168
  prompt: job.prompt,
1085
1169
  recurring: job.recurring,
1086
1170
  createdAt: job.createdAt,
1087
- lastFiredAt: job.lastFiredAt ?? null
1171
+ lastFiredAt: job.lastFiredAt ?? null,
1172
+ ...job.boundSessionId ? { sessionId: job.boundSessionId } : {}
1088
1173
  };
1089
1174
  }
1090
1175
  __name(jobToDurableTask, "jobToDurableTask");
@@ -1098,6 +1183,22 @@ function computeNextFireMs(cronExpr, afterMs, jitterMs) {
1098
1183
  }
1099
1184
  }
1100
1185
  __name(computeNextFireMs, "computeNextFireMs");
1186
+ var nextDurableFireCache = /* @__PURE__ */ new Map();
1187
+ var NEXT_DURABLE_FIRE_CACHE_MAX = 512;
1188
+ function nextDurableFireMs(task) {
1189
+ const anchor = task.recurring ? task.lastFiredAt ?? task.createdAt : task.createdAt;
1190
+ const key = `${task.id}\0${task.cron}\0${task.recurring ? 1 : 0}\0${anchor}`;
1191
+ const cached = nextDurableFireCache.get(key);
1192
+ if (cached !== void 0) return cached;
1193
+ const jitter = computeJitter(task.id, task.cron, task.recurring);
1194
+ const result = computeNextFireMs(task.cron, anchor, jitter);
1195
+ if (nextDurableFireCache.size >= NEXT_DURABLE_FIRE_CACHE_MAX) {
1196
+ nextDurableFireCache.clear();
1197
+ }
1198
+ nextDurableFireCache.set(key, result);
1199
+ return result;
1200
+ }
1201
+ __name(nextDurableFireMs, "nextDurableFireMs");
1101
1202
 
1102
1203
  export {
1103
1204
  MAX_JOBS,
@@ -1107,5 +1208,6 @@ export {
1107
1208
  WAKEUP_MAX_SECONDS,
1108
1209
  clampWakeupSeconds,
1109
1210
  CronScheduler,
1110
- buildMissedCronNotification
1211
+ buildMissedCronNotification,
1212
+ nextDurableFireMs
1111
1213
  };
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  parseRule
5
- } from "./chunk-PDITONOB.js";
5
+ } from "./chunk-5MRUKUOG.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -1,9 +1,11 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
- TextTokenizer,
5
4
  isSupportedImageMimeType
6
- } from "./chunk-PIORL4OD.js";
5
+ } from "./chunk-UKV3D7WB.js";
6
+ import {
7
+ TextTokenizer
8
+ } from "./chunk-CCGOFQV3.js";
7
9
  import {
8
10
  createDebugLogger
9
11
  } from "./chunk-22MNNNXE.js";
@@ -29,7 +29,7 @@ function normalizeMaxQueuedBytes(value) {
29
29
  return value;
30
30
  }
31
31
  __name(normalizeMaxQueuedBytes, "normalizeMaxQueuedBytes");
32
- function serializedByteLength(event) {
32
+ function serializedBridgeEventByteLength(event) {
33
33
  try {
34
34
  const serialized = JSON.stringify(event);
35
35
  if (serialized === void 0) return 0;
@@ -39,7 +39,7 @@ function serializedByteLength(event) {
39
39
  return 0;
40
40
  }
41
41
  }
42
- __name(serializedByteLength, "serializedByteLength");
42
+ __name(serializedBridgeEventByteLength, "serializedBridgeEventByteLength");
43
43
  function logEventSizingFailed(type) {
44
44
  try {
45
45
  process.stderr.write(
@@ -123,10 +123,10 @@ var EventBus = class {
123
123
  }
124
124
  };
125
125
  events.push(event);
126
- try {
127
- this.compactionEngine?.ingest(event);
128
- } catch {
129
- }
126
+ }
127
+ try {
128
+ this.compactionEngine?.seedReplayEvents(events);
129
+ } catch {
130
130
  }
131
131
  this.ring.length = 0;
132
132
  return events;
@@ -165,7 +165,7 @@ var EventBus = class {
165
165
  if (this.ring.length > this.ringSize) this.ring.shift();
166
166
  let eventBytes;
167
167
  const getEventBytes = /* @__PURE__ */ __name(() => {
168
- eventBytes ??= serializedByteLength(event);
168
+ eventBytes ??= serializedBridgeEventByteLength(event);
169
169
  return eventBytes;
170
170
  }, "getEventBytes");
171
171
  for (const sub of Array.from(this.subs)) {
@@ -524,6 +524,7 @@ var BoundedAsyncQueue = class {
524
524
  export {
525
525
  EVENT_SCHEMA_VERSION,
526
526
  DEFAULT_RING_SIZE,
527
+ serializedBridgeEventByteLength,
527
528
  SubscriberLimitExceededError,
528
529
  EventBus
529
530
  };
@@ -7,9 +7,6 @@ import {
7
7
  __name
8
8
  } from "./chunk-J2S4EL5Y.js";
9
9
 
10
- // packages/cli/src/utils/version.ts
11
- init_esbuild_shims();
12
-
13
10
  // packages/cli/src/utils/package.ts
14
11
  init_esbuild_shims();
15
12
  import { fileURLToPath } from "node:url";
@@ -31,16 +28,8 @@ async function getPackageJson() {
31
28
  }
32
29
  __name(getPackageJson, "getPackageJson");
33
30
 
34
- // packages/cli/src/utils/version.ts
35
- async function getCliVersion() {
36
- const pkgJson = await getPackageJson();
37
- return "0.19.8-1";
38
- }
39
- __name(getCliVersion, "getCliVersion");
40
-
41
31
  export {
42
- getPackageJson,
43
- getCliVersion
32
+ getPackageJson
44
33
  };
45
34
  /**
46
35
  * @license
@@ -6,7 +6,7 @@ import {
6
6
  getNestedProperty,
7
7
  getPersistScopeForModelSelection,
8
8
  restoreSettingsFromBackup
9
- } from "./chunk-ABANKQYY.js";
9
+ } from "./chunk-WJAW2O5H.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-A4BMJM77.js";
@@ -1,5 +1,8 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ is_in_ci_default
5
+ } from "./chunk-332PWN27.js";
3
6
  import {
4
7
  require_react
5
8
  } from "./chunk-KYMBIKIW.js";
@@ -7,10 +10,10 @@ import {
7
10
  eastAsianWidth,
8
11
  isFullWidth,
9
12
  isWide
10
- } from "./chunk-536GZ6UF.js";
13
+ } from "./chunk-LGFAYIKX.js";
11
14
  import {
12
15
  stripAnsi
13
- } from "./chunk-PDITONOB.js";
16
+ } from "./chunk-5MRUKUOG.js";
14
17
  import {
15
18
  init_esbuild_shims
16
19
  } from "./chunk-A4BMJM77.js";
@@ -10651,11 +10654,6 @@ var ConEmu = {
10651
10654
  };
10652
10655
  var setCwd = /* @__PURE__ */ __name((cwd2 = cwdFunction()) => iTerm.setCwd(cwd2) + ConEmu.setCwd(cwd2), "setCwd");
10653
10656
 
10654
- // packages/cli/src/patches/is-in-ci.ts
10655
- init_esbuild_shims();
10656
- var isInCi = false;
10657
- var is_in_ci_default = isInCi;
10658
-
10659
10657
  // node_modules/auto-bind/index.js
10660
10658
  init_esbuild_shims();
10661
10659
  var getAllProperties = /* @__PURE__ */ __name((object) => {
@@ -18783,7 +18781,6 @@ var measure_element_default = measureElement;
18783
18781
 
18784
18782
  export {
18785
18783
  base_exports,
18786
- is_in_ci_default,
18787
18784
  Box_default,
18788
18785
  Text,
18789
18786
  render_default,
@@ -18798,11 +18795,6 @@ export {
18798
18795
  measure_element_default,
18799
18796
  require_jsx_runtime
18800
18797
  };
18801
- /**
18802
- * @license
18803
- * Copyright 2025 Google LLC
18804
- * SPDX-License-Identifier: Apache-2.0
18805
- */
18806
18798
  /*! Bundled license information:
18807
18799
 
18808
18800
  react-reconciler/cjs/react-reconciler-constants.production.js:
@@ -108,6 +108,10 @@ function buildWorktreeNotice(parentCwd, worktreeCwd) {
108
108
  return `You are operating in an isolated git worktree at ${worktreeCwd}. The parent agent is in ${parentCwd}. Same repository, same relative file layout, separate working copy. All your file edits, writes, and shell commands MUST target paths under ${worktreeCwd}. When the inherited context references a path under ${parentCwd}, translate it to the corresponding path under ${worktreeCwd} before acting on it. Re-read any file you intend to edit (the parent may have modified it after the snapshot in your context). Your changes stay in this worktree and do not affect the parent's working tree.`;
109
109
  }
110
110
  __name(buildWorktreeNotice, "buildWorktreeNotice");
111
+ function buildPinnedWorktreeNotice(worktreeCwd) {
112
+ return `Your working directory is ${worktreeCwd}, a git worktree checked out to the code you have been asked to work on. Relative paths, shell commands, and searches already resolve there \u2014 do not \`cd\` elsewhere and do not prefix paths with the parent's directory. Do not operate on the parent's checkout.`;
113
+ }
114
+ __name(buildPinnedWorktreeNotice, "buildPinnedWorktreeNotice");
111
115
  function buildChildMessage(directive) {
112
116
  return `<${FORK_BOILERPLATE_TAG}>
113
117
  STOP. READ THIS FIRST.
@@ -316,6 +320,7 @@ export {
316
320
  buildFunctionResponseParts,
317
321
  buildForkedMessages,
318
322
  buildWorktreeNotice,
323
+ buildPinnedWorktreeNotice,
319
324
  buildChildMessage,
320
325
  runWithAgentContext,
321
326
  runWithRuntimeContentGenerator,