gerege-cli 0.26.6 → 0.26.8

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 (247) hide show
  1. package/bundled/gerege-video/SKILL.md +22 -0
  2. package/bundled/gerege-video/scripts/video.js +137 -0
  3. package/chunks/{MaxSizedBox-QCIXIS4P.js → MaxSizedBox-LUINLOQW.js} +1 -1
  4. package/chunks/{StandaloneSessionPicker-BAFAIRT7.js → StandaloneSessionPicker-B7N4QO5D.js} +1 -1
  5. package/chunks/{acp-subagent-executor-TPVXURLW.js → acp-subagent-executor-J6H6FKUT.js} +1 -1
  6. package/chunks/{acpAgent-67UN66PB.js → acpAgent-XG6SM2VU.js} +3 -3
  7. package/chunks/{advisor-SAXMI4QZ.js → advisor-SZVPQNPA.js} +1 -1
  8. package/chunks/{agent-KV7BXY6C.js → agent-N7QF7BJS.js} +1 -1
  9. package/chunks/{agent-headless-FQX3JGG6.js → agent-headless-GLP5GUEX.js} +1 -1
  10. package/chunks/{agent-host-client-L5EHC4AC.js → agent-host-client-H4VOB3M6.js} +1 -1
  11. package/chunks/{agent-host-connections-EDBMCVQF.js → agent-host-connections-E4C3OC4M.js} +1 -1
  12. package/chunks/{anthropicContentGenerator-V7TX2NXP.js → anthropicContentGenerator-5VTWQLT5.js} +1 -1
  13. package/chunks/{autofix-pr-WP34NYHL.js → autofix-pr-HDYQDJS4.js} +1 -1
  14. package/chunks/{batch-XFVQ4BLM.js → batch-3CRVN5VJ.js} +1 -1
  15. package/chunks/{bridge-AE7AFEXB.js → bridge-NZ6WVBLQ.js} +1 -1
  16. package/chunks/{channel-settings-store-X63P5OVT.js → channel-settings-store-Z7I2JI6M.js} +1 -1
  17. package/chunks/{chunk-BCI62WSL.js → chunk-236DHGNH.js} +1 -1
  18. package/chunks/{chunk-JRTOPEM3.js → chunk-2M3ND5WN.js} +1 -1
  19. package/chunks/{chunk-LBLLWAKK.js → chunk-36A6EXHB.js} +1 -1
  20. package/chunks/{chunk-H3IR3GIE.js → chunk-3ANIQTDT.js} +1 -1
  21. package/chunks/{chunk-GSPGIGO5.js → chunk-3QTR2HAE.js} +3 -3
  22. package/chunks/{chunk-32XHDDIA.js → chunk-3TTHYXT3.js} +1 -1
  23. package/chunks/{chunk-MTDBCIDA.js → chunk-4CE4GMDL.js} +1 -1
  24. package/chunks/{chunk-T2YTHAJW.js → chunk-4FVT657Y.js} +1 -1
  25. package/chunks/{chunk-CGDFZEER.js → chunk-4HSISRRA.js} +1 -1
  26. package/chunks/{chunk-7453BHJO.js → chunk-4SZUJ5RT.js} +1 -1
  27. package/chunks/{chunk-B37YY4XU.js → chunk-57D2OB3I.js} +1 -1
  28. package/chunks/{chunk-WGFX3EL3.js → chunk-5FGBLIXB.js} +1 -1
  29. package/chunks/{chunk-I6PUY2T3.js → chunk-5HX2QGVR.js} +1 -1
  30. package/chunks/{chunk-BPFFRPWE.js → chunk-5ZNXAWOG.js} +6 -6
  31. package/chunks/{chunk-BHIDG6VZ.js → chunk-6CKX56LJ.js} +1 -1
  32. package/chunks/{chunk-GRAECADD.js → chunk-6NIQFWXP.js} +1 -1
  33. package/chunks/{chunk-ELDZ4MNL.js → chunk-6PC6MZHL.js} +1 -1
  34. package/chunks/{chunk-FEP6W4NJ.js → chunk-6VQKGKMJ.js} +1 -1
  35. package/chunks/{chunk-GBSRWT7J.js → chunk-6ZEMLEK2.js} +1 -1
  36. package/chunks/{chunk-4NDJKNN6.js → chunk-72VY2PJA.js} +1 -1
  37. package/chunks/{chunk-BAUMVH4Q.js → chunk-75I3NYBD.js} +1 -1
  38. package/chunks/{chunk-YH2XRWRF.js → chunk-76L7ZDEK.js} +1 -1
  39. package/chunks/{chunk-2JGTWRZJ.js → chunk-7XQ5D34E.js} +6 -6
  40. package/chunks/{chunk-DA6LOBSB.js → chunk-AYX75VXG.js} +1 -1
  41. package/chunks/{chunk-G6DALGGS.js → chunk-BBDFEMCF.js} +1 -1
  42. package/chunks/{chunk-VD2GSW64.js → chunk-BOTX7S66.js} +1 -1
  43. package/chunks/{chunk-M6KB5RVD.js → chunk-CY2QKKZA.js} +1 -1
  44. package/chunks/{chunk-HTAUIJB4.js → chunk-D5JWQUID.js} +1 -1
  45. package/chunks/{chunk-P3JEEDQZ.js → chunk-DMIPB7RZ.js} +1 -1
  46. package/chunks/{chunk-CF6SZJNP.js → chunk-DSKA3P2C.js} +1 -1
  47. package/chunks/{chunk-LTE4N6L3.js → chunk-DVC65H4X.js} +1 -1
  48. package/chunks/{chunk-W5Z4BWWA.js → chunk-DVJSDCMX.js} +1 -1
  49. package/chunks/{chunk-65ME4BOH.js → chunk-E6CPFQX2.js} +1 -1
  50. package/chunks/{chunk-JEDL4IKF.js → chunk-EIFBGEXJ.js} +1 -1
  51. package/chunks/{chunk-AYVCT5FF.js → chunk-EQOHDAYU.js} +1 -1
  52. package/chunks/{chunk-2TAJ5STJ.js → chunk-EZPM4DLR.js} +1 -1
  53. package/chunks/{chunk-JWNKPINR.js → chunk-F6U6T7QD.js} +1 -1
  54. package/chunks/{chunk-ET5M5WFN.js → chunk-FCGFBUHS.js} +1 -1
  55. package/chunks/{chunk-OU7CEG7Q.js → chunk-G2LTZU67.js} +1 -1
  56. package/chunks/{chunk-2N3NBTYJ.js → chunk-GMJSEK4V.js} +1 -1
  57. package/chunks/{chunk-NA4ZF2FE.js → chunk-HJMUBVXZ.js} +2 -2
  58. package/chunks/{chunk-AFO5ER23.js → chunk-HQZTAA2U.js} +1 -1
  59. package/chunks/{chunk-OK7LBM5G.js → chunk-I63TIQOI.js} +1 -1
  60. package/chunks/{chunk-OJ4K62S2.js → chunk-I65LBJN7.js} +1 -1
  61. package/chunks/{chunk-GHIFIXNX.js → chunk-IBDOC27R.js} +1 -1
  62. package/chunks/{chunk-2LWJGXTW.js → chunk-IKF2HWEV.js} +1 -1
  63. package/chunks/{chunk-AEZYXPFS.js → chunk-K6NS2HXT.js} +1 -1
  64. package/chunks/{chunk-T5DKF33F.js → chunk-KTRNYPQP.js} +1 -1
  65. package/chunks/{chunk-SKGJ26HQ.js → chunk-L3ANU5JZ.js} +1 -1
  66. package/chunks/{chunk-U3Q72OGV.js → chunk-LKPMADUO.js} +1 -1
  67. package/chunks/{chunk-MYV7GY3H.js → chunk-M56Y2B6N.js} +1 -1
  68. package/chunks/{chunk-34HC2AXI.js → chunk-N5KRBAK5.js} +2 -2
  69. package/chunks/{chunk-EXIFPXMB.js → chunk-NA2WJPOU.js} +1 -1
  70. package/chunks/{chunk-7RNOS7R4.js → chunk-NGOWLXYK.js} +1 -1
  71. package/chunks/{chunk-IZ5MWA6E.js → chunk-NL7P73ZP.js} +1 -1
  72. package/chunks/{chunk-FYBJGRX7.js → chunk-NS3QR7D3.js} +1 -1
  73. package/chunks/{chunk-XISR37DQ.js → chunk-O5JCCBMQ.js} +1 -1
  74. package/chunks/{chunk-FKL3V5BO.js → chunk-OOKFFZHF.js} +1 -1
  75. package/chunks/{chunk-VRKYBH5G.js → chunk-OTYPLLMT.js} +5 -5
  76. package/chunks/{chunk-W66WWTOP.js → chunk-P7NHWX27.js} +1 -1
  77. package/chunks/{chunk-AEKEZRIU.js → chunk-PC5QZUKR.js} +1 -1
  78. package/chunks/{chunk-NEKPQLFY.js → chunk-PS7MQL57.js} +2 -2
  79. package/chunks/{chunk-TB4AUC2L.js → chunk-PXWHOFAA.js} +1 -1
  80. package/chunks/{chunk-OOJ2AQT3.js → chunk-Q65LVCDR.js} +1 -1
  81. package/chunks/{chunk-EFIRES46.js → chunk-QDUDLELH.js} +1 -1
  82. package/chunks/{chunk-KZNYALFU.js → chunk-QF22ILPV.js} +1 -1
  83. package/chunks/{chunk-MGATL4OA.js → chunk-QW7MAG2E.js} +1 -1
  84. package/chunks/{chunk-KJGRCIVY.js → chunk-RXK6XD6F.js} +1 -1
  85. package/chunks/{chunk-W2RQIZ6B.js → chunk-SVDFCWS7.js} +1 -1
  86. package/chunks/{chunk-P62S5JGM.js → chunk-TKP3GAUI.js} +1 -1
  87. package/chunks/{chunk-BQZF3UKI.js → chunk-TUS74LFI.js} +1 -1
  88. package/chunks/{chunk-JH3V5SPA.js → chunk-U7YGHPSL.js} +1 -1
  89. package/chunks/{chunk-NONBHCXP.js → chunk-UB37RBSK.js} +1 -1
  90. package/chunks/{chunk-T53VMDXH.js → chunk-UK5SIRH4.js} +1 -1
  91. package/chunks/{chunk-3W32X2DH.js → chunk-UTTSBCFR.js} +1 -1
  92. package/chunks/{chunk-RSLTOIG5.js → chunk-UYV4ZVXY.js} +2 -2
  93. package/chunks/{chunk-FKZ46GKL.js → chunk-VC3JJL7E.js} +1 -1
  94. package/chunks/{chunk-SP6CQ3MO.js → chunk-VKWVIWLK.js} +1 -1
  95. package/chunks/{chunk-N7PWZBXV.js → chunk-VUI6STKU.js} +1 -1
  96. package/chunks/{chunk-5EXL4TKQ.js → chunk-W3YXE55M.js} +1 -1
  97. package/chunks/{chunk-NVOI6UDQ.js → chunk-WAIPC47V.js} +1 -1
  98. package/chunks/{chunk-QDCUR3JB.js → chunk-WMJ6UHDP.js} +1 -1
  99. package/chunks/{chunk-CBE6ZIHU.js → chunk-WZU2ECUD.js} +1 -1
  100. package/chunks/{chunk-ZENMAISJ.js → chunk-XAGIZY2Y.js} +1 -1
  101. package/chunks/{chunk-RXN7DUMP.js → chunk-XGZYVULJ.js} +2 -2
  102. package/chunks/{chunk-HOG66S6K.js → chunk-XJIHDVPX.js} +1 -1
  103. package/chunks/{chunk-UKLXKJKL.js → chunk-XVDIHFRH.js} +1 -1
  104. package/chunks/{chunk-76FSYQTG.js → chunk-YMEW4TTT.js} +1 -1
  105. package/chunks/{chunk-EYPLBTMI.js → chunk-Z32URWBG.js} +1 -1
  106. package/chunks/{chunk-CUP2TNJK.js → chunk-Z6HRXHJP.js} +1 -1
  107. package/chunks/{chunk-MPVQDYPH.js → chunk-ZO4F6ZWR.js} +1 -1
  108. package/chunks/{codex-subagent-executor-OLMGVPVS.js → codex-subagent-executor-DDKYNU42.js} +1 -1
  109. package/chunks/{config-utils-OWY5G5Y2.js → config-utils-S7Z2ZZ2E.js} +1 -1
  110. package/chunks/{contextCommand-IXFUZH65.js → contextCommand-7F4PGV2A.js} +1 -1
  111. package/chunks/{core-runtime-O4LC4NY3.js → core-runtime-LBH3U7ZF.js} +1 -1
  112. package/chunks/{create-sub-session-6F7C3TMT.js → create-sub-session-56DS2T6L.js} +1 -1
  113. package/chunks/{cron-create-2422NBSJ.js → cron-create-PBP3C46Q.js} +1 -1
  114. package/chunks/{daemon-git-worktree-guard-EWPQA6NO.js → daemon-git-worktree-guard-WJS6FBDA.js} +1 -1
  115. package/chunks/{daemon-status-provider-FAHOXNFW.js → daemon-status-provider-UPPAEHJ6.js} +1 -1
  116. package/chunks/{daemon-trust-policy-L3DM6AI5.js → daemon-trust-policy-4Z5HSNUX.js} +1 -1
  117. package/chunks/{daemon-trust-policy-monitor-HNPY5KJ4.js → daemon-trust-policy-monitor-WFWDOYX3.js} +1 -1
  118. package/chunks/{deferred-core-runtime-JF42NQJK.js → deferred-core-runtime-MJYNEA4N.js} +1 -1
  119. package/chunks/{edit-E5LEI2LL.js → edit-U7TGKKK3.js} +1 -1
  120. package/chunks/{enterPlanMode-3COTUV5V.js → enterPlanMode-27HC5AXN.js} +1 -1
  121. package/chunks/{environment-XBBIB3VA.js → environment-PHWY6C4P.js} +1 -1
  122. package/chunks/{errors-LNMQ7TUK.js → errors-F2EYYFI3.js} +1 -1
  123. package/chunks/{execution-tool-QDDKJD2K.js → execution-tool-O4KJ5SMM.js} +1 -1
  124. package/chunks/{execution-worker-TXGZRZXE.js → execution-worker-AMFXZ7JD.js} +1 -1
  125. package/chunks/{exitPlanMode-Z7QEMWPE.js → exitPlanMode-LDYL43PB.js} +1 -1
  126. package/chunks/{fast-path-M6K2RACY.js → fast-path-HTODEVOR.js} +1 -1
  127. package/chunks/{glob-N2QT4U7U.js → glob-NKQJJZND.js} +1 -1
  128. package/chunks/{goal-tools-CUSQD3DG.js → goal-tools-47I455VV.js} +1 -1
  129. package/chunks/{handleAutoUpdate-QF2YQHF6.js → handleAutoUpdate-MJKTDJUO.js} +1 -1
  130. package/chunks/{i18n-AGOA6MUI.js → i18n-TCOB4TC5.js} +1 -1
  131. package/chunks/{initializer-FRKYDUSX.js → initializer-NLYOGZZS.js} +1 -1
  132. package/chunks/{installationInfo-OKA4WXAS.js → installationInfo-TF2RSJOG.js} +1 -1
  133. package/chunks/{interactive-mod-session-MWYN5IFK.js → interactive-mod-session-5F7R3KSA.js} +1 -1
  134. package/chunks/{list-DE7VUIR2.js → list-U2AEVLFP.js} +1 -1
  135. package/chunks/{llm-N3JGJHYC.js → llm-EV2QTQBU.js} +4 -4
  136. package/chunks/{llm-content-generator-VMUBA7OJ.js → llm-content-generator-ZXUSPPG2.js} +1 -1
  137. package/chunks/{loadedSettingsAdapter-5C36OZ7N.js → loadedSettingsAdapter-TLRI22X7.js} +1 -1
  138. package/chunks/{local-BE624O3A.js → local-ZTSBSKWV.js} +1 -1
  139. package/chunks/{local-execution-environment-OPGM7Y6L.js → local-execution-environment-F263PSIM.js} +1 -1
  140. package/chunks/{loggingContentGenerator-2MHAI6JR.js → loggingContentGenerator-2XHSIJQD.js} +1 -1
  141. package/chunks/{loop-wakeup-BDLATBXH.js → loop-wakeup-5ET3JHUT.js} +1 -1
  142. package/chunks/{manage-memory-BBCEIIWB.js → manage-memory-MJEQ47H2.js} +1 -1
  143. package/chunks/{managed-execution-engine-SRFALTCX.js → managed-execution-engine-ODPR5OEH.js} +1 -1
  144. package/chunks/{managed-local-serve-ICNAS3E6.js → managed-local-serve-S5R4Z5OL.js} +1 -1
  145. package/chunks/managed-npm-update-BUI5APGY.js +8 -0
  146. package/chunks/{managed-runtime-attestation-worker-ZRDWKXCI.js → managed-runtime-attestation-worker-BQP4E7LQ.js} +1 -1
  147. package/chunks/{managed-runtime-bootstrap-6NTGZXQL.js → managed-runtime-bootstrap-SRBDFSKK.js} +1 -1
  148. package/chunks/{managed-runtime-session-worker-RKQBBFR6.js → managed-runtime-session-worker-UI23BTYJ.js} +1 -1
  149. package/chunks/{managed-runtime-ssh-worker-FCGV6FSW.js → managed-runtime-ssh-worker-HU4CIJRK.js} +1 -1
  150. package/chunks/{managed-session-authority-C7IW6TJX.js → managed-session-authority-XSSTLAEY.js} +1 -1
  151. package/chunks/{mcp-VC4CJPE5.js → mcp-WLHDOKP7.js} +1 -1
  152. package/chunks/{memory-S6OJA3ZD.js → memory-OUUHPSDD.js} +1 -1
  153. package/chunks/{model-call-collection-MJZWRQSU.js → model-call-collection-4A2EB76B.js} +1 -1
  154. package/chunks/{model-configuration-SKU6L3QI.js → model-configuration-4CGUFKEP.js} +1 -1
  155. package/chunks/{modelConfigUtils-TJCB6NXT.js → modelConfigUtils-HUEERWBA.js} +1 -1
  156. package/chunks/{monitor-M3PNLCYP.js → monitor-FXL5UNMP.js} +1 -1
  157. package/chunks/{nonInteractiveCli-MR7JLAWU.js → nonInteractiveCli-W7M2O43W.js} +1 -1
  158. package/chunks/{nonInteractiveToolExecutor-YKA6JMTY.js → nonInteractiveToolExecutor-EMLI363Q.js} +1 -1
  159. package/chunks/{notebook-edit-ENTFB5D7.js → notebook-edit-R5RSLSSH.js} +1 -1
  160. package/chunks/{omni-6YBX4R6K.js → omni-DNZGITTE.js} +1 -1
  161. package/chunks/{openaiContentGenerator-XRXX33FY.js → openaiContentGenerator-PKOPYMHR.js} +1 -1
  162. package/chunks/{openaiResponsesContentGenerator-L6ONEHMR.js → openaiResponsesContentGenerator-MHH2MF3V.js} +1 -1
  163. package/chunks/{pidfile-XR4JF2Z6.js → pidfile-5ZNJWMKG.js} +1 -1
  164. package/chunks/{processUtils-GQYNJRBJ.js → processUtils-JIHQDASW.js} +1 -1
  165. package/chunks/{prompt-terminal-ledger-7BM7YDLG.js → prompt-terminal-ledger-L3LZ5SLR.js} +1 -1
  166. package/chunks/{qwenContentGenerator-QSA32XEL.js → qwenContentGenerator-QCZL7HJJ.js} +1 -1
  167. package/chunks/{reactive-degrade-TFNBAAPZ.js → reactive-degrade-YUXOUQG4.js} +1 -1
  168. package/chunks/{read-file-VD7OFO2E.js → read-file-FBNU3AVX.js} +1 -1
  169. package/chunks/{resumeHistoryUtils-2B4KPI7G.js → resumeHistoryUtils-5FPRTI4A.js} +1 -1
  170. package/chunks/{review-C365WGCW.js → review-NLFYSNM3.js} +1 -1
  171. package/chunks/{ripGrep-D7WPMBXR.js → ripGrep-JUAPC5LD.js} +1 -1
  172. package/chunks/{run-qwen-serve-NZWQHWQA.js → run-qwen-serve-JP64UQ3Y.js} +1 -1
  173. package/chunks/{runtime-J6SPBSCS.js → runtime-D2QUYM6U.js} +1 -1
  174. package/chunks/{sandboxConfig-QS2XBPZG.js → sandboxConfig-7VZJQV6H.js} +1 -1
  175. package/chunks/{scheduled-tasks-YNNIOOPM.js → scheduled-tasks-PC6EH75E.js} +1 -1
  176. package/chunks/{scheduler-KCMSPHON.js → scheduler-RUV2FNDR.js} +1 -1
  177. package/chunks/{search-memory-EUBJ7IAV.js → search-memory-YJTJ7BRU.js} +1 -1
  178. package/chunks/{send-message-CWWZUPSK.js → send-message-EEEFFTHX.js} +1 -1
  179. package/chunks/{serve-4CB4BWJ5.js → serve-KMIZDYON.js} +1 -1
  180. package/chunks/{server-JNANUIGC.js → server-DUPK3V7B.js} +3 -3
  181. package/chunks/{session-3LQLXPUA.js → session-CW5YMFMP.js} +1 -1
  182. package/chunks/{session-attachments-root-BWIVWFHJ.js → session-attachments-root-5H5GFHLI.js} +1 -1
  183. package/chunks/{session-execution-engine-selector-5OLRX57L.js → session-execution-engine-selector-MVXM2HZW.js} +1 -1
  184. package/chunks/{session-pr-refresh-RLF3EXS3.js → session-pr-refresh-4UPONX4L.js} +1 -1
  185. package/chunks/{sessionService-U7ACD2HP.js → sessionService-GGCYISSL.js} +1 -1
  186. package/chunks/{settings-FTGWYTUH.js → settings-AASJCESS.js} +1 -1
  187. package/chunks/{shell-E4RENYQC.js → shell-V4WWLW3Q.js} +1 -1
  188. package/chunks/{skill-OLNPHRWB.js → skill-NDEBB7VX.js} +1 -1
  189. package/chunks/{skill-settings-R2BV2GEK.js → skill-settings-YAI3GYU5.js} +1 -1
  190. package/chunks/{spawnChannel-LOPAR5T2.js → spawnChannel-6JKVJAXZ.js} +1 -1
  191. package/chunks/{standalone-update-IGDX2RGN.js → standalone-update-NJP5OCKJ.js} +1 -1
  192. package/chunks/{start-opentui-ui-33QLBNRC.js → start-opentui-ui-M4B4SXRM.js} +1 -1
  193. package/chunks/{startInteractiveUI-RQKHD7MM.js → startInteractiveUI-O4JUDEAU.js} +1 -1
  194. package/chunks/{team-create-HAVKHNU5.js → team-create-NLJ7QBLD.js} +1 -1
  195. package/chunks/{team-plan-approval-7MCQX67C.js → team-plan-approval-XKYPVWNG.js} +1 -1
  196. package/chunks/{terminal-image-renderer-XT5JVEO6.js → terminal-image-renderer-47TD747D.js} +1 -1
  197. package/chunks/{theme-manager-DR5EYGLT.js → theme-manager-AANEBPLJ.js} +1 -1
  198. package/chunks/{tool-call-LZHZ5RVH.js → tool-call-ETH3LS7Y.js} +1 -1
  199. package/chunks/{tool-result-media-XCXCF4YC.js → tool-result-media-EFOEPAF2.js} +1 -1
  200. package/chunks/{tool-search-K6S3ON7M.js → tool-search-J3CF5PRN.js} +1 -1
  201. package/chunks/{total-session-admission-LGSS2VWS.js → total-session-admission-3DC52PLQ.js} +1 -1
  202. package/chunks/{trustedFolders-IIR2UZRL.js → trustedFolders-4KPWZZKB.js} +1 -1
  203. package/chunks/{update-relaunch-WVIFX5CN.js → update-relaunch-A67BS7QS.js} +1 -1
  204. package/chunks/{updateCheck-CMEWLLZJ.js → updateCheck-X623JRSY.js} +1 -1
  205. package/chunks/{upload-config-TCCFCNCD.js → upload-config-X2CR3F26.js} +1 -1
  206. package/chunks/{useAutoAcceptIndicator-5RTTH3OW.js → useAutoAcceptIndicator-INIOQGJH.js} +1 -1
  207. package/chunks/{validateNonInterActiveAuth-AO336KDX.js → validateNonInterActiveAuth-XJ2U5CLB.js} +1 -1
  208. package/chunks/{version-JYWKKMNP.js → version-MFHRMM7W.js} +1 -1
  209. package/chunks/{web-fetch-HWTAWXFM.js → web-fetch-3GEJ62DH.js} +1 -1
  210. package/chunks/{web-search-HAI5LW3G.js → web-search-WJZO3Q3A.js} +1 -1
  211. package/chunks/{workflow-BZ2YFGF6.js → workflow-ML7ITCMH.js} +1 -1
  212. package/chunks/{workflow-ancestor-trust-26TFXFPO.js → workflow-ancestor-trust-M3VFMS73.js} +1 -1
  213. package/chunks/{workspace-agents-DLI4JQJZ.js → workspace-agents-YFZMV7EF.js} +1 -1
  214. package/chunks/{workspace-providers-status-64C7DJZU.js → workspace-providers-status-3COKLBCI.js} +1 -1
  215. package/chunks/{workspace-recovery-worker-IFRT3KKP.js → workspace-recovery-worker-QURA3WFZ.js} +1 -1
  216. package/chunks/{workspace-registration-store-MYKJM2SK.js → workspace-registration-store-F3AGIOBW.js} +1 -1
  217. package/chunks/{workspace-registry-GZJRONAY.js → workspace-registry-QUBL3RW6.js} +1 -1
  218. package/chunks/{workspace-runtime-coordinator-44KW6HSN.js → workspace-runtime-coordinator-22TSDHXX.js} +1 -1
  219. package/chunks/{workspace-service-YHTSZYYD.js → workspace-service-UUENTHNO.js} +1 -1
  220. package/chunks/{workspace-skills-status-NEB62X24.js → workspace-skills-status-NNQQBBCJ.js} +1 -1
  221. package/chunks/{workspace-trust-reconciler-HZLOOZWM.js → workspace-trust-reconciler-3CMMNCGG.js} +1 -1
  222. package/chunks/{write-file-HD5LHXGL.js → write-file-DEAFIK4C.js} +1 -1
  223. package/chunks/{zoom-image-W4BMRC5T.js → zoom-image-YYO22PQG.js} +1 -1
  224. package/cli-entry.js +2 -3
  225. package/cli.js +2 -2
  226. package/execution-worker.js +1 -1
  227. package/export-transcript-document.js +1 -1
  228. package/gerege.mjs +11 -0
  229. package/package.json +2 -12
  230. package/chunks/managed-npm-update-CTL6LH5Z.js +0 -8
  231. package/opentui-assets/@opentui/core/assets/javascript/highlights.scm +0 -205
  232. package/opentui-assets/@opentui/core/assets/javascript/tree-sitter-javascript.wasm +0 -0
  233. package/opentui-assets/@opentui/core/assets/markdown/highlights.scm +0 -150
  234. package/opentui-assets/@opentui/core/assets/markdown/injections.scm +0 -27
  235. package/opentui-assets/@opentui/core/assets/markdown/tree-sitter-markdown.wasm +0 -0
  236. package/opentui-assets/@opentui/core/assets/markdown_inline/highlights.scm +0 -115
  237. package/opentui-assets/@opentui/core/assets/markdown_inline/tree-sitter-markdown_inline.wasm +0 -0
  238. package/opentui-assets/@opentui/core/assets/typescript/highlights.scm +0 -604
  239. package/opentui-assets/@opentui/core/assets/typescript/tree-sitter-typescript.wasm +0 -0
  240. package/opentui-assets/@opentui/core/assets/zig/highlights.scm +0 -284
  241. package/opentui-assets/@opentui/core/assets/zig/tree-sitter-zig.wasm +0 -0
  242. package/opentui-assets/@opentui/core/parser.worker.js +0 -4566
  243. package/opentui-assets/@opentui/core-darwin-arm64/libopentui.dylib +0 -0
  244. package/opentui-assets/@opentui/core-darwin-x64/libopentui.dylib +0 -0
  245. package/opentui-assets/@opentui/core-linux-arm64/libopentui.so +0 -0
  246. package/opentui-assets/@opentui/core-linux-x64/libopentui.so +0 -0
  247. package/opentui-assets/web-tree-sitter/tree-sitter.wasm +0 -0
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{DEFAULT_MAX_AGENTS_PER_RUN,DEFAULT_WORKFLOW_SUBAGENT_MAX_TIME_MINUTES,DEFAULT_WORKFLOW_SUBAGENT_MAX_TURNS,MAX_TOKENS_PER_WORKFLOW_ENV,MAX_WORKFLOW_AGENTS_ENV,MAX_WORKFLOW_CONCURRENCY_ENV,WORKFLOW_SUBAGENT_MAX_MINUTES_ENV,WORKFLOW_SUBAGENT_MAX_TURNS_ENV,WorkflowBudgetImpl,WorkflowRunner,WorkflowScriptNotLaunchedError,WorkflowStartCancelledError}from"./chunk-SP6CQ3MO.js";import{NO_JOURNAL_NO_RESUME_NOTE,RESUME_ARGS_TOO_LARGE_NOTE,WORKFLOW_AUTHORING_SKILL_NAME,buildFailureLines,buildResumeCall,buildWorkflowSizeGuidelineParagraph,computeWorkflowScriptDigest,extractAndStripMeta,findActiveExtensionWorkflowByPath,findActiveExtensionWorkflowByPathCanonical,getActiveExtensionWorkflows,hasUninlinableResumeArgs,isActiveWorkflowStatus,isSymlinkedRoot,parseExtensionWorkflowName,readWorkflowAuthoringReference,readWorkflowSourceRef,resolveSavedWorkflowScript,resolveWorkflowAuthoringSurface,resolveWorkflowSizeGuidelineSetting,sanitizeWorkflowText,scanWorkflowScriptShape,stringifyWorkflowResult,workflowResultReplacer}from"./chunk-2JGTWRZJ.js";import"./chunk-R2EHHA2C.js";import"./chunk-YK7NDQKM.js";import"./chunk-ZLZF2ZDD.js";import"./chunk-OMSVOFTC.js";import"./chunk-PHIPLV2I.js";import"./chunk-ZOTKZI2P.js";import"./chunk-A6G5TAIF.js";import"./chunk-YVBHCSZD.js";import"./chunk-FIXDX63I.js";import"./chunk-T7CHK6C2.js";import"./chunk-PT7NZBDY.js";import"./chunk-TWP72VRH.js";import"./chunk-UYEWRLGD.js";import"./chunk-QVPT37XZ.js";import"./chunk-YVD4O5ZB.js";import"./chunk-T6W33SET.js";import"./chunk-WK2IBT6D.js";import"./chunk-QZV4PFQK.js";import"./chunk-ILECDNJX.js";import"./chunk-QXQGUM3Y.js";import"./chunk-UQ7IROJH.js";import"./chunk-SZCBUCNH.js";import"./chunk-BEKROCWN.js";import{toolSearchBridgeSentence}from"./chunk-5SUFJTQQ.js";import"./chunk-BYU42MLK.js";import"./chunk-JWQXU3SR.js";import"./chunk-5LZ2DPLH.js";import"./chunk-XQJOZDV7.js";import"./chunk-CV2UAEZA.js";import"./chunk-FUBDS3AV.js";import"./chunk-HW6AWS7W.js";import"./chunk-KLC3OD2M.js";import"./chunk-Q5IZXKUJ.js";import"./chunk-G5PYYZMM.js";import"./chunk-BG67XABA.js";import"./chunk-OBOU4ZZM.js";import"./chunk-D7XCQWP2.js";import"./chunk-AE5OMKRY.js";import"./chunk-OBV7RNHV.js";import"./chunk-7CQMWEMY.js";import"./chunk-GOZYWU4B.js";import{getRuleDisplayName,resolveToolName}from"./chunk-OUC3WICA.js";import"./chunk-JZK2WGXA.js";import"./chunk-MPHSE7M4.js";import"./chunk-S2ZKZXHX.js";import"./chunk-7UK4WJWS.js";import"./chunk-4GP3PH7Z.js";import"./chunk-4QQKOW5M.js";import"./chunk-OV3EBH6J.js";import"./chunk-EBMCWXGZ.js";import"./chunk-XZTE4YTN.js";import"./chunk-LSASUDF2.js";import"./chunk-2V5EKGDK.js";import"./chunk-MOKVM4PT.js";import"./chunk-YIW3H46P.js";import"./chunk-EOMRLUNZ.js";import"./chunk-4ZRCV3JY.js";import"./chunk-TL6MLBXR.js";import"./chunk-NMY3PYNO.js";import"./chunk-YGLM5XPP.js";import"./chunk-WGNF7FPC.js";import"./chunk-4NPYOXJO.js";import"./chunk-MWGB5RCF.js";import"./chunk-SCD5TUBG.js";import"./chunk-NTRFETZB.js";import"./chunk-TL3SF2GA.js";import"./chunk-LMJPU2JM.js";import"./chunk-4JNHUZ7M.js";import"./chunk-SW54YEPK.js";import"./chunk-ZCRL73DT.js";import"./chunk-A6LT3FIJ.js";import"./chunk-S6RXVOY6.js";import"./chunk-YZFNBUKG.js";import"./chunk-AGEDDL7Z.js";import"./chunk-2NJJHZ52.js";import"./chunk-BN4FIQ77.js";import"./chunk-X64RXJQQ.js";import"./chunk-HETUGUHE.js";import"./chunk-ET2Z7ZGF.js";import"./chunk-3YWXKSOI.js";import"./chunk-5CWTKFI4.js";import"./chunk-C4MVD5OI.js";import"./chunk-Z2W7S4O4.js";import"./chunk-476F6QIM.js";import"./chunk-4R67LXKL.js";import"./chunk-FQRF6B65.js";import"./chunk-ZWPSBU7K.js";import"./chunk-UQFTXKEB.js";import"./chunk-HDGTWJ24.js";import"./chunk-W5NWIGKO.js";import"./chunk-KVA6DHHF.js";import"./chunk-PWOQASXT.js";import"./chunk-K7JCVESI.js";import{isWithinRoot}from"./chunk-Y6HHV4LC.js";import"./chunk-RP57XAJ2.js";import"./chunk-Z6AR5XE5.js";import"./chunk-7DOOXUDG.js";import"./chunk-77V43YOE.js";import"./chunk-7U7CWMP7.js";import"./chunk-EFTJIDS3.js";import"./chunk-4DIWAQ5G.js";import"./chunk-Q6UAOTP3.js";import"./chunk-AFO5ER23.js";import"./chunk-GOR7FFVE.js";import"./chunk-4ZBZL23U.js";import"./chunk-BMHYEQTI.js";import"./chunk-ZZZAYAJW.js";import"./chunk-XMANRGPK.js";import"./chunk-3XVPZY7X.js";import"./chunk-KQX4H2D3.js";import"./chunk-URNNJMIC.js";import"./chunk-GU22I6TY.js";import"./chunk-YEYW7PPR.js";import{stripAnsiAndControl}from"./chunk-DBRQGEEI.js";import"./chunk-B3ZFUGTC.js";import"./chunk-IRINPFG7.js";import"./chunk-6GTPLW7K.js";import"./chunk-NGVRCUYD.js";import"./chunk-5DTFN37U.js";import"./chunk-2YUBAWQ6.js";import{BaseDeclarativeTool,BaseToolInvocation}from"./chunk-O5EKX7LG.js";import"./chunk-TM6ZCBR7.js";import"./chunk-SVAPAMMG.js";import"./chunk-3KUHQGOS.js";import"./chunk-I6S7NGX3.js";import{ToolDisplayNames,ToolNames}from"./chunk-SBZFGYYS.js";import"./chunk-JAUJI56S.js";import"./chunk-I4H7NUVP.js";import"./chunk-EPODBRBP.js";import"./chunk-OKN3Z5C5.js";import"./chunk-XYB7GC5U.js";import"./chunk-2UOMCYQG.js";import"./chunk-I7L2TX4M.js";import"./chunk-MK3OONRA.js";import"./chunk-COGTQ5KZ.js";import{init_esbuild_shims}from"./chunk-VKDAXTCZ.js";import{__name}from"./chunk-KBWJGX7I.js";init_esbuild_shims();import{promises as fs}from"node:fs";import*as path from"node:path";var WORKFLOW_PARAM_SCHEMA={type:"object",properties:{sourceRef:{type:"object",description:"Optional caller-supplied definition id and revision for run correlation. Requires a writable journal; omit for ordinary workflows.",properties:{id:{type:"string",minLength:1,maxLength:256},revision:{type:"string",minLength:1,maxLength:256}},required:["id","revision"],additionalProperties:false},script:{type:"string",description:"JavaScript source of the workflow, wrapped as an async IIFE: top-level `await` and `return` are both legal, and a trailing expression is NOT a return value. Uses the injected globals `phase()`, `log()`, `agent()`, `parallel()`, `pipeline()`, `workflow()`, `args` and `budget`, and cannot import anything. May start with a literal `export const meta = {...}` (stripped before execution). `Math.random()` and all of `Date` (`new Date()`, `Date.now()` included) throw \u2014 a script must be deterministic for resume, so pass timestamps in via `args` or stamp the result after the run returns. Pass THUNKS to parallel(), not eager calls: `parallel([() => agent(...)])`, not `parallel([agent(...)])`."},scriptPath:{type:"string",description:"Optional. Absolute path to a workflow `.js` file to load and run instead of inline `script`. Set by saved-workflow slash commands or script generators. The file must resolve inside a saved-workflow directory (`.qwen/workflows`, `~/.qwen/workflows`), be a direct legal `<name>.js` file in a trusted ancestor `.qwen/workflows` up to the nearest Git root when the local host enables ancestor discovery, be a workflow file an active extension ships, or sit under the generated-scripts root (`$QWEN_CODE_PROJECT_DIR/workflows/generated` \u2014 the per-project runtime dir, not the project tree) \u2014 any other path is refused. Provide exactly ONE of `script`, `scriptPath` or `name`. The file is read once per call, before approval, so edits to a saved workflow take effect on the next call. An inline `script` is persisted to `<generated root>/inline/<runId>.js` and that path comes back in the result, so a resume passes the path instead of the source."},name:{type:"string",description:"Optional. Name of a saved workflow to run instead of inline `script`: `<name>` for one in `.qwen/workflows` or `~/.qwen/workflows` (local hosts may also enable trusted ancestor `.qwen/workflows` up to the nearest Git root), or `<extension>:<name>` for one an active extension ships. Provide exactly ONE of `script`, `scriptPath` or `name`."},args:{description:"Optional structured value bound to the `args` global. Pass actual JSON, not a stringified value."},resumeFromRunId:{type:"string",description:"Optional. Resume a prior workflow run by id (e.g. wf_abc123\u2026). Re-runs the supplied script or returned script path; agent() calls whose rolling prefix-hash (prompt + opts, chained in call order) matches a journaled result are served from cache for the longest unchanged prefix, and the first changed/missing call onward runs live. Pass the `scriptPath` the original run returned and the same `args`. Editing a saved workflow changes future runs too, so copy it for run-specific edits. A run whose journal is not on disk has nothing to resume and is refused; call again without `resumeFromRunId` to start over. The journal keys hash each agent() call's prompt and opts, not the script text, so post-processing can change without losing the cache."},run_in_background:{type:"boolean",default:false,description:"Optional. When true, start the workflow under the interactive session and return a run handle immediately. The Background Tasks view can observe, cooperatively pause/resume, or stop it, and completion is delivered to the conversation when the run settles. Interactive TUI only. Defaults to false."}}};var WorkflowToolInvocation=class extends BaseToolInvocation{constructor(config,toolOptions,params,authoringHint,workflowName,sessionOwned=false){super(params);this.config=config;this.toolOptions=toolOptions;this.authoringHint=authoringHint;this.workflowName=workflowName;this.sessionOwned=sessionOwned}static{__name(this,"WorkflowToolInvocation")}callId;notifyOnCompletion=false;setCompletionNotificationEnabled(enabled){this.notifyOnCompletion=enabled&&this.config.isInteractive?.()===true&&this.config.getExperimentalZedIntegration?.()!==true}authoredScriptHint(){if(!this.authoringHint)return null;return isScriptAuthoredByThisCall(this.config,this.workflowName??this.params.name,this.params.scriptPath)?this.authoringHint:null}setCallId(callId){this.callId=callId}metaCache;resolveMeta(){if(this.metaCache===void 0){this.metaCache=this.params.script?readMetaForConfirmation(this.params.script):null}return this.metaCache}scriptLoad;settledScriptLoad;loadReferencedScript(){if(this.params.script!==void 0)return void 0;const{name,scriptPath}=this.params;if(!name&&!scriptPath)return void 0;this.scriptLoad??=(async()=>{try{const loaded=await resolveSavedWorkflowScript(name?name:{scriptPath},this.config);return{ok:true,loaded,digest:computeWorkflowScriptDigest(loaded.script)}}catch(error){return{ok:false,error}}})().then(load=>{this.settledScriptLoad=load;return load});return this.scriptLoad}getDescription(){const meta=this.resolveMeta();if(meta){return`Run workflow: ${sanitizeLine(meta.name)}`}if(this.params.name&&this.params.script===void 0){const kind=parseExtensionWorkflowName(this.params.name)?"extension":"saved";return`Run ${kind} workflow (${sanitizeLine(this.params.name)})`}if(this.params.scriptPath&&this.params.script===void 0){if(isGeneratedWorkflowScriptPath(this.config,this.params.scriptPath)){return`Run generated workflow script (${path.basename(this.params.scriptPath)})`}const extensionWorkflow=findActiveExtensionWorkflowByPath(this.config,this.params.scriptPath);if(extensionWorkflow){return`Run extension workflow (${sanitizeLine(extensionWorkflow.name)})`}return`Run saved workflow (${path.basename(this.params.scriptPath)})`}return`Run a workflow script (${this.params.script?.length??0} chars)`}toolLocations(){return[]}async getDefaultPermission(){const load=await this.loadReferencedScript();return load&&!load.ok?"allow":"ask"}getPermissionMatchParams(){const load=this.settledScriptLoad;return{...this.params,[WORKFLOW_RULE_DIGEST_KEY]:load?.ok?load.digest:void 0}}async getConfirmationDetails(_abortSignal){const load=await this.loadReferencedScript();const loaded=load?.ok?load:void 0;const meta=loaded?readMetaForConfirmation(loaded.loaded.script):this.resolveMeta();const isGeneratedScriptPath=this.params.scriptPath!==void 0&&await isGeneratedWorkflowScriptPathCanonical(this.config,this.params.scriptPath);const isGeneratedInlineScriptPath=this.params.scriptPath!==void 0&&await isWorkflowScriptPathWithinCanonicalRoot(this.params.scriptPath,path.dirname(this.config.storage.getInlineWorkflowScriptPath("wf_0")));const extensionWorkflow=isGeneratedScriptPath?void 0:this.params.name?getActiveExtensionWorkflows(this.config).find(workflow=>workflow.name===this.params.name):this.params.scriptPath!==void 0?await findActiveExtensionWorkflowByPathCanonical(this.config,this.params.scriptPath):void 0;const body=buildConfirmationPrompt(this.params,meta,isGeneratedScriptPath?{kind:"generated"}:extensionWorkflow?{kind:"extension",workflow:extensionWorkflow}:{kind:"saved"},loaded?{scriptPath:loaded.loaded.scriptPath,script:loaded.loaded.script,digest:loaded.digest}:load?{error:describeLoadError(load)}:void 0);const banner=resolveUsageBanner(this.config,this.config.getWorkflowRunRegistry?.(),WorkflowBudgetImpl.fromConfig(this.config));const isInlineScript=this.params.script!==void 0||isGeneratedInlineScriptPath;const grantRule=isInlineScript||!loaded?void 0:buildWorkflowGrantRule(this.params,loaded.digest);const details={type:"info",title:"Run a dynamic workflow?",prompt:banner?`${banner}${body}`:body,renderPromptAsPlainText:true,hideAlwaysAllow:grantRule===void 0,permissionRules:grantRule?[grantRule]:[],onConfirm:__name(async(_outcome,_payload)=>{},"onConfirm")};return details}async execute(signal,updateOutput,_shellExecutionConfig){const runInBackground=this.params.run_in_background===true;if(runInBackground&&signal.aborted){return startCancelledResult()}const load=this.loadReferencedScript();let handle;try{handle=await WorkflowRunner.start({config:this.config,signal,toolUseId:this.callId,...this.workflowName?{workflowName:this.workflowName}:{},...authoringHintOption(this.authoredScriptHint()),script:this.params.script,scriptPath:this.params.scriptPath,...load?{loadScript:__name(()=>unwrapScriptLoad(load),"loadScript")}:{},args:this.params.args,sourceRef:this.params.sourceRef,resumeFromRunId:this.params.resumeFromRunId,dispatch:this.toolOptions.dispatch,runInBackground,notifyOnCompletion:this.notifyOnCompletion,...!this.sessionOwned&&this.config.isWorkflowNameOnly?.()===true?{restrictNestedScriptPaths:true}:{},onUpdate:!runInBackground&&updateOutput?entry=>safeEmitUpdate(updateOutput,entry):void 0})}catch(error){if(error instanceof WorkflowStartCancelledError||runInBackground&&signal.aborted){return startCancelledResult()}if(error instanceof WorkflowScriptNotLaunchedError){const hint=this.authoredScriptHint();const text=hint?`${error.message}
3
+ import{DEFAULT_MAX_AGENTS_PER_RUN,DEFAULT_WORKFLOW_SUBAGENT_MAX_TIME_MINUTES,DEFAULT_WORKFLOW_SUBAGENT_MAX_TURNS,MAX_TOKENS_PER_WORKFLOW_ENV,MAX_WORKFLOW_AGENTS_ENV,MAX_WORKFLOW_CONCURRENCY_ENV,WORKFLOW_SUBAGENT_MAX_MINUTES_ENV,WORKFLOW_SUBAGENT_MAX_TURNS_ENV,WorkflowBudgetImpl,WorkflowRunner,WorkflowScriptNotLaunchedError,WorkflowStartCancelledError}from"./chunk-VKWVIWLK.js";import{NO_JOURNAL_NO_RESUME_NOTE,RESUME_ARGS_TOO_LARGE_NOTE,WORKFLOW_AUTHORING_SKILL_NAME,buildFailureLines,buildResumeCall,buildWorkflowSizeGuidelineParagraph,computeWorkflowScriptDigest,extractAndStripMeta,findActiveExtensionWorkflowByPath,findActiveExtensionWorkflowByPathCanonical,getActiveExtensionWorkflows,hasUninlinableResumeArgs,isActiveWorkflowStatus,isSymlinkedRoot,parseExtensionWorkflowName,readWorkflowAuthoringReference,readWorkflowSourceRef,resolveSavedWorkflowScript,resolveWorkflowAuthoringSurface,resolveWorkflowSizeGuidelineSetting,sanitizeWorkflowText,scanWorkflowScriptShape,stringifyWorkflowResult,workflowResultReplacer}from"./chunk-7XQ5D34E.js";import"./chunk-R2EHHA2C.js";import"./chunk-YK7NDQKM.js";import"./chunk-ZLZF2ZDD.js";import"./chunk-OMSVOFTC.js";import"./chunk-PHIPLV2I.js";import"./chunk-ZOTKZI2P.js";import"./chunk-A6G5TAIF.js";import"./chunk-YVBHCSZD.js";import"./chunk-FIXDX63I.js";import"./chunk-T7CHK6C2.js";import"./chunk-PT7NZBDY.js";import"./chunk-TWP72VRH.js";import"./chunk-UYEWRLGD.js";import"./chunk-QVPT37XZ.js";import"./chunk-YVD4O5ZB.js";import"./chunk-T6W33SET.js";import"./chunk-WK2IBT6D.js";import"./chunk-QZV4PFQK.js";import"./chunk-ILECDNJX.js";import"./chunk-QXQGUM3Y.js";import"./chunk-UQ7IROJH.js";import"./chunk-SZCBUCNH.js";import"./chunk-BEKROCWN.js";import{toolSearchBridgeSentence}from"./chunk-5SUFJTQQ.js";import"./chunk-BYU42MLK.js";import"./chunk-JWQXU3SR.js";import"./chunk-5LZ2DPLH.js";import"./chunk-XQJOZDV7.js";import"./chunk-CV2UAEZA.js";import"./chunk-FUBDS3AV.js";import"./chunk-HW6AWS7W.js";import"./chunk-KLC3OD2M.js";import"./chunk-Q5IZXKUJ.js";import"./chunk-G5PYYZMM.js";import"./chunk-BG67XABA.js";import"./chunk-OBOU4ZZM.js";import"./chunk-D7XCQWP2.js";import"./chunk-AE5OMKRY.js";import"./chunk-OBV7RNHV.js";import"./chunk-7CQMWEMY.js";import"./chunk-GOZYWU4B.js";import{getRuleDisplayName,resolveToolName}from"./chunk-OUC3WICA.js";import"./chunk-JZK2WGXA.js";import"./chunk-MPHSE7M4.js";import"./chunk-S2ZKZXHX.js";import"./chunk-7UK4WJWS.js";import"./chunk-4GP3PH7Z.js";import"./chunk-4QQKOW5M.js";import"./chunk-OV3EBH6J.js";import"./chunk-EBMCWXGZ.js";import"./chunk-XZTE4YTN.js";import"./chunk-LSASUDF2.js";import"./chunk-2V5EKGDK.js";import"./chunk-MOKVM4PT.js";import"./chunk-YIW3H46P.js";import"./chunk-EOMRLUNZ.js";import"./chunk-4ZRCV3JY.js";import"./chunk-TL6MLBXR.js";import"./chunk-NMY3PYNO.js";import"./chunk-YGLM5XPP.js";import"./chunk-WGNF7FPC.js";import"./chunk-4NPYOXJO.js";import"./chunk-MWGB5RCF.js";import"./chunk-SCD5TUBG.js";import"./chunk-NTRFETZB.js";import"./chunk-TL3SF2GA.js";import"./chunk-LMJPU2JM.js";import"./chunk-4JNHUZ7M.js";import"./chunk-SW54YEPK.js";import"./chunk-ZCRL73DT.js";import"./chunk-A6LT3FIJ.js";import"./chunk-S6RXVOY6.js";import"./chunk-YZFNBUKG.js";import"./chunk-AGEDDL7Z.js";import"./chunk-2NJJHZ52.js";import"./chunk-BN4FIQ77.js";import"./chunk-X64RXJQQ.js";import"./chunk-HETUGUHE.js";import"./chunk-ET2Z7ZGF.js";import"./chunk-3YWXKSOI.js";import"./chunk-5CWTKFI4.js";import"./chunk-C4MVD5OI.js";import"./chunk-Z2W7S4O4.js";import"./chunk-476F6QIM.js";import"./chunk-4R67LXKL.js";import"./chunk-FQRF6B65.js";import"./chunk-ZWPSBU7K.js";import"./chunk-UQFTXKEB.js";import"./chunk-HDGTWJ24.js";import"./chunk-W5NWIGKO.js";import"./chunk-KVA6DHHF.js";import"./chunk-PWOQASXT.js";import"./chunk-K7JCVESI.js";import{isWithinRoot}from"./chunk-Y6HHV4LC.js";import"./chunk-RP57XAJ2.js";import"./chunk-Z6AR5XE5.js";import"./chunk-7DOOXUDG.js";import"./chunk-77V43YOE.js";import"./chunk-7U7CWMP7.js";import"./chunk-EFTJIDS3.js";import"./chunk-4DIWAQ5G.js";import"./chunk-Q6UAOTP3.js";import"./chunk-HQZTAA2U.js";import"./chunk-GOR7FFVE.js";import"./chunk-4ZBZL23U.js";import"./chunk-BMHYEQTI.js";import"./chunk-ZZZAYAJW.js";import"./chunk-XMANRGPK.js";import"./chunk-3XVPZY7X.js";import"./chunk-KQX4H2D3.js";import"./chunk-URNNJMIC.js";import"./chunk-GU22I6TY.js";import"./chunk-YEYW7PPR.js";import{stripAnsiAndControl}from"./chunk-DBRQGEEI.js";import"./chunk-B3ZFUGTC.js";import"./chunk-IRINPFG7.js";import"./chunk-6GTPLW7K.js";import"./chunk-NGVRCUYD.js";import"./chunk-5DTFN37U.js";import"./chunk-2YUBAWQ6.js";import{BaseDeclarativeTool,BaseToolInvocation}from"./chunk-O5EKX7LG.js";import"./chunk-TM6ZCBR7.js";import"./chunk-SVAPAMMG.js";import"./chunk-3KUHQGOS.js";import"./chunk-I6S7NGX3.js";import{ToolDisplayNames,ToolNames}from"./chunk-SBZFGYYS.js";import"./chunk-JAUJI56S.js";import"./chunk-I4H7NUVP.js";import"./chunk-EPODBRBP.js";import"./chunk-OKN3Z5C5.js";import"./chunk-XYB7GC5U.js";import"./chunk-2UOMCYQG.js";import"./chunk-I7L2TX4M.js";import"./chunk-MK3OONRA.js";import"./chunk-COGTQ5KZ.js";import{init_esbuild_shims}from"./chunk-VKDAXTCZ.js";import{__name}from"./chunk-KBWJGX7I.js";init_esbuild_shims();import{promises as fs}from"node:fs";import*as path from"node:path";var WORKFLOW_PARAM_SCHEMA={type:"object",properties:{sourceRef:{type:"object",description:"Optional caller-supplied definition id and revision for run correlation. Requires a writable journal; omit for ordinary workflows.",properties:{id:{type:"string",minLength:1,maxLength:256},revision:{type:"string",minLength:1,maxLength:256}},required:["id","revision"],additionalProperties:false},script:{type:"string",description:"JavaScript source of the workflow, wrapped as an async IIFE: top-level `await` and `return` are both legal, and a trailing expression is NOT a return value. Uses the injected globals `phase()`, `log()`, `agent()`, `parallel()`, `pipeline()`, `workflow()`, `args` and `budget`, and cannot import anything. May start with a literal `export const meta = {...}` (stripped before execution). `Math.random()` and all of `Date` (`new Date()`, `Date.now()` included) throw \u2014 a script must be deterministic for resume, so pass timestamps in via `args` or stamp the result after the run returns. Pass THUNKS to parallel(), not eager calls: `parallel([() => agent(...)])`, not `parallel([agent(...)])`."},scriptPath:{type:"string",description:"Optional. Absolute path to a workflow `.js` file to load and run instead of inline `script`. Set by saved-workflow slash commands or script generators. The file must resolve inside a saved-workflow directory (`.qwen/workflows`, `~/.qwen/workflows`), be a direct legal `<name>.js` file in a trusted ancestor `.qwen/workflows` up to the nearest Git root when the local host enables ancestor discovery, be a workflow file an active extension ships, or sit under the generated-scripts root (`$QWEN_CODE_PROJECT_DIR/workflows/generated` \u2014 the per-project runtime dir, not the project tree) \u2014 any other path is refused. Provide exactly ONE of `script`, `scriptPath` or `name`. The file is read once per call, before approval, so edits to a saved workflow take effect on the next call. An inline `script` is persisted to `<generated root>/inline/<runId>.js` and that path comes back in the result, so a resume passes the path instead of the source."},name:{type:"string",description:"Optional. Name of a saved workflow to run instead of inline `script`: `<name>` for one in `.qwen/workflows` or `~/.qwen/workflows` (local hosts may also enable trusted ancestor `.qwen/workflows` up to the nearest Git root), or `<extension>:<name>` for one an active extension ships. Provide exactly ONE of `script`, `scriptPath` or `name`."},args:{description:"Optional structured value bound to the `args` global. Pass actual JSON, not a stringified value."},resumeFromRunId:{type:"string",description:"Optional. Resume a prior workflow run by id (e.g. wf_abc123\u2026). Re-runs the supplied script or returned script path; agent() calls whose rolling prefix-hash (prompt + opts, chained in call order) matches a journaled result are served from cache for the longest unchanged prefix, and the first changed/missing call onward runs live. Pass the `scriptPath` the original run returned and the same `args`. Editing a saved workflow changes future runs too, so copy it for run-specific edits. A run whose journal is not on disk has nothing to resume and is refused; call again without `resumeFromRunId` to start over. The journal keys hash each agent() call's prompt and opts, not the script text, so post-processing can change without losing the cache."},run_in_background:{type:"boolean",default:false,description:"Optional. When true, start the workflow under the interactive session and return a run handle immediately. The Background Tasks view can observe, cooperatively pause/resume, or stop it, and completion is delivered to the conversation when the run settles. Interactive TUI only. Defaults to false."}}};var WorkflowToolInvocation=class extends BaseToolInvocation{constructor(config,toolOptions,params,authoringHint,workflowName,sessionOwned=false){super(params);this.config=config;this.toolOptions=toolOptions;this.authoringHint=authoringHint;this.workflowName=workflowName;this.sessionOwned=sessionOwned}static{__name(this,"WorkflowToolInvocation")}callId;notifyOnCompletion=false;setCompletionNotificationEnabled(enabled){this.notifyOnCompletion=enabled&&this.config.isInteractive?.()===true&&this.config.getExperimentalZedIntegration?.()!==true}authoredScriptHint(){if(!this.authoringHint)return null;return isScriptAuthoredByThisCall(this.config,this.workflowName??this.params.name,this.params.scriptPath)?this.authoringHint:null}setCallId(callId){this.callId=callId}metaCache;resolveMeta(){if(this.metaCache===void 0){this.metaCache=this.params.script?readMetaForConfirmation(this.params.script):null}return this.metaCache}scriptLoad;settledScriptLoad;loadReferencedScript(){if(this.params.script!==void 0)return void 0;const{name,scriptPath}=this.params;if(!name&&!scriptPath)return void 0;this.scriptLoad??=(async()=>{try{const loaded=await resolveSavedWorkflowScript(name?name:{scriptPath},this.config);return{ok:true,loaded,digest:computeWorkflowScriptDigest(loaded.script)}}catch(error){return{ok:false,error}}})().then(load=>{this.settledScriptLoad=load;return load});return this.scriptLoad}getDescription(){const meta=this.resolveMeta();if(meta){return`Run workflow: ${sanitizeLine(meta.name)}`}if(this.params.name&&this.params.script===void 0){const kind=parseExtensionWorkflowName(this.params.name)?"extension":"saved";return`Run ${kind} workflow (${sanitizeLine(this.params.name)})`}if(this.params.scriptPath&&this.params.script===void 0){if(isGeneratedWorkflowScriptPath(this.config,this.params.scriptPath)){return`Run generated workflow script (${path.basename(this.params.scriptPath)})`}const extensionWorkflow=findActiveExtensionWorkflowByPath(this.config,this.params.scriptPath);if(extensionWorkflow){return`Run extension workflow (${sanitizeLine(extensionWorkflow.name)})`}return`Run saved workflow (${path.basename(this.params.scriptPath)})`}return`Run a workflow script (${this.params.script?.length??0} chars)`}toolLocations(){return[]}async getDefaultPermission(){const load=await this.loadReferencedScript();return load&&!load.ok?"allow":"ask"}getPermissionMatchParams(){const load=this.settledScriptLoad;return{...this.params,[WORKFLOW_RULE_DIGEST_KEY]:load?.ok?load.digest:void 0}}async getConfirmationDetails(_abortSignal){const load=await this.loadReferencedScript();const loaded=load?.ok?load:void 0;const meta=loaded?readMetaForConfirmation(loaded.loaded.script):this.resolveMeta();const isGeneratedScriptPath=this.params.scriptPath!==void 0&&await isGeneratedWorkflowScriptPathCanonical(this.config,this.params.scriptPath);const isGeneratedInlineScriptPath=this.params.scriptPath!==void 0&&await isWorkflowScriptPathWithinCanonicalRoot(this.params.scriptPath,path.dirname(this.config.storage.getInlineWorkflowScriptPath("wf_0")));const extensionWorkflow=isGeneratedScriptPath?void 0:this.params.name?getActiveExtensionWorkflows(this.config).find(workflow=>workflow.name===this.params.name):this.params.scriptPath!==void 0?await findActiveExtensionWorkflowByPathCanonical(this.config,this.params.scriptPath):void 0;const body=buildConfirmationPrompt(this.params,meta,isGeneratedScriptPath?{kind:"generated"}:extensionWorkflow?{kind:"extension",workflow:extensionWorkflow}:{kind:"saved"},loaded?{scriptPath:loaded.loaded.scriptPath,script:loaded.loaded.script,digest:loaded.digest}:load?{error:describeLoadError(load)}:void 0);const banner=resolveUsageBanner(this.config,this.config.getWorkflowRunRegistry?.(),WorkflowBudgetImpl.fromConfig(this.config));const isInlineScript=this.params.script!==void 0||isGeneratedInlineScriptPath;const grantRule=isInlineScript||!loaded?void 0:buildWorkflowGrantRule(this.params,loaded.digest);const details={type:"info",title:"Run a dynamic workflow?",prompt:banner?`${banner}${body}`:body,renderPromptAsPlainText:true,hideAlwaysAllow:grantRule===void 0,permissionRules:grantRule?[grantRule]:[],onConfirm:__name(async(_outcome,_payload)=>{},"onConfirm")};return details}async execute(signal,updateOutput,_shellExecutionConfig){const runInBackground=this.params.run_in_background===true;if(runInBackground&&signal.aborted){return startCancelledResult()}const load=this.loadReferencedScript();let handle;try{handle=await WorkflowRunner.start({config:this.config,signal,toolUseId:this.callId,...this.workflowName?{workflowName:this.workflowName}:{},...authoringHintOption(this.authoredScriptHint()),script:this.params.script,scriptPath:this.params.scriptPath,...load?{loadScript:__name(()=>unwrapScriptLoad(load),"loadScript")}:{},args:this.params.args,sourceRef:this.params.sourceRef,resumeFromRunId:this.params.resumeFromRunId,dispatch:this.toolOptions.dispatch,runInBackground,notifyOnCompletion:this.notifyOnCompletion,...!this.sessionOwned&&this.config.isWorkflowNameOnly?.()===true?{restrictNestedScriptPaths:true}:{},onUpdate:!runInBackground&&updateOutput?entry=>safeEmitUpdate(updateOutput,entry):void 0})}catch(error){if(error instanceof WorkflowStartCancelledError||runInBackground&&signal.aborted){return startCancelledResult()}if(error instanceof WorkflowScriptNotLaunchedError){const hint=this.authoredScriptHint();const text=hint?`${error.message}
4
4
  ${hint}`:error.message;return{llmContent:[{text}],returnDisplay:error.message,error:{message:text,type:"invalid_tool_params"}}}throw error}if(runInBackground){const status=handle.registry?.get(handle.runId)?.status??"running";const usageBanner=resolveUsageBanner(this.config,handle.registry,handle.budget);return{workflowRunId:handle.runId,...handle.scriptPath?{scriptPath:handle.scriptPath}:{},...handle.journalPath?{journalPath:handle.journalPath}:{},...handle.sourceRef?{sourceRef:handle.sourceRef}:{},llmContent:[{text:buildBackgroundStartText(handle,status)}],returnDisplay:usageBanner+`Workflow ${handle.runId} started in the background (status: ${status}). Use Background Tasks to observe, cooperatively pause/resume, or stop it.`}}const settlement=await handle.completion;if(settlement.ok){const{outcome}=settlement;const usageBanner=resolveUsageBanner(this.config,handle.registry,handle.budget);const llmText=safeStringifyResult(outcome.result);const displayJson=safeStringifyDisplayPayload({runId:outcome.runId,...handle.sourceRef?{sourceRef:handle.sourceRef}:{},...outcome.meta?{meta:outcome.meta}:{},phases:outcome.phases,logs:outcome.logs,result:outcome.result,...handle.budget.runSpent()>0||handle.budget.total!==null?{tokens:{spent:handle.budget.runSpent(),total:handle.budget.runCap(),...handle.budget.source==="directive"?{turnSpent:handle.budget.spent(),turnTotal:handle.budget.total}:{}}}:{}});return{...handle.scriptPath?{scriptPath:handle.scriptPath}:{},...handle.journalPath?{journalPath:handle.journalPath}:{},...handle.sourceRef?{sourceRef:handle.sourceRef}:{},llmContent:[{text:llmText},{text:buildRunTrailer(this.config,handle,this.params.args)}],returnDisplay:usageBanner+"```json\n"+displayJson+"\n```"}}else{const{message,details}=settlement;const{phases,logs,meta}=details??{};const cancelled=handle.registry?.get(handle.runId)?.status==="cancelled";const failureText=cancelled?"Workflow cancelled.":`Workflow failed: ${clampForDisplay(sanitizeWorkflowText(message),TRAILER_ERROR_CHARS)}`;const trailer=buildRunTrailer(this.config,handle,this.params.args,logs,!cancelled,cancelled?null:this.authoredScriptHint());const display=`${cancelled?"Workflow cancelled.":`Workflow failed: ${message}`}
5
5
 
6
6
  ${safeStringifyDisplayPayload({runId:handle.runId,...meta?{meta}:{},phases:phases??[],logs:logs??[]})}`;return{...handle.scriptPath?{scriptPath:handle.scriptPath}:{},...handle.journalPath?{journalPath:handle.journalPath}:{},...handle.sourceRef?{sourceRef:handle.sourceRef}:{},llmContent:[{text:failureText},{text:trailer}],returnDisplay:display,error:{message:`${failureText}
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{evaluateDaemonWorkflowAncestorTrust}from"./chunk-XISR37DQ.js";import"./chunk-2TAJ5STJ.js";import"./chunk-UWCF7JIF.js";import"./chunk-NONBHCXP.js";import"./chunk-LMUSSYJH.js";import"./chunk-NO7VTKRL.js";import"./chunk-U7HZUZKP.js";import"./chunk-MPVQDYPH.js";import"./chunk-PKK2D2W4.js";import"./chunk-N3AQAZ7D.js";import"./chunk-E5T4R2PM.js";import"./chunk-DOLUT3XC.js";import"./chunk-PTHIQ7ZN.js";import"./chunk-MTDBCIDA.js";import"./chunk-EIPLDYEY.js";import"./chunk-IDXJIDME.js";import"./chunk-OU7CEG7Q.js";import"./chunk-QS2ZMQIS.js";import"./chunk-S7IKHQ6I.js";import"./chunk-PAD5GPDY.js";import"./chunk-MD3ZEOBX.js";import"./chunk-SSYS5YN5.js";import"./chunk-X5QSFJVS.js";import"./chunk-OMDTFGTX.js";import"./chunk-32XHDDIA.js";import"./chunk-46VUDNCL.js";import"./chunk-MKH3EH7O.js";import"./chunk-FKZ46GKL.js";import"./chunk-SP6CQ3MO.js";import"./chunk-HW6SU6MX.js";import"./chunk-ZHHFNZ5J.js";import"./chunk-AKWYMQKU.js";import"./chunk-MZUOREFD.js";import"./chunk-CF6SZJNP.js";import"./chunk-7XZVMIY5.js";import"./chunk-CGDFZEER.js";import"./chunk-ZZJXFLVM.js";import"./chunk-RKDS7A4H.js";import"./chunk-KZNYALFU.js";import"./chunk-IV3HAIUN.js";import"./chunk-XFMPZINJ.js";import"./chunk-DECUAM3U.js";import"./chunk-QX7W2HY7.js";import"./chunk-HN5UYLPU.js";import"./chunk-PGRN3GZY.js";import"./chunk-HTW7PYHK.js";import"./chunk-AMGUAA4G.js";import"./chunk-YFTVFH2A.js";import"./chunk-ZBHL2CXR.js";import"./chunk-NIOS3B3V.js";import{getTrustedWorkflowAncestors}from"./chunk-2JGTWRZJ.js";import"./chunk-R2EHHA2C.js";import"./chunk-YK7NDQKM.js";import"./chunk-ZLZF2ZDD.js";import"./chunk-OMSVOFTC.js";import"./chunk-PHIPLV2I.js";import"./chunk-ZOTKZI2P.js";import"./chunk-A6G5TAIF.js";import"./chunk-YVBHCSZD.js";import"./chunk-FIXDX63I.js";import"./chunk-T7CHK6C2.js";import"./chunk-PT7NZBDY.js";import"./chunk-TWP72VRH.js";import"./chunk-UYEWRLGD.js";import"./chunk-QVPT37XZ.js";import"./chunk-YVD4O5ZB.js";import"./chunk-T6W33SET.js";import"./chunk-WK2IBT6D.js";import"./chunk-QZV4PFQK.js";import"./chunk-ILECDNJX.js";import"./chunk-QXQGUM3Y.js";import"./chunk-UQ7IROJH.js";import"./chunk-SZCBUCNH.js";import"./chunk-BEKROCWN.js";import"./chunk-5SUFJTQQ.js";import"./chunk-BYU42MLK.js";import"./chunk-JWQXU3SR.js";import"./chunk-5LZ2DPLH.js";import"./chunk-XQJOZDV7.js";import"./chunk-CV2UAEZA.js";import"./chunk-FUBDS3AV.js";import"./chunk-HW6AWS7W.js";import"./chunk-KLC3OD2M.js";import"./chunk-Q5IZXKUJ.js";import"./chunk-G5PYYZMM.js";import"./chunk-BG67XABA.js";import"./chunk-OBOU4ZZM.js";import"./chunk-D7XCQWP2.js";import"./chunk-AE5OMKRY.js";import"./chunk-OBV7RNHV.js";import"./chunk-7CQMWEMY.js";import"./chunk-GOZYWU4B.js";import"./chunk-OUC3WICA.js";import"./chunk-JZK2WGXA.js";import"./chunk-MPHSE7M4.js";import"./chunk-S2ZKZXHX.js";import"./chunk-7UK4WJWS.js";import"./chunk-4GP3PH7Z.js";import"./chunk-4QQKOW5M.js";import"./chunk-OV3EBH6J.js";import"./chunk-EBMCWXGZ.js";import"./chunk-XZTE4YTN.js";import"./chunk-LSASUDF2.js";import"./chunk-2V5EKGDK.js";import"./chunk-MOKVM4PT.js";import"./chunk-YIW3H46P.js";import"./chunk-EOMRLUNZ.js";import"./chunk-4ZRCV3JY.js";import"./chunk-TL6MLBXR.js";import"./chunk-NMY3PYNO.js";import"./chunk-YGLM5XPP.js";import"./chunk-WGNF7FPC.js";import"./chunk-4NPYOXJO.js";import"./chunk-MWGB5RCF.js";import"./chunk-SCD5TUBG.js";import"./chunk-NTRFETZB.js";import"./chunk-TL3SF2GA.js";import"./chunk-LMJPU2JM.js";import"./chunk-VFB6Q74I.js";import"./chunk-4JNHUZ7M.js";import"./chunk-SW54YEPK.js";import"./chunk-ZCRL73DT.js";import"./chunk-A6LT3FIJ.js";import"./chunk-S6RXVOY6.js";import"./chunk-YZFNBUKG.js";import"./chunk-AGEDDL7Z.js";import"./chunk-2NJJHZ52.js";import"./chunk-BN4FIQ77.js";import"./chunk-X64RXJQQ.js";import"./chunk-HETUGUHE.js";import"./chunk-ET2Z7ZGF.js";import"./chunk-XFPYXD2P.js";import"./chunk-3YWXKSOI.js";import"./chunk-5CWTKFI4.js";import"./chunk-C4MVD5OI.js";import"./chunk-Z2W7S4O4.js";import"./chunk-476F6QIM.js";import"./chunk-4R67LXKL.js";import"./chunk-FQRF6B65.js";import"./chunk-ZWPSBU7K.js";import"./chunk-UQFTXKEB.js";import"./chunk-HDGTWJ24.js";import"./chunk-W5NWIGKO.js";import"./chunk-KVA6DHHF.js";import"./chunk-PWOQASXT.js";import"./chunk-K7JCVESI.js";import"./chunk-Y6HHV4LC.js";import"./chunk-RP57XAJ2.js";import"./chunk-Z6AR5XE5.js";import"./chunk-7DOOXUDG.js";import"./chunk-77V43YOE.js";import"./chunk-7U7CWMP7.js";import"./chunk-EFTJIDS3.js";import"./chunk-4DIWAQ5G.js";import"./chunk-Q6UAOTP3.js";import"./chunk-AFO5ER23.js";import"./chunk-GOR7FFVE.js";import"./chunk-4ZBZL23U.js";import"./chunk-BMHYEQTI.js";import"./chunk-ZZZAYAJW.js";import"./chunk-XMANRGPK.js";import"./chunk-3XVPZY7X.js";import"./chunk-KQX4H2D3.js";import"./chunk-URNNJMIC.js";import"./chunk-GU22I6TY.js";import"./chunk-YEYW7PPR.js";import"./chunk-M4ECEHLX.js";import"./chunk-DBRQGEEI.js";import"./chunk-B3ZFUGTC.js";import"./chunk-IRINPFG7.js";import"./chunk-6GTPLW7K.js";import"./chunk-NGVRCUYD.js";import"./chunk-5DTFN37U.js";import"./chunk-2YUBAWQ6.js";import"./chunk-O5EKX7LG.js";import"./chunk-TM6ZCBR7.js";import"./chunk-SVAPAMMG.js";import"./chunk-3KUHQGOS.js";import"./chunk-I6S7NGX3.js";import"./chunk-SBZFGYYS.js";import"./chunk-JAUJI56S.js";import"./chunk-I4H7NUVP.js";import"./chunk-EPODBRBP.js";import"./chunk-OKN3Z5C5.js";import"./chunk-XYB7GC5U.js";import"./chunk-2UOMCYQG.js";import"./chunk-I7L2TX4M.js";import"./chunk-MK3OONRA.js";import"./chunk-COGTQ5KZ.js";import{init_esbuild_shims}from"./chunk-VKDAXTCZ.js";import{__name}from"./chunk-KBWJGX7I.js";init_esbuild_shims();async function readWorkflowTrustAdmission(readSnapshot,getPublished){for(let attempt=0;attempt<3;attempt++){const publication=getPublished().publication;const snapshot=await readSnapshot();if(getPublished().publication===publication){return{publication,snapshot}}}throw new Error("Workflow trust policy changed during workspace admission.")}__name(readWorkflowTrustAdmission,"readWorkflowTrustAdmission");function createWorkflowAncestorTrustHandler(options){return async context=>{const denied=__name(()=>({trusted:context.ancestorDirs.map(()=>false),isCurrent:__name(()=>false,"isCurrent")}),"denied");const isCurrentOwner=__name(()=>!options.generationGuard.closed&&options.isCurrentOwner(context.sessionId),"isCurrentOwner");try{if(!isCurrentOwner())return denied();const published=options.getPublished();const isCurrent=__name(()=>{try{return isCurrentOwner()&&options.getPublished().publication===published.publication}catch{return false}},"isCurrent");const snapshot=published.publication>options.admissionPolicy.publication?published.snapshot:options.admissionPolicy.snapshot;if(!snapshot)return denied();const ancestors=await getTrustedWorkflowAncestors(context.canonicalTargetDir,async directories=>directories.map(()=>true));if(!isCurrent()||ancestors.length!==context.ancestorDirs.length||ancestors.some((directory,i)=>directory!==context.ancestorDirs[i])){return denied()}const trusted=evaluateDaemonWorkflowAncestorTrust(snapshot,{...context,ideScopeCwd:options.ideScopeCwd});return trusted.some(Boolean)?{trusted,isCurrent}:denied()}catch{return denied()}}}__name(createWorkflowAncestorTrustHandler,"createWorkflowAncestorTrustHandler");export{createWorkflowAncestorTrustHandler,readWorkflowTrustAdmission};
3
+ import{evaluateDaemonWorkflowAncestorTrust}from"./chunk-O5JCCBMQ.js";import"./chunk-EZPM4DLR.js";import"./chunk-UWCF7JIF.js";import"./chunk-UB37RBSK.js";import"./chunk-LMUSSYJH.js";import"./chunk-NO7VTKRL.js";import"./chunk-U7HZUZKP.js";import"./chunk-ZO4F6ZWR.js";import"./chunk-PKK2D2W4.js";import"./chunk-N3AQAZ7D.js";import"./chunk-E5T4R2PM.js";import"./chunk-DOLUT3XC.js";import"./chunk-PTHIQ7ZN.js";import"./chunk-4CE4GMDL.js";import"./chunk-EIPLDYEY.js";import"./chunk-IDXJIDME.js";import"./chunk-G2LTZU67.js";import"./chunk-QS2ZMQIS.js";import"./chunk-S7IKHQ6I.js";import"./chunk-PAD5GPDY.js";import"./chunk-MD3ZEOBX.js";import"./chunk-SSYS5YN5.js";import"./chunk-X5QSFJVS.js";import"./chunk-OMDTFGTX.js";import"./chunk-3TTHYXT3.js";import"./chunk-46VUDNCL.js";import"./chunk-MKH3EH7O.js";import"./chunk-VC3JJL7E.js";import"./chunk-VKWVIWLK.js";import"./chunk-HW6SU6MX.js";import"./chunk-ZHHFNZ5J.js";import"./chunk-AKWYMQKU.js";import"./chunk-MZUOREFD.js";import"./chunk-DSKA3P2C.js";import"./chunk-7XZVMIY5.js";import"./chunk-4HSISRRA.js";import"./chunk-ZZJXFLVM.js";import"./chunk-RKDS7A4H.js";import"./chunk-QF22ILPV.js";import"./chunk-IV3HAIUN.js";import"./chunk-XFMPZINJ.js";import"./chunk-DECUAM3U.js";import"./chunk-QX7W2HY7.js";import"./chunk-HN5UYLPU.js";import"./chunk-PGRN3GZY.js";import"./chunk-HTW7PYHK.js";import"./chunk-AMGUAA4G.js";import"./chunk-YFTVFH2A.js";import"./chunk-ZBHL2CXR.js";import"./chunk-NIOS3B3V.js";import{getTrustedWorkflowAncestors}from"./chunk-7XQ5D34E.js";import"./chunk-R2EHHA2C.js";import"./chunk-YK7NDQKM.js";import"./chunk-ZLZF2ZDD.js";import"./chunk-OMSVOFTC.js";import"./chunk-PHIPLV2I.js";import"./chunk-ZOTKZI2P.js";import"./chunk-A6G5TAIF.js";import"./chunk-YVBHCSZD.js";import"./chunk-FIXDX63I.js";import"./chunk-T7CHK6C2.js";import"./chunk-PT7NZBDY.js";import"./chunk-TWP72VRH.js";import"./chunk-UYEWRLGD.js";import"./chunk-QVPT37XZ.js";import"./chunk-YVD4O5ZB.js";import"./chunk-T6W33SET.js";import"./chunk-WK2IBT6D.js";import"./chunk-QZV4PFQK.js";import"./chunk-ILECDNJX.js";import"./chunk-QXQGUM3Y.js";import"./chunk-UQ7IROJH.js";import"./chunk-SZCBUCNH.js";import"./chunk-BEKROCWN.js";import"./chunk-5SUFJTQQ.js";import"./chunk-BYU42MLK.js";import"./chunk-JWQXU3SR.js";import"./chunk-5LZ2DPLH.js";import"./chunk-XQJOZDV7.js";import"./chunk-CV2UAEZA.js";import"./chunk-FUBDS3AV.js";import"./chunk-HW6AWS7W.js";import"./chunk-KLC3OD2M.js";import"./chunk-Q5IZXKUJ.js";import"./chunk-G5PYYZMM.js";import"./chunk-BG67XABA.js";import"./chunk-OBOU4ZZM.js";import"./chunk-D7XCQWP2.js";import"./chunk-AE5OMKRY.js";import"./chunk-OBV7RNHV.js";import"./chunk-7CQMWEMY.js";import"./chunk-GOZYWU4B.js";import"./chunk-OUC3WICA.js";import"./chunk-JZK2WGXA.js";import"./chunk-MPHSE7M4.js";import"./chunk-S2ZKZXHX.js";import"./chunk-7UK4WJWS.js";import"./chunk-4GP3PH7Z.js";import"./chunk-4QQKOW5M.js";import"./chunk-OV3EBH6J.js";import"./chunk-EBMCWXGZ.js";import"./chunk-XZTE4YTN.js";import"./chunk-LSASUDF2.js";import"./chunk-2V5EKGDK.js";import"./chunk-MOKVM4PT.js";import"./chunk-YIW3H46P.js";import"./chunk-EOMRLUNZ.js";import"./chunk-4ZRCV3JY.js";import"./chunk-TL6MLBXR.js";import"./chunk-NMY3PYNO.js";import"./chunk-YGLM5XPP.js";import"./chunk-WGNF7FPC.js";import"./chunk-4NPYOXJO.js";import"./chunk-MWGB5RCF.js";import"./chunk-SCD5TUBG.js";import"./chunk-NTRFETZB.js";import"./chunk-TL3SF2GA.js";import"./chunk-LMJPU2JM.js";import"./chunk-VFB6Q74I.js";import"./chunk-4JNHUZ7M.js";import"./chunk-SW54YEPK.js";import"./chunk-ZCRL73DT.js";import"./chunk-A6LT3FIJ.js";import"./chunk-S6RXVOY6.js";import"./chunk-YZFNBUKG.js";import"./chunk-AGEDDL7Z.js";import"./chunk-2NJJHZ52.js";import"./chunk-BN4FIQ77.js";import"./chunk-X64RXJQQ.js";import"./chunk-HETUGUHE.js";import"./chunk-ET2Z7ZGF.js";import"./chunk-XFPYXD2P.js";import"./chunk-3YWXKSOI.js";import"./chunk-5CWTKFI4.js";import"./chunk-C4MVD5OI.js";import"./chunk-Z2W7S4O4.js";import"./chunk-476F6QIM.js";import"./chunk-4R67LXKL.js";import"./chunk-FQRF6B65.js";import"./chunk-ZWPSBU7K.js";import"./chunk-UQFTXKEB.js";import"./chunk-HDGTWJ24.js";import"./chunk-W5NWIGKO.js";import"./chunk-KVA6DHHF.js";import"./chunk-PWOQASXT.js";import"./chunk-K7JCVESI.js";import"./chunk-Y6HHV4LC.js";import"./chunk-RP57XAJ2.js";import"./chunk-Z6AR5XE5.js";import"./chunk-7DOOXUDG.js";import"./chunk-77V43YOE.js";import"./chunk-7U7CWMP7.js";import"./chunk-EFTJIDS3.js";import"./chunk-4DIWAQ5G.js";import"./chunk-Q6UAOTP3.js";import"./chunk-HQZTAA2U.js";import"./chunk-GOR7FFVE.js";import"./chunk-4ZBZL23U.js";import"./chunk-BMHYEQTI.js";import"./chunk-ZZZAYAJW.js";import"./chunk-XMANRGPK.js";import"./chunk-3XVPZY7X.js";import"./chunk-KQX4H2D3.js";import"./chunk-URNNJMIC.js";import"./chunk-GU22I6TY.js";import"./chunk-YEYW7PPR.js";import"./chunk-M4ECEHLX.js";import"./chunk-DBRQGEEI.js";import"./chunk-B3ZFUGTC.js";import"./chunk-IRINPFG7.js";import"./chunk-6GTPLW7K.js";import"./chunk-NGVRCUYD.js";import"./chunk-5DTFN37U.js";import"./chunk-2YUBAWQ6.js";import"./chunk-O5EKX7LG.js";import"./chunk-TM6ZCBR7.js";import"./chunk-SVAPAMMG.js";import"./chunk-3KUHQGOS.js";import"./chunk-I6S7NGX3.js";import"./chunk-SBZFGYYS.js";import"./chunk-JAUJI56S.js";import"./chunk-I4H7NUVP.js";import"./chunk-EPODBRBP.js";import"./chunk-OKN3Z5C5.js";import"./chunk-XYB7GC5U.js";import"./chunk-2UOMCYQG.js";import"./chunk-I7L2TX4M.js";import"./chunk-MK3OONRA.js";import"./chunk-COGTQ5KZ.js";import{init_esbuild_shims}from"./chunk-VKDAXTCZ.js";import{__name}from"./chunk-KBWJGX7I.js";init_esbuild_shims();async function readWorkflowTrustAdmission(readSnapshot,getPublished){for(let attempt=0;attempt<3;attempt++){const publication=getPublished().publication;const snapshot=await readSnapshot();if(getPublished().publication===publication){return{publication,snapshot}}}throw new Error("Workflow trust policy changed during workspace admission.")}__name(readWorkflowTrustAdmission,"readWorkflowTrustAdmission");function createWorkflowAncestorTrustHandler(options){return async context=>{const denied=__name(()=>({trusted:context.ancestorDirs.map(()=>false),isCurrent:__name(()=>false,"isCurrent")}),"denied");const isCurrentOwner=__name(()=>!options.generationGuard.closed&&options.isCurrentOwner(context.sessionId),"isCurrentOwner");try{if(!isCurrentOwner())return denied();const published=options.getPublished();const isCurrent=__name(()=>{try{return isCurrentOwner()&&options.getPublished().publication===published.publication}catch{return false}},"isCurrent");const snapshot=published.publication>options.admissionPolicy.publication?published.snapshot:options.admissionPolicy.snapshot;if(!snapshot)return denied();const ancestors=await getTrustedWorkflowAncestors(context.canonicalTargetDir,async directories=>directories.map(()=>true));if(!isCurrent()||ancestors.length!==context.ancestorDirs.length||ancestors.some((directory,i)=>directory!==context.ancestorDirs[i])){return denied()}const trusted=evaluateDaemonWorkflowAncestorTrust(snapshot,{...context,ideScopeCwd:options.ideScopeCwd});return trusted.some(Boolean)?{trusted,isCurrent}:denied()}catch{return denied()}}}__name(createWorkflowAncestorTrustHandler,"createWorkflowAncestorTrustHandler");export{createWorkflowAncestorTrustHandler,readWorkflowTrustAdmission};
4
4
  /**
5
5
  * @license
6
6
  * Copyright 2026 Qwen Team
@@ -1,3 +1,3 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{createDaemonSubagentManager,mountWorkspaceAgentsRoutes,mountWorkspaceQualifiedAgentsRoutes,toDetail,toSummary}from"./chunk-BHIDG6VZ.js";import"./chunk-44U2VNWI.js";import"./chunk-SVGTUGV2.js";import"./chunk-TB4AUC2L.js";import"./chunk-JWNKPINR.js";import"./chunk-LGFF5PJA.js";import"./chunk-M5KJJE2X.js";import"./chunk-OGFBP4OQ.js";import"./chunk-ASTRUET5.js";import"./chunk-BCI62WSL.js";import"./chunk-BWQ5AIEA.js";import"./chunk-WDR5XP3Y.js";import"./chunk-IFPLGH5C.js";import"./chunk-WBDNGVHU.js";import"./chunk-BC4C6F32.js";import"./chunk-2QYDBHYZ.js";import"./chunk-LUDNUVSA.js";import{InvalidClientIdError}from"./chunk-VTZZXEWA.js";import"./chunk-CUNEBE5E.js";import"./chunk-L5UULTGF.js";import"./chunk-3KZHPZVZ.js";import"./chunk-CFTFKWPW.js";import"./chunk-NIEO2TBE.js";import"./chunk-WSOEJTOC.js";import"./chunk-2TAJ5STJ.js";import"./chunk-UWCF7JIF.js";import"./chunk-NONBHCXP.js";import"./chunk-LMUSSYJH.js";import"./chunk-NO7VTKRL.js";import"./chunk-U7HZUZKP.js";import"./chunk-MPVQDYPH.js";import"./chunk-PKK2D2W4.js";import"./chunk-N3AQAZ7D.js";import"./chunk-E5T4R2PM.js";import"./chunk-DOLUT3XC.js";import"./chunk-PTHIQ7ZN.js";import"./chunk-MTDBCIDA.js";import"./chunk-EIPLDYEY.js";import"./chunk-IDXJIDME.js";import"./chunk-OU7CEG7Q.js";import"./chunk-QS2ZMQIS.js";import"./chunk-S7IKHQ6I.js";import"./chunk-PAD5GPDY.js";import"./chunk-MD3ZEOBX.js";import"./chunk-SSYS5YN5.js";import"./chunk-X5QSFJVS.js";import"./chunk-OMDTFGTX.js";import"./chunk-32XHDDIA.js";import"./chunk-46VUDNCL.js";import"./chunk-MKH3EH7O.js";import"./chunk-FKZ46GKL.js";import"./chunk-SP6CQ3MO.js";import"./chunk-HW6SU6MX.js";import"./chunk-ZHHFNZ5J.js";import"./chunk-AKWYMQKU.js";import"./chunk-MZUOREFD.js";import"./chunk-CF6SZJNP.js";import"./chunk-7XZVMIY5.js";import"./chunk-CGDFZEER.js";import"./chunk-ZZJXFLVM.js";import"./chunk-RKDS7A4H.js";import"./chunk-KZNYALFU.js";import"./chunk-IV3HAIUN.js";import"./chunk-XFMPZINJ.js";import"./chunk-DECUAM3U.js";import"./chunk-QX7W2HY7.js";import"./chunk-HN5UYLPU.js";import"./chunk-PGRN3GZY.js";import"./chunk-HTW7PYHK.js";import"./chunk-AMGUAA4G.js";import"./chunk-YFTVFH2A.js";import"./chunk-ZBHL2CXR.js";import"./chunk-NIOS3B3V.js";import"./chunk-2JGTWRZJ.js";import"./chunk-R2EHHA2C.js";import"./chunk-YK7NDQKM.js";import"./chunk-ZLZF2ZDD.js";import"./chunk-OMSVOFTC.js";import"./chunk-PHIPLV2I.js";import"./chunk-ZOTKZI2P.js";import"./chunk-A6G5TAIF.js";import"./chunk-YVBHCSZD.js";import"./chunk-FIXDX63I.js";import"./chunk-T7CHK6C2.js";import"./chunk-PT7NZBDY.js";import"./chunk-TWP72VRH.js";import"./chunk-UYEWRLGD.js";import"./chunk-QVPT37XZ.js";import"./chunk-YVD4O5ZB.js";import"./chunk-T6W33SET.js";import"./chunk-WK2IBT6D.js";import"./chunk-QZV4PFQK.js";import"./chunk-ILECDNJX.js";import"./chunk-QXQGUM3Y.js";import"./chunk-UQ7IROJH.js";import"./chunk-SZCBUCNH.js";import"./chunk-BEKROCWN.js";import"./chunk-5SUFJTQQ.js";import"./chunk-BYU42MLK.js";import"./chunk-JWQXU3SR.js";import"./chunk-5LZ2DPLH.js";import"./chunk-XQJOZDV7.js";import"./chunk-CV2UAEZA.js";import"./chunk-FUBDS3AV.js";import"./chunk-HW6AWS7W.js";import"./chunk-KLC3OD2M.js";import"./chunk-Q5IZXKUJ.js";import"./chunk-G5PYYZMM.js";import"./chunk-BG67XABA.js";import"./chunk-OBOU4ZZM.js";import"./chunk-D7XCQWP2.js";import"./chunk-AE5OMKRY.js";import"./chunk-OBV7RNHV.js";import"./chunk-7CQMWEMY.js";import"./chunk-GOZYWU4B.js";import"./chunk-OUC3WICA.js";import"./chunk-JZK2WGXA.js";import"./chunk-MPHSE7M4.js";import"./chunk-S2ZKZXHX.js";import"./chunk-7UK4WJWS.js";import"./chunk-4GP3PH7Z.js";import"./chunk-4QQKOW5M.js";import"./chunk-OV3EBH6J.js";import"./chunk-EBMCWXGZ.js";import"./chunk-XZTE4YTN.js";import"./chunk-LSASUDF2.js";import"./chunk-2V5EKGDK.js";import"./chunk-MOKVM4PT.js";import"./chunk-YIW3H46P.js";import"./chunk-EOMRLUNZ.js";import"./chunk-4ZRCV3JY.js";import"./chunk-TL6MLBXR.js";import"./chunk-NMY3PYNO.js";import"./chunk-YGLM5XPP.js";import"./chunk-WGNF7FPC.js";import"./chunk-4NPYOXJO.js";import"./chunk-MWGB5RCF.js";import"./chunk-SCD5TUBG.js";import"./chunk-NTRFETZB.js";import"./chunk-TL3SF2GA.js";import"./chunk-LMJPU2JM.js";import"./chunk-VFB6Q74I.js";import"./chunk-4JNHUZ7M.js";import"./chunk-SW54YEPK.js";import"./chunk-ZCRL73DT.js";import"./chunk-A6LT3FIJ.js";import"./chunk-S6RXVOY6.js";import"./chunk-YZFNBUKG.js";import"./chunk-AGEDDL7Z.js";import"./chunk-2NJJHZ52.js";import"./chunk-BN4FIQ77.js";import"./chunk-X64RXJQQ.js";import"./chunk-HETUGUHE.js";import"./chunk-ET2Z7ZGF.js";import"./chunk-XFPYXD2P.js";import"./chunk-3YWXKSOI.js";import"./chunk-5CWTKFI4.js";import"./chunk-C4MVD5OI.js";import"./chunk-Z2W7S4O4.js";import"./chunk-476F6QIM.js";import"./chunk-4R67LXKL.js";import"./chunk-FQRF6B65.js";import"./chunk-ZWPSBU7K.js";import"./chunk-UQFTXKEB.js";import"./chunk-HDGTWJ24.js";import"./chunk-W5NWIGKO.js";import"./chunk-KVA6DHHF.js";import"./chunk-PWOQASXT.js";import"./chunk-K7JCVESI.js";import"./chunk-Y6HHV4LC.js";import"./chunk-RP57XAJ2.js";import"./chunk-Z6AR5XE5.js";import"./chunk-7DOOXUDG.js";import"./chunk-77V43YOE.js";import"./chunk-7U7CWMP7.js";import"./chunk-EFTJIDS3.js";import"./chunk-4DIWAQ5G.js";import"./chunk-Q6UAOTP3.js";import"./chunk-AFO5ER23.js";import"./chunk-GOR7FFVE.js";import"./chunk-4ZBZL23U.js";import"./chunk-BMHYEQTI.js";import"./chunk-ZZZAYAJW.js";import"./chunk-XMANRGPK.js";import"./chunk-3XVPZY7X.js";import"./chunk-KQX4H2D3.js";import"./chunk-URNNJMIC.js";import"./chunk-GU22I6TY.js";import"./chunk-YEYW7PPR.js";import"./chunk-M4ECEHLX.js";import"./chunk-DBRQGEEI.js";import"./chunk-B3ZFUGTC.js";import"./chunk-IRINPFG7.js";import"./chunk-6GTPLW7K.js";import"./chunk-NGVRCUYD.js";import"./chunk-5DTFN37U.js";import"./chunk-2YUBAWQ6.js";import"./chunk-O5EKX7LG.js";import"./chunk-TM6ZCBR7.js";import"./chunk-SVAPAMMG.js";import"./chunk-3KUHQGOS.js";import"./chunk-I6S7NGX3.js";import"./chunk-SBZFGYYS.js";import"./chunk-JAUJI56S.js";import"./chunk-I4H7NUVP.js";import"./chunk-EPODBRBP.js";import"./chunk-OKN3Z5C5.js";import"./chunk-XYB7GC5U.js";import"./chunk-2UOMCYQG.js";import"./chunk-I7L2TX4M.js";import"./chunk-MK3OONRA.js";import"./chunk-COGTQ5KZ.js";import"./chunk-VKDAXTCZ.js";import"./chunk-KBWJGX7I.js";export{InvalidClientIdError,createDaemonSubagentManager,mountWorkspaceAgentsRoutes,mountWorkspaceQualifiedAgentsRoutes,toDetail,toSummary};
3
+ import{createDaemonSubagentManager,mountWorkspaceAgentsRoutes,mountWorkspaceQualifiedAgentsRoutes,toDetail,toSummary}from"./chunk-6CKX56LJ.js";import"./chunk-44U2VNWI.js";import"./chunk-SVGTUGV2.js";import"./chunk-PXWHOFAA.js";import"./chunk-F6U6T7QD.js";import"./chunk-LGFF5PJA.js";import"./chunk-M5KJJE2X.js";import"./chunk-OGFBP4OQ.js";import"./chunk-ASTRUET5.js";import"./chunk-236DHGNH.js";import"./chunk-BWQ5AIEA.js";import"./chunk-WDR5XP3Y.js";import"./chunk-IFPLGH5C.js";import"./chunk-WBDNGVHU.js";import"./chunk-BC4C6F32.js";import"./chunk-2QYDBHYZ.js";import"./chunk-LUDNUVSA.js";import{InvalidClientIdError}from"./chunk-VTZZXEWA.js";import"./chunk-CUNEBE5E.js";import"./chunk-L5UULTGF.js";import"./chunk-3KZHPZVZ.js";import"./chunk-CFTFKWPW.js";import"./chunk-NIEO2TBE.js";import"./chunk-WSOEJTOC.js";import"./chunk-EZPM4DLR.js";import"./chunk-UWCF7JIF.js";import"./chunk-UB37RBSK.js";import"./chunk-LMUSSYJH.js";import"./chunk-NO7VTKRL.js";import"./chunk-U7HZUZKP.js";import"./chunk-ZO4F6ZWR.js";import"./chunk-PKK2D2W4.js";import"./chunk-N3AQAZ7D.js";import"./chunk-E5T4R2PM.js";import"./chunk-DOLUT3XC.js";import"./chunk-PTHIQ7ZN.js";import"./chunk-4CE4GMDL.js";import"./chunk-EIPLDYEY.js";import"./chunk-IDXJIDME.js";import"./chunk-G2LTZU67.js";import"./chunk-QS2ZMQIS.js";import"./chunk-S7IKHQ6I.js";import"./chunk-PAD5GPDY.js";import"./chunk-MD3ZEOBX.js";import"./chunk-SSYS5YN5.js";import"./chunk-X5QSFJVS.js";import"./chunk-OMDTFGTX.js";import"./chunk-3TTHYXT3.js";import"./chunk-46VUDNCL.js";import"./chunk-MKH3EH7O.js";import"./chunk-VC3JJL7E.js";import"./chunk-VKWVIWLK.js";import"./chunk-HW6SU6MX.js";import"./chunk-ZHHFNZ5J.js";import"./chunk-AKWYMQKU.js";import"./chunk-MZUOREFD.js";import"./chunk-DSKA3P2C.js";import"./chunk-7XZVMIY5.js";import"./chunk-4HSISRRA.js";import"./chunk-ZZJXFLVM.js";import"./chunk-RKDS7A4H.js";import"./chunk-QF22ILPV.js";import"./chunk-IV3HAIUN.js";import"./chunk-XFMPZINJ.js";import"./chunk-DECUAM3U.js";import"./chunk-QX7W2HY7.js";import"./chunk-HN5UYLPU.js";import"./chunk-PGRN3GZY.js";import"./chunk-HTW7PYHK.js";import"./chunk-AMGUAA4G.js";import"./chunk-YFTVFH2A.js";import"./chunk-ZBHL2CXR.js";import"./chunk-NIOS3B3V.js";import"./chunk-7XQ5D34E.js";import"./chunk-R2EHHA2C.js";import"./chunk-YK7NDQKM.js";import"./chunk-ZLZF2ZDD.js";import"./chunk-OMSVOFTC.js";import"./chunk-PHIPLV2I.js";import"./chunk-ZOTKZI2P.js";import"./chunk-A6G5TAIF.js";import"./chunk-YVBHCSZD.js";import"./chunk-FIXDX63I.js";import"./chunk-T7CHK6C2.js";import"./chunk-PT7NZBDY.js";import"./chunk-TWP72VRH.js";import"./chunk-UYEWRLGD.js";import"./chunk-QVPT37XZ.js";import"./chunk-YVD4O5ZB.js";import"./chunk-T6W33SET.js";import"./chunk-WK2IBT6D.js";import"./chunk-QZV4PFQK.js";import"./chunk-ILECDNJX.js";import"./chunk-QXQGUM3Y.js";import"./chunk-UQ7IROJH.js";import"./chunk-SZCBUCNH.js";import"./chunk-BEKROCWN.js";import"./chunk-5SUFJTQQ.js";import"./chunk-BYU42MLK.js";import"./chunk-JWQXU3SR.js";import"./chunk-5LZ2DPLH.js";import"./chunk-XQJOZDV7.js";import"./chunk-CV2UAEZA.js";import"./chunk-FUBDS3AV.js";import"./chunk-HW6AWS7W.js";import"./chunk-KLC3OD2M.js";import"./chunk-Q5IZXKUJ.js";import"./chunk-G5PYYZMM.js";import"./chunk-BG67XABA.js";import"./chunk-OBOU4ZZM.js";import"./chunk-D7XCQWP2.js";import"./chunk-AE5OMKRY.js";import"./chunk-OBV7RNHV.js";import"./chunk-7CQMWEMY.js";import"./chunk-GOZYWU4B.js";import"./chunk-OUC3WICA.js";import"./chunk-JZK2WGXA.js";import"./chunk-MPHSE7M4.js";import"./chunk-S2ZKZXHX.js";import"./chunk-7UK4WJWS.js";import"./chunk-4GP3PH7Z.js";import"./chunk-4QQKOW5M.js";import"./chunk-OV3EBH6J.js";import"./chunk-EBMCWXGZ.js";import"./chunk-XZTE4YTN.js";import"./chunk-LSASUDF2.js";import"./chunk-2V5EKGDK.js";import"./chunk-MOKVM4PT.js";import"./chunk-YIW3H46P.js";import"./chunk-EOMRLUNZ.js";import"./chunk-4ZRCV3JY.js";import"./chunk-TL6MLBXR.js";import"./chunk-NMY3PYNO.js";import"./chunk-YGLM5XPP.js";import"./chunk-WGNF7FPC.js";import"./chunk-4NPYOXJO.js";import"./chunk-MWGB5RCF.js";import"./chunk-SCD5TUBG.js";import"./chunk-NTRFETZB.js";import"./chunk-TL3SF2GA.js";import"./chunk-LMJPU2JM.js";import"./chunk-VFB6Q74I.js";import"./chunk-4JNHUZ7M.js";import"./chunk-SW54YEPK.js";import"./chunk-ZCRL73DT.js";import"./chunk-A6LT3FIJ.js";import"./chunk-S6RXVOY6.js";import"./chunk-YZFNBUKG.js";import"./chunk-AGEDDL7Z.js";import"./chunk-2NJJHZ52.js";import"./chunk-BN4FIQ77.js";import"./chunk-X64RXJQQ.js";import"./chunk-HETUGUHE.js";import"./chunk-ET2Z7ZGF.js";import"./chunk-XFPYXD2P.js";import"./chunk-3YWXKSOI.js";import"./chunk-5CWTKFI4.js";import"./chunk-C4MVD5OI.js";import"./chunk-Z2W7S4O4.js";import"./chunk-476F6QIM.js";import"./chunk-4R67LXKL.js";import"./chunk-FQRF6B65.js";import"./chunk-ZWPSBU7K.js";import"./chunk-UQFTXKEB.js";import"./chunk-HDGTWJ24.js";import"./chunk-W5NWIGKO.js";import"./chunk-KVA6DHHF.js";import"./chunk-PWOQASXT.js";import"./chunk-K7JCVESI.js";import"./chunk-Y6HHV4LC.js";import"./chunk-RP57XAJ2.js";import"./chunk-Z6AR5XE5.js";import"./chunk-7DOOXUDG.js";import"./chunk-77V43YOE.js";import"./chunk-7U7CWMP7.js";import"./chunk-EFTJIDS3.js";import"./chunk-4DIWAQ5G.js";import"./chunk-Q6UAOTP3.js";import"./chunk-HQZTAA2U.js";import"./chunk-GOR7FFVE.js";import"./chunk-4ZBZL23U.js";import"./chunk-BMHYEQTI.js";import"./chunk-ZZZAYAJW.js";import"./chunk-XMANRGPK.js";import"./chunk-3XVPZY7X.js";import"./chunk-KQX4H2D3.js";import"./chunk-URNNJMIC.js";import"./chunk-GU22I6TY.js";import"./chunk-YEYW7PPR.js";import"./chunk-M4ECEHLX.js";import"./chunk-DBRQGEEI.js";import"./chunk-B3ZFUGTC.js";import"./chunk-IRINPFG7.js";import"./chunk-6GTPLW7K.js";import"./chunk-NGVRCUYD.js";import"./chunk-5DTFN37U.js";import"./chunk-2YUBAWQ6.js";import"./chunk-O5EKX7LG.js";import"./chunk-TM6ZCBR7.js";import"./chunk-SVAPAMMG.js";import"./chunk-3KUHQGOS.js";import"./chunk-I6S7NGX3.js";import"./chunk-SBZFGYYS.js";import"./chunk-JAUJI56S.js";import"./chunk-I4H7NUVP.js";import"./chunk-EPODBRBP.js";import"./chunk-OKN3Z5C5.js";import"./chunk-XYB7GC5U.js";import"./chunk-2UOMCYQG.js";import"./chunk-I7L2TX4M.js";import"./chunk-MK3OONRA.js";import"./chunk-COGTQ5KZ.js";import"./chunk-VKDAXTCZ.js";import"./chunk-KBWJGX7I.js";export{InvalidClientIdError,createDaemonSubagentManager,mountWorkspaceAgentsRoutes,mountWorkspaceQualifiedAgentsRoutes,toDetail,toSummary};
@@ -1,3 +1,3 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{createWorkspaceProvidersStatusProvider}from"./chunk-DA6LOBSB.js";import"./chunk-4XF4ZGJG.js";import"./chunk-DWPCE3QI.js";import"./chunk-L42NTHIT.js";import"./chunk-EYPLBTMI.js";import"./chunk-LUDNUVSA.js";import"./chunk-LTE4N6L3.js";import"./chunk-GT4TCQ3R.js";import"./chunk-2TAJ5STJ.js";import"./chunk-UWCF7JIF.js";import"./chunk-NONBHCXP.js";import"./chunk-LMUSSYJH.js";import"./chunk-NO7VTKRL.js";import"./chunk-U7HZUZKP.js";import"./chunk-MPVQDYPH.js";import"./chunk-PKK2D2W4.js";import"./chunk-N3AQAZ7D.js";import"./chunk-E5T4R2PM.js";import"./chunk-DOLUT3XC.js";import"./chunk-PTHIQ7ZN.js";import"./chunk-MTDBCIDA.js";import"./chunk-EIPLDYEY.js";import"./chunk-IDXJIDME.js";import"./chunk-OU7CEG7Q.js";import"./chunk-QS2ZMQIS.js";import"./chunk-S7IKHQ6I.js";import"./chunk-PAD5GPDY.js";import"./chunk-MD3ZEOBX.js";import"./chunk-SSYS5YN5.js";import"./chunk-X5QSFJVS.js";import"./chunk-OMDTFGTX.js";import"./chunk-32XHDDIA.js";import"./chunk-46VUDNCL.js";import"./chunk-MKH3EH7O.js";import"./chunk-FKZ46GKL.js";import"./chunk-SP6CQ3MO.js";import"./chunk-HW6SU6MX.js";import"./chunk-ZHHFNZ5J.js";import"./chunk-AKWYMQKU.js";import"./chunk-MZUOREFD.js";import"./chunk-CF6SZJNP.js";import"./chunk-7XZVMIY5.js";import"./chunk-CGDFZEER.js";import"./chunk-ZZJXFLVM.js";import"./chunk-RKDS7A4H.js";import"./chunk-KZNYALFU.js";import"./chunk-IV3HAIUN.js";import"./chunk-XFMPZINJ.js";import"./chunk-DECUAM3U.js";import"./chunk-QX7W2HY7.js";import"./chunk-HN5UYLPU.js";import"./chunk-PGRN3GZY.js";import"./chunk-HTW7PYHK.js";import"./chunk-AMGUAA4G.js";import"./chunk-YFTVFH2A.js";import"./chunk-ZBHL2CXR.js";import"./chunk-NIOS3B3V.js";import"./chunk-2JGTWRZJ.js";import"./chunk-R2EHHA2C.js";import"./chunk-YK7NDQKM.js";import"./chunk-ZLZF2ZDD.js";import"./chunk-OMSVOFTC.js";import"./chunk-PHIPLV2I.js";import"./chunk-ZOTKZI2P.js";import"./chunk-A6G5TAIF.js";import"./chunk-YVBHCSZD.js";import"./chunk-FIXDX63I.js";import"./chunk-T7CHK6C2.js";import"./chunk-PT7NZBDY.js";import"./chunk-TWP72VRH.js";import"./chunk-UYEWRLGD.js";import"./chunk-QVPT37XZ.js";import"./chunk-YVD4O5ZB.js";import"./chunk-T6W33SET.js";import"./chunk-WK2IBT6D.js";import"./chunk-QZV4PFQK.js";import"./chunk-ILECDNJX.js";import"./chunk-QXQGUM3Y.js";import"./chunk-UQ7IROJH.js";import"./chunk-SZCBUCNH.js";import"./chunk-BEKROCWN.js";import"./chunk-5SUFJTQQ.js";import"./chunk-BYU42MLK.js";import"./chunk-JWQXU3SR.js";import"./chunk-5LZ2DPLH.js";import"./chunk-XQJOZDV7.js";import"./chunk-CV2UAEZA.js";import"./chunk-FUBDS3AV.js";import"./chunk-HW6AWS7W.js";import"./chunk-KLC3OD2M.js";import"./chunk-Q5IZXKUJ.js";import"./chunk-G5PYYZMM.js";import"./chunk-BG67XABA.js";import"./chunk-OBOU4ZZM.js";import"./chunk-D7XCQWP2.js";import"./chunk-AE5OMKRY.js";import"./chunk-OBV7RNHV.js";import"./chunk-7CQMWEMY.js";import"./chunk-GOZYWU4B.js";import"./chunk-OUC3WICA.js";import"./chunk-JZK2WGXA.js";import"./chunk-MPHSE7M4.js";import"./chunk-S2ZKZXHX.js";import"./chunk-7UK4WJWS.js";import"./chunk-4GP3PH7Z.js";import"./chunk-4QQKOW5M.js";import"./chunk-OV3EBH6J.js";import"./chunk-EBMCWXGZ.js";import"./chunk-XZTE4YTN.js";import"./chunk-LSASUDF2.js";import"./chunk-2V5EKGDK.js";import"./chunk-MOKVM4PT.js";import"./chunk-YIW3H46P.js";import"./chunk-EOMRLUNZ.js";import"./chunk-4ZRCV3JY.js";import"./chunk-TL6MLBXR.js";import"./chunk-NMY3PYNO.js";import"./chunk-YGLM5XPP.js";import"./chunk-WGNF7FPC.js";import"./chunk-4NPYOXJO.js";import"./chunk-MWGB5RCF.js";import"./chunk-SCD5TUBG.js";import"./chunk-NTRFETZB.js";import"./chunk-TL3SF2GA.js";import"./chunk-LMJPU2JM.js";import"./chunk-VFB6Q74I.js";import"./chunk-4JNHUZ7M.js";import"./chunk-SW54YEPK.js";import"./chunk-ZCRL73DT.js";import"./chunk-A6LT3FIJ.js";import"./chunk-S6RXVOY6.js";import"./chunk-YZFNBUKG.js";import"./chunk-AGEDDL7Z.js";import"./chunk-2NJJHZ52.js";import"./chunk-BN4FIQ77.js";import"./chunk-X64RXJQQ.js";import"./chunk-HETUGUHE.js";import"./chunk-ET2Z7ZGF.js";import"./chunk-XFPYXD2P.js";import"./chunk-3YWXKSOI.js";import"./chunk-5CWTKFI4.js";import"./chunk-C4MVD5OI.js";import"./chunk-Z2W7S4O4.js";import"./chunk-476F6QIM.js";import"./chunk-4R67LXKL.js";import"./chunk-FQRF6B65.js";import"./chunk-ZWPSBU7K.js";import"./chunk-UQFTXKEB.js";import"./chunk-HDGTWJ24.js";import"./chunk-W5NWIGKO.js";import"./chunk-KVA6DHHF.js";import"./chunk-PWOQASXT.js";import"./chunk-K7JCVESI.js";import"./chunk-Y6HHV4LC.js";import"./chunk-RP57XAJ2.js";import"./chunk-Z6AR5XE5.js";import"./chunk-7DOOXUDG.js";import"./chunk-77V43YOE.js";import"./chunk-7U7CWMP7.js";import"./chunk-EFTJIDS3.js";import"./chunk-4DIWAQ5G.js";import"./chunk-Q6UAOTP3.js";import"./chunk-AFO5ER23.js";import"./chunk-GOR7FFVE.js";import"./chunk-4ZBZL23U.js";import"./chunk-BMHYEQTI.js";import"./chunk-ZZZAYAJW.js";import"./chunk-XMANRGPK.js";import"./chunk-3XVPZY7X.js";import"./chunk-KQX4H2D3.js";import"./chunk-URNNJMIC.js";import"./chunk-GU22I6TY.js";import"./chunk-YEYW7PPR.js";import"./chunk-M4ECEHLX.js";import"./chunk-DBRQGEEI.js";import"./chunk-B3ZFUGTC.js";import"./chunk-IRINPFG7.js";import"./chunk-6GTPLW7K.js";import"./chunk-NGVRCUYD.js";import"./chunk-5DTFN37U.js";import"./chunk-2YUBAWQ6.js";import"./chunk-O5EKX7LG.js";import"./chunk-TM6ZCBR7.js";import"./chunk-SVAPAMMG.js";import"./chunk-3KUHQGOS.js";import"./chunk-I6S7NGX3.js";import"./chunk-SBZFGYYS.js";import"./chunk-JAUJI56S.js";import"./chunk-I4H7NUVP.js";import"./chunk-EPODBRBP.js";import"./chunk-OKN3Z5C5.js";import"./chunk-XYB7GC5U.js";import"./chunk-2UOMCYQG.js";import"./chunk-I7L2TX4M.js";import"./chunk-MK3OONRA.js";import"./chunk-COGTQ5KZ.js";import"./chunk-VKDAXTCZ.js";import"./chunk-KBWJGX7I.js";export{createWorkspaceProvidersStatusProvider};
3
+ import{createWorkspaceProvidersStatusProvider}from"./chunk-AYX75VXG.js";import"./chunk-4XF4ZGJG.js";import"./chunk-DWPCE3QI.js";import"./chunk-L42NTHIT.js";import"./chunk-Z32URWBG.js";import"./chunk-LUDNUVSA.js";import"./chunk-DVC65H4X.js";import"./chunk-GT4TCQ3R.js";import"./chunk-EZPM4DLR.js";import"./chunk-UWCF7JIF.js";import"./chunk-UB37RBSK.js";import"./chunk-LMUSSYJH.js";import"./chunk-NO7VTKRL.js";import"./chunk-U7HZUZKP.js";import"./chunk-ZO4F6ZWR.js";import"./chunk-PKK2D2W4.js";import"./chunk-N3AQAZ7D.js";import"./chunk-E5T4R2PM.js";import"./chunk-DOLUT3XC.js";import"./chunk-PTHIQ7ZN.js";import"./chunk-4CE4GMDL.js";import"./chunk-EIPLDYEY.js";import"./chunk-IDXJIDME.js";import"./chunk-G2LTZU67.js";import"./chunk-QS2ZMQIS.js";import"./chunk-S7IKHQ6I.js";import"./chunk-PAD5GPDY.js";import"./chunk-MD3ZEOBX.js";import"./chunk-SSYS5YN5.js";import"./chunk-X5QSFJVS.js";import"./chunk-OMDTFGTX.js";import"./chunk-3TTHYXT3.js";import"./chunk-46VUDNCL.js";import"./chunk-MKH3EH7O.js";import"./chunk-VC3JJL7E.js";import"./chunk-VKWVIWLK.js";import"./chunk-HW6SU6MX.js";import"./chunk-ZHHFNZ5J.js";import"./chunk-AKWYMQKU.js";import"./chunk-MZUOREFD.js";import"./chunk-DSKA3P2C.js";import"./chunk-7XZVMIY5.js";import"./chunk-4HSISRRA.js";import"./chunk-ZZJXFLVM.js";import"./chunk-RKDS7A4H.js";import"./chunk-QF22ILPV.js";import"./chunk-IV3HAIUN.js";import"./chunk-XFMPZINJ.js";import"./chunk-DECUAM3U.js";import"./chunk-QX7W2HY7.js";import"./chunk-HN5UYLPU.js";import"./chunk-PGRN3GZY.js";import"./chunk-HTW7PYHK.js";import"./chunk-AMGUAA4G.js";import"./chunk-YFTVFH2A.js";import"./chunk-ZBHL2CXR.js";import"./chunk-NIOS3B3V.js";import"./chunk-7XQ5D34E.js";import"./chunk-R2EHHA2C.js";import"./chunk-YK7NDQKM.js";import"./chunk-ZLZF2ZDD.js";import"./chunk-OMSVOFTC.js";import"./chunk-PHIPLV2I.js";import"./chunk-ZOTKZI2P.js";import"./chunk-A6G5TAIF.js";import"./chunk-YVBHCSZD.js";import"./chunk-FIXDX63I.js";import"./chunk-T7CHK6C2.js";import"./chunk-PT7NZBDY.js";import"./chunk-TWP72VRH.js";import"./chunk-UYEWRLGD.js";import"./chunk-QVPT37XZ.js";import"./chunk-YVD4O5ZB.js";import"./chunk-T6W33SET.js";import"./chunk-WK2IBT6D.js";import"./chunk-QZV4PFQK.js";import"./chunk-ILECDNJX.js";import"./chunk-QXQGUM3Y.js";import"./chunk-UQ7IROJH.js";import"./chunk-SZCBUCNH.js";import"./chunk-BEKROCWN.js";import"./chunk-5SUFJTQQ.js";import"./chunk-BYU42MLK.js";import"./chunk-JWQXU3SR.js";import"./chunk-5LZ2DPLH.js";import"./chunk-XQJOZDV7.js";import"./chunk-CV2UAEZA.js";import"./chunk-FUBDS3AV.js";import"./chunk-HW6AWS7W.js";import"./chunk-KLC3OD2M.js";import"./chunk-Q5IZXKUJ.js";import"./chunk-G5PYYZMM.js";import"./chunk-BG67XABA.js";import"./chunk-OBOU4ZZM.js";import"./chunk-D7XCQWP2.js";import"./chunk-AE5OMKRY.js";import"./chunk-OBV7RNHV.js";import"./chunk-7CQMWEMY.js";import"./chunk-GOZYWU4B.js";import"./chunk-OUC3WICA.js";import"./chunk-JZK2WGXA.js";import"./chunk-MPHSE7M4.js";import"./chunk-S2ZKZXHX.js";import"./chunk-7UK4WJWS.js";import"./chunk-4GP3PH7Z.js";import"./chunk-4QQKOW5M.js";import"./chunk-OV3EBH6J.js";import"./chunk-EBMCWXGZ.js";import"./chunk-XZTE4YTN.js";import"./chunk-LSASUDF2.js";import"./chunk-2V5EKGDK.js";import"./chunk-MOKVM4PT.js";import"./chunk-YIW3H46P.js";import"./chunk-EOMRLUNZ.js";import"./chunk-4ZRCV3JY.js";import"./chunk-TL6MLBXR.js";import"./chunk-NMY3PYNO.js";import"./chunk-YGLM5XPP.js";import"./chunk-WGNF7FPC.js";import"./chunk-4NPYOXJO.js";import"./chunk-MWGB5RCF.js";import"./chunk-SCD5TUBG.js";import"./chunk-NTRFETZB.js";import"./chunk-TL3SF2GA.js";import"./chunk-LMJPU2JM.js";import"./chunk-VFB6Q74I.js";import"./chunk-4JNHUZ7M.js";import"./chunk-SW54YEPK.js";import"./chunk-ZCRL73DT.js";import"./chunk-A6LT3FIJ.js";import"./chunk-S6RXVOY6.js";import"./chunk-YZFNBUKG.js";import"./chunk-AGEDDL7Z.js";import"./chunk-2NJJHZ52.js";import"./chunk-BN4FIQ77.js";import"./chunk-X64RXJQQ.js";import"./chunk-HETUGUHE.js";import"./chunk-ET2Z7ZGF.js";import"./chunk-XFPYXD2P.js";import"./chunk-3YWXKSOI.js";import"./chunk-5CWTKFI4.js";import"./chunk-C4MVD5OI.js";import"./chunk-Z2W7S4O4.js";import"./chunk-476F6QIM.js";import"./chunk-4R67LXKL.js";import"./chunk-FQRF6B65.js";import"./chunk-ZWPSBU7K.js";import"./chunk-UQFTXKEB.js";import"./chunk-HDGTWJ24.js";import"./chunk-W5NWIGKO.js";import"./chunk-KVA6DHHF.js";import"./chunk-PWOQASXT.js";import"./chunk-K7JCVESI.js";import"./chunk-Y6HHV4LC.js";import"./chunk-RP57XAJ2.js";import"./chunk-Z6AR5XE5.js";import"./chunk-7DOOXUDG.js";import"./chunk-77V43YOE.js";import"./chunk-7U7CWMP7.js";import"./chunk-EFTJIDS3.js";import"./chunk-4DIWAQ5G.js";import"./chunk-Q6UAOTP3.js";import"./chunk-HQZTAA2U.js";import"./chunk-GOR7FFVE.js";import"./chunk-4ZBZL23U.js";import"./chunk-BMHYEQTI.js";import"./chunk-ZZZAYAJW.js";import"./chunk-XMANRGPK.js";import"./chunk-3XVPZY7X.js";import"./chunk-KQX4H2D3.js";import"./chunk-URNNJMIC.js";import"./chunk-GU22I6TY.js";import"./chunk-YEYW7PPR.js";import"./chunk-M4ECEHLX.js";import"./chunk-DBRQGEEI.js";import"./chunk-B3ZFUGTC.js";import"./chunk-IRINPFG7.js";import"./chunk-6GTPLW7K.js";import"./chunk-NGVRCUYD.js";import"./chunk-5DTFN37U.js";import"./chunk-2YUBAWQ6.js";import"./chunk-O5EKX7LG.js";import"./chunk-TM6ZCBR7.js";import"./chunk-SVAPAMMG.js";import"./chunk-3KUHQGOS.js";import"./chunk-I6S7NGX3.js";import"./chunk-SBZFGYYS.js";import"./chunk-JAUJI56S.js";import"./chunk-I4H7NUVP.js";import"./chunk-EPODBRBP.js";import"./chunk-OKN3Z5C5.js";import"./chunk-XYB7GC5U.js";import"./chunk-2UOMCYQG.js";import"./chunk-I7L2TX4M.js";import"./chunk-MK3OONRA.js";import"./chunk-COGTQ5KZ.js";import"./chunk-VKDAXTCZ.js";import"./chunk-KBWJGX7I.js";export{createWorkspaceProvidersStatusProvider};
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{checkHostedTodoWriteInput,collectNestedResourceRefs,describeTransaction,isHostedWorkspaceProfile,isHostedWorkspaceShellProfile,parseStoredTransaction,readHostedApprovalDefinition,readHostedSkills,requireStoredTransactionMatches}from"./chunk-4NDJKNN6.js";import{parseHostedFileHistoryRecord,parseManagedToolFileHistoryState,parseToolPublicationBinding,toolPublicationManifestIdentity}from"./chunk-GHIFIXNX.js";import{encodeManagedContextBinding}from"./chunk-YJ6APXNB.js";import{validateTodos}from"./chunk-ZYDOCKNF.js";import{HARNESS_TURN_COMPLETE_BOUNDARY,HOSTED_RECOVERY_RESOURCE_KINDS,MANAGED_MESSAGE_PART_KIND,hostedRecoveryReferences,parseHostedRecoveryResource,readHarnessCheckpoint,readManagedMessageBody}from"./chunk-2JGTWRZJ.js";import"./chunk-R2EHHA2C.js";import"./chunk-YK7NDQKM.js";import"./chunk-ZLZF2ZDD.js";import{MANAGED_SESSION_LIMITS,MANAGED_TOOL_RESULT_KINDS,assertManagedSessionDurableRef,isToolResultEnvelopeOf,isToolResultPageAt,managedSessionEventsDigest,managedSessionKeysEqual,parseManagedSessionEvent,parseManagedSessionHeader,parseManagedSessionRecordJson,parseToolResultEnvelope,parseToolResultManifestBytes,parseToolResultPageBytes,parseToolResultSealRequest}from"./chunk-OMSVOFTC.js";import"./chunk-PHIPLV2I.js";import"./chunk-ZOTKZI2P.js";import"./chunk-A6G5TAIF.js";import"./chunk-YVBHCSZD.js";import"./chunk-FIXDX63I.js";import"./chunk-T7CHK6C2.js";import"./chunk-PT7NZBDY.js";import"./chunk-TWP72VRH.js";import"./chunk-UYEWRLGD.js";import"./chunk-QVPT37XZ.js";import"./chunk-YVD4O5ZB.js";import"./chunk-T6W33SET.js";import"./chunk-WK2IBT6D.js";import"./chunk-QZV4PFQK.js";import"./chunk-ILECDNJX.js";import"./chunk-QXQGUM3Y.js";import"./chunk-UQ7IROJH.js";import{validateTranscriptRecord}from"./chunk-SZCBUCNH.js";import"./chunk-BEKROCWN.js";import"./chunk-5SUFJTQQ.js";import"./chunk-BYU42MLK.js";import"./chunk-JWQXU3SR.js";import"./chunk-5LZ2DPLH.js";import"./chunk-XQJOZDV7.js";import"./chunk-CV2UAEZA.js";import"./chunk-FUBDS3AV.js";import"./chunk-HW6AWS7W.js";import"./chunk-KLC3OD2M.js";import"./chunk-Q5IZXKUJ.js";import"./chunk-G5PYYZMM.js";import"./chunk-BG67XABA.js";import"./chunk-OBOU4ZZM.js";import"./chunk-D7XCQWP2.js";import"./chunk-AE5OMKRY.js";import"./chunk-OBV7RNHV.js";import"./chunk-7CQMWEMY.js";import"./chunk-GOZYWU4B.js";import"./chunk-OUC3WICA.js";import"./chunk-JZK2WGXA.js";import"./chunk-MPHSE7M4.js";import"./chunk-S2ZKZXHX.js";import"./chunk-7UK4WJWS.js";import"./chunk-4GP3PH7Z.js";import"./chunk-4QQKOW5M.js";import"./chunk-OV3EBH6J.js";import"./chunk-EBMCWXGZ.js";import"./chunk-XZTE4YTN.js";import"./chunk-LSASUDF2.js";import"./chunk-2V5EKGDK.js";import"./chunk-MOKVM4PT.js";import"./chunk-YIW3H46P.js";import"./chunk-EOMRLUNZ.js";import"./chunk-4ZRCV3JY.js";import"./chunk-TL6MLBXR.js";import"./chunk-NMY3PYNO.js";import"./chunk-YGLM5XPP.js";import"./chunk-WGNF7FPC.js";import"./chunk-4NPYOXJO.js";import"./chunk-MWGB5RCF.js";import"./chunk-SCD5TUBG.js";import"./chunk-NTRFETZB.js";import"./chunk-TL3SF2GA.js";import"./chunk-LMJPU2JM.js";import"./chunk-4JNHUZ7M.js";import"./chunk-SW54YEPK.js";import"./chunk-ZCRL73DT.js";import"./chunk-A6LT3FIJ.js";import"./chunk-S6RXVOY6.js";import"./chunk-YZFNBUKG.js";import"./chunk-AGEDDL7Z.js";import"./chunk-2NJJHZ52.js";import"./chunk-BN4FIQ77.js";import"./chunk-X64RXJQQ.js";import"./chunk-HETUGUHE.js";import"./chunk-ET2Z7ZGF.js";import"./chunk-3YWXKSOI.js";import"./chunk-5CWTKFI4.js";import"./chunk-C4MVD5OI.js";import"./chunk-Z2W7S4O4.js";import"./chunk-476F6QIM.js";import"./chunk-4R67LXKL.js";import"./chunk-FQRF6B65.js";import"./chunk-ZWPSBU7K.js";import"./chunk-UQFTXKEB.js";import"./chunk-HDGTWJ24.js";import"./chunk-W5NWIGKO.js";import"./chunk-KVA6DHHF.js";import"./chunk-PWOQASXT.js";import"./chunk-K7JCVESI.js";import"./chunk-Y6HHV4LC.js";import"./chunk-RP57XAJ2.js";import"./chunk-Z6AR5XE5.js";import"./chunk-7DOOXUDG.js";import"./chunk-77V43YOE.js";import"./chunk-7U7CWMP7.js";import"./chunk-EFTJIDS3.js";import"./chunk-4DIWAQ5G.js";import"./chunk-Q6UAOTP3.js";import"./chunk-AFO5ER23.js";import"./chunk-GOR7FFVE.js";import"./chunk-4ZBZL23U.js";import"./chunk-BMHYEQTI.js";import"./chunk-ZZZAYAJW.js";import"./chunk-XMANRGPK.js";import"./chunk-3XVPZY7X.js";import"./chunk-KQX4H2D3.js";import"./chunk-URNNJMIC.js";import"./chunk-GU22I6TY.js";import"./chunk-YEYW7PPR.js";import"./chunk-DBRQGEEI.js";import"./chunk-B3ZFUGTC.js";import"./chunk-IRINPFG7.js";import"./chunk-6GTPLW7K.js";import"./chunk-NGVRCUYD.js";import"./chunk-5DTFN37U.js";import"./chunk-2YUBAWQ6.js";import"./chunk-O5EKX7LG.js";import"./chunk-TM6ZCBR7.js";import"./chunk-SVAPAMMG.js";import"./chunk-3KUHQGOS.js";import"./chunk-I6S7NGX3.js";import"./chunk-SBZFGYYS.js";import"./chunk-JAUJI56S.js";import"./chunk-I4H7NUVP.js";import{Storage}from"./chunk-EPODBRBP.js";import"./chunk-OKN3Z5C5.js";import"./chunk-XYB7GC5U.js";import"./chunk-2UOMCYQG.js";import"./chunk-I7L2TX4M.js";import"./chunk-MK3OONRA.js";import"./chunk-COGTQ5KZ.js";import{init_esbuild_shims}from"./chunk-VKDAXTCZ.js";import{__name}from"./chunk-KBWJGX7I.js";init_esbuild_shims();import{createHash as createHash3}from"node:crypto";import{realpath as realpath2}from"node:fs/promises";import{join as join2,isAbsolute as isAbsolute2}from"node:path";init_esbuild_shims();import{createHash}from"node:crypto";import{constants}from"node:fs";import{lstat,mkdir,open,opendir,readlink,realpath,rename,unlink}from"node:fs/promises";import{basename,dirname,isAbsolute,join,relative,resolve}from"node:path";function recoveryDigest(bytes){return createHash("sha256").update(bytes).digest("hex")}__name(recoveryDigest,"recoveryDigest");function recoveryJson(value){if(Array.isArray(value))return`[${value.map(recoveryJson).join(",")}]`;if(value!==null&&typeof value==="object"){const record=value;return`{${Object.keys(record).sort().map(key=>`${JSON.stringify(key)}:${recoveryJson(record[key])}`).join(",")}}`}const result=JSON.stringify(value);if(result===void 0)throw new Error("invalid_metadata");return result}__name(recoveryJson,"recoveryJson");function recoveryAssetKey(type,...identity){return recoveryDigest(JSON.stringify(["qwen-workspace-recovery-asset-v1",type,...identity]))}__name(recoveryAssetKey,"recoveryAssetKey");function inside(root,path2){const name=relative(root,path2);return name===""||!isAbsolute(name)&&name!==".."&&!name.startsWith("../")}__name(inside,"inside");function safeRelative(name){if(!name||name.includes("\0")||isAbsolute(name)||name.split("/").some(part=>!part||part==="."||part==="..")){throw new Error("invalid_bundle_path")}}__name(safeRelative,"safeRelative");async function fileDigest(path2){const handle=await open(path2,constants.O_RDONLY|constants.O_NOFOLLOW);try{const before=await handle.stat();if(!before.isFile()||before.nlink!==1)throw new Error("unsupported_file_type");const hash=createHash("sha256");const chunk=Buffer.alloc(1024*1024);let byteLength=0;for(;;){const{bytesRead}=await handle.read(chunk,0,chunk.length,null);if(!bytesRead)break;byteLength+=bytesRead;hash.update(chunk.subarray(0,bytesRead))}const after=await handle.stat();if(before.size!==byteLength||before.size!==after.size||before.mtimeMs!==after.mtimeMs||before.ctimeMs!==after.ctimeMs){throw new Error("file_changed_during_read")}return{byteLength,digest:hash.digest("hex")}}finally{await handle.close()}}__name(fileDigest,"fileDigest");var UnsupportedEntryError=class extends Error{constructor(code,entryPath){super(code);this.entryPath=entryPath}static{__name(this,"UnsupportedEntryError")}};var UnsupportedSourceEntryError=class extends Error{constructor(entryPath,reason){super("unsupported_source_entry");this.entryPath=entryPath;this.reason=reason}static{__name(this,"UnsupportedSourceEntryError")}};async function entry(root,name,boundary=root){safeRelative(name);const path2=join(root,name);const stat=await lstat(path2);const common={type:"entry",path:name,mode:stat.mode&4095};if(stat.isDirectory())return{...common,entryType:"directory"};if(stat.isFile()){try{return{...common,entryType:"file",...await fileDigest(path2)}}catch(error){if(error instanceof Error&&error.message==="unsupported_file_type")throw new UnsupportedEntryError(error.message,name);throw error}}if(stat.isSymbolicLink()){const target=await readlink(path2);if(isAbsolute(target))throw new UnsupportedEntryError("unsupported_symlink",name);let resolved;try{resolved=await realpath(path2)}catch(error){if(["ENOENT","ENOTDIR","ELOOP"].includes(error.code??"")&&(await lstat(path2)).isSymbolicLink())throw new UnsupportedEntryError("unsupported_symlink",name);throw error}if(!inside(boundary,resolved))throw new UnsupportedEntryError("unsupported_symlink",name);return{...common,entryType:"symlink",target}}throw new UnsupportedEntryError("unsupported_file_type",name)}__name(entry,"entry");async function*tree(root,name,boundary=join(root,name)){const current=await entry(root,name,boundary);yield current;if(current.entryType!=="directory")return;const directory=await opendir(join(root,name));for await(const child of directory){yield*tree(root,`${name}/${child.name}`,boundary)}}__name(tree,"tree");async function exists(path2){try{await lstat(path2);return true}catch(error){if(error.code==="ENOENT")return false;throw error}}__name(exists,"exists");function sourceReadDrift(error){return["ENOENT","ENOTDIR","ELOOP"].includes(error.code??"")||error instanceof Error&&["missing_bundle_asset","file_changed_during_read","unsupported_symlink","unsupported_file_type","invalid_source_root"].includes(error.message)}__name(sourceReadDrift,"sourceReadDrift");async function*sourceTree(root,unpinned){try{yield*tree(dirname(root),basename(root))}catch(error){if(error instanceof UnsupportedEntryError&&await unpinned?.(error.entryPath))throw new UnsupportedSourceEntryError(error.entryPath,error.message);if(sourceReadDrift(error))throw new Error("source_drift");throw error}}__name(sourceTree,"sourceTree");async function sourceExists(path2){try{return await exists(path2)}catch(error){if(sourceReadDrift(error))throw new Error("source_drift");throw error}}__name(sourceExists,"sourceExists");var LocalRecoveryBundle=class{constructor(root,operationId,mode,rpc){this.root=root;this.operationId=operationId;this.mode=mode;this.rpc=rpc}static{__name(this,"LocalRecoveryBundle")}async initialize(sourceRoot,historyRoot){if(await realpath(this.root)!==this.root)throw new Error("invalid_bundle_root");if(!(await lstat(this.root)).isDirectory())throw new Error("invalid_bundle_root");for(const source of[sourceRoot,historyRoot]){if(resolve(source)!==source||inside(source,this.root)||inside(this.root,source))throw new Error("overlapping_roots");if(this.mode==="capture"){try{if(source!==sourceRoot&&!await exists(source))continue;if(await realpath(source)!==source||!(await lstat(source)).isDirectory())throw new Error("invalid_source_root")}catch(error){if(source===sourceRoot&&sourceReadDrift(error)&&await this.rpc("assetLookup",{key:recoveryAssetKey("entry","workspace")})!==null)throw new Error("source_drift");if(source===historyRoot&&sourceReadDrift(error)){let afterKey=null;do{const page=await this.rpc("assetPage",{afterKey});if(page.assets.some(({metadata})=>metadata["type"]==="entry"&&typeof metadata["path"]==="string"&&metadata["path"].startsWith("file-history/")))throw new Error("source_drift");afterKey=page.nextKey}while(afterKey!==null)}throw error}}}if(inside(sourceRoot,historyRoot)||inside(historyRoot,sourceRoot))throw new Error("overlapping_roots");if(this.mode==="capture"){for(const path2 of["file-history","authority","authority/objects",".w1-recovery"]){await mkdir(join(this.root,path2),{mode:448}).catch(error=>{if(error.code!=="EEXIST")throw error});if(!(await lstat(join(this.root,path2))).isDirectory())throw new Error("invalid_bundle_path")}for(const path2 of["file-history","authority","authority/objects"])await this.recordEntry(await entry(this.root,path2));for(const name of["sessions.ndjson","assets.ndjson","manifest.json"]){const temporary=join(this.root,".w1-recovery",`${name}.partial-${this.operationId}`);if(await exists(temporary)){const stat=await lstat(temporary);if(!stat.isFile()||stat.nlink!==1)throw new Error("invalid_temporary_file");await unlink(temporary)}}}else{for(const path2 of["workspace","file-history","authority","authority/objects",".w1-recovery"]){if(!(await lstat(join(this.root,path2))).isDirectory())throw new Error("invalid_bundle_path")}}}async asset(type,identity,metadata){const key=recoveryAssetKey(type,...identity);const saved=await this.rpc("asset",{key,metadata});if(recoveryJson(saved)!==recoveryJson(metadata))throw new Error("asset_conflict")}async lookup(type,...identity){const saved=await this.rpc("assetLookup",{key:recoveryAssetKey(type,...identity)});if(saved===null||typeof saved!=="object"||Array.isArray(saved))throw new Error("missing_bundle_asset");return saved}async recordEntry(value){await this.asset("entry",[value.path],value)}async compareTree(sourceRoot,candidate){const candidateRoot=join(this.root,candidate);if(!(await lstat(candidateRoot)).isDirectory())throw new Error("missing_bundle_tree");if(await this.rpc("assetLookup",{key:recoveryAssetKey("tree",candidate)})!==null)await this.recheckTree(sourceRoot,candidate);else if(await this.rpc("assetLookup",{key:recoveryAssetKey("entry",candidate)})!==null){let afterKey=null;do{const page=await this.rpc("assetPage",{afterKey});for(const{metadata:saved}of page.assets){const path2=saved["path"];if(saved["type"]!=="entry"||typeof path2!=="string"||!(path2===candidate||path2.startsWith(`${candidate}/`)))continue;let original;try{original=await entry(dirname(sourceRoot),`${basename(sourceRoot)}${path2.slice(candidate.length)}`,sourceRoot)}catch(error){if(sourceReadDrift(error))throw new Error("source_drift");throw error}if(recoveryJson(saved)!==recoveryJson({...original,path:path2}))throw new Error("source_drift")}afterKey=page.nextKey}while(afterKey!==null)}let count=0;const unpinned=__name(async entryPath=>await this.rpc("assetLookup",{key:recoveryAssetKey("entry",`${candidate}${entryPath.slice(basename(sourceRoot).length)}`)})===null,"unpinned");for await(const original of sourceTree(sourceRoot,unpinned)){const suffix=original.path.slice(basename(sourceRoot).length);const name=`${candidate}${suffix}`;const saved=await this.rpc("assetLookup",{key:recoveryAssetKey("entry",name)});if(saved!==null&&recoveryJson(saved)!==recoveryJson({...original,path:name}))throw new Error("source_drift");let copy;try{copy=await entry(this.root,name,candidateRoot)}catch(error){if(["ENOENT","ENOTDIR"].includes(error.code??""))throw new Error("snapshot_source_mismatch");throw error}if(recoveryJson({...original,path:name})!==recoveryJson(copy))throw new Error("snapshot_source_mismatch");await this.recordEntry(copy);count++}for await(const copy of tree(this.root,candidate)){const suffix=copy.path.slice(candidate.length);let original;try{original=await entry(dirname(sourceRoot),`${basename(sourceRoot)}${suffix}`,sourceRoot)}catch(error){if(sourceReadDrift(error)){const pinned=await this.rpc("assetLookup",{key:recoveryAssetKey("entry",copy.path)});throw new Error(pinned===null?"snapshot_source_mismatch":"source_drift")}throw error}if(recoveryJson({...original,path:copy.path})!==recoveryJson(copy))throw new Error("snapshot_source_mismatch")}await this.asset("tree",[candidate],{type:"tree",path:candidate,count})}async history(sessionId,historyRoot){safeRelative(sessionId);if(sessionId.includes("/"))throw new Error("invalid_session_id");const source=join(historyRoot,sessionId);const candidate=`file-history/${sessionId}`;if(await sourceExists(source))await this.compareTree(source,candidate);else if(await this.rpc("assetLookup",{key:recoveryAssetKey("entry",candidate)})!==null)throw new Error("source_drift");else if(await exists(join(this.root,candidate)))throw new Error("snapshot_source_mismatch")}async recheckTree(sourceRoot,candidate){let count=0;for await(const original of sourceTree(sourceRoot)){const name=`${candidate}${original.path.slice(basename(sourceRoot).length)}`;let saved;try{saved=await this.lookup("entry",name)}catch(error){if(sourceReadDrift(error))throw new Error("source_drift");throw error}if(recoveryJson(saved)!==recoveryJson({...original,path:name}))throw new Error("source_drift");count++}const expected=await this.lookup("tree",candidate);if(count!==expected["count"])throw new Error("source_drift")}async recheckHistory(sessionId,historyRoot){safeRelative(sessionId);if(sessionId.includes("/"))throw new Error("invalid_session_id");const source=join(historyRoot,sessionId);const candidate=`file-history/${sessionId}`;const saved=await this.rpc("assetLookup",{key:recoveryAssetKey("entry",candidate)});if(await sourceExists(source))await this.recheckTree(source,candidate);else if(saved!==null)throw new Error("source_drift")}async verifyMigrationTree(root,candidate,marker){const mismatch=marker?"migration_tree_mismatch":"source_drift";try{if(await realpath(root)!==root||!(await lstat(root)).isDirectory())throw new Error("invalid_source_root");let count=0;for await(const actual of tree(dirname(root),basename(root),root)){const name=`${candidate}${actual.path.slice(basename(root).length)}`;const saved=await this.lookup("entry",name);let expected2=saved;if(marker&&name==="workspace/.qwen-managed-storage.json"){const original=recoveryJson({...actual,path:name})===recoveryJson(saved);if(!original)expected2={...saved,...marker}}if(recoveryJson(expected2)!==recoveryJson({...actual,path:name}))throw new Error(mismatch);count++}const expected=await this.lookup("tree",candidate);if(expected["count"]!==count)throw new Error(mismatch)}catch(error){if(sourceReadDrift(error))throw new Error(mismatch);throw error}}async backup(ownerSessionId,backupFileName){safeRelative(ownerSessionId);safeRelative(backupFileName);if(ownerSessionId.includes("/")||backupFileName.includes("/"))throw new Error("invalid_backup_path");const name=`file-history/${ownerSessionId}/${backupFileName}`;const actual=await entry(this.root,name);if(actual.entryType!=="file")throw new Error("missing_history_backup");const expected=await this.lookup("entry",name);if(recoveryJson(expected)!==recoveryJson(actual))throw new Error("history_backup_mismatch");await this.recordEntry(actual)}async blob(bytes){const name=`authority/objects/${recoveryDigest(bytes)}`;if(this.mode==="capture")await this.publish(name,(async function*(){yield bytes})());const actual=await entry(this.root,name);if(actual.entryType!=="file"||actual.byteLength!==bytes.length||actual.digest!==recoveryDigest(bytes))throw new Error("bundle_digest_mismatch");await this.recordEntry(actual);return name}async readBlob(name,digest2,byteLength){if(typeof name!=="string"||name!==`authority/objects/${digest2}`||byteLength<0||byteLength>16*1024*1024)throw new Error("invalid_bundle_blob");const handle=await open(join(this.root,name),constants.O_RDONLY|constants.O_NOFOLLOW);try{const stat=await handle.stat();if(!stat.isFile()||stat.nlink!==1||stat.size!==byteLength)throw new Error("bundle_digest_mismatch");const bytes=await handle.readFile();if(bytes.length!==byteLength||recoveryDigest(bytes)!==digest2)throw new Error("bundle_digest_mismatch");await this.recordEntry(await entry(this.root,name));return bytes}finally{await handle.close()}}async publish(name,chunks){safeRelative(name);const target=join(this.root,name);const temporary=`${target}.partial-${this.operationId}`;if(await exists(temporary)){if(!(await lstat(temporary)).isFile()||(await lstat(temporary)).nlink!==1)throw new Error("invalid_temporary_file");await unlink(temporary)}const handle=await open(temporary,constants.O_CREAT|constants.O_EXCL|constants.O_WRONLY|constants.O_NOFOLLOW,384);const hash=createHash("sha256");let byteLength=0;let count=0;try{for await(const bytes of chunks){hash.update(bytes);byteLength+=bytes.length;count++;await handle.writeFile(bytes)}await handle.sync();await handle.close();const digest2=hash.digest("hex");if(await exists(target)){const saved=await fileDigest(target);if(saved.digest!==digest2||saved.byteLength!==byteLength)throw new Error("bundle_object_conflict");await unlink(temporary)}else await rename(temporary,target);const directory=await open(dirname(target),constants.O_RDONLY|constants.O_DIRECTORY);try{await directory.sync()}finally{await directory.close()}return{path:name,count,byteLength,digest:digest2}}finally{await handle.close().catch(()=>void 0);if(await exists(temporary))await unlink(temporary)}}async census(){let count=0;const directory=await opendir(this.root);for await(const child of directory){if(child.name===".w1-recovery"){if(!child.isDirectory())throw new Error("invalid_metadata_directory");for await(const metadata of await opendir(join(this.root,child.name))){if(!["manifest.json","sessions.ndjson","assets.ndjson"].includes(metadata.name)||!metadata.isFile())throw new Error("undeclared_bundle_entry")}continue}if(!["workspace","file-history","authority"].includes(child.name))throw new Error("undeclared_bundle_entry");for await(const actual of tree(this.root,child.name)){const saved=await this.lookup("entry",actual.path);if(recoveryJson(saved)!==recoveryJson(actual))throw new Error("bundle_entry_mismatch");await this.recordEntry(actual);count++}}let expectedCount=0;let afterKey=null;do{const page=await this.rpc("assetPage",{afterKey});for(const asset of page.assets)if(asset.metadata["type"]==="entry")expectedCount++;afterKey=page.nextKey}while(afterKey!==null);if(count!==expectedCount)throw new Error("missing_bundle_entry");return count}async checkIndex(expected){safeRelative(expected.path);const actual=await fileDigest(join(this.root,expected.path));if(actual.digest!==expected.digest||actual.byteLength!==expected.byteLength)throw new Error("bundle_index_mismatch")}async readManifest(digest2){const path2=join(this.root,".w1-recovery/manifest.json");const handle=await open(path2,constants.O_RDONLY|constants.O_NOFOLLOW);try{const stat=await handle.stat();if(!stat.isFile()||stat.nlink!==1||stat.size>1024*1024)throw new Error("invalid_manifest");const bytes=await handle.readFile();if(recoveryDigest(bytes)!==digest2)throw new Error("bundle_manifest_mismatch");return JSON.parse(bytes.toString("utf8"))}finally{await handle.close()}}};init_esbuild_shims();import path from"node:path";import{createHash as createHash2}from"node:crypto";import{isDeepStrictEqual}from"node:util";var DOMAINS=["session_metadata","file_history","goal_state","todo_state","session_source"];var RESOURCE_KINDS=new Set(["managed-definition","managed-agent-instructions","managed-agent-skills","managed-root","managed-input","managed-admission","managed-activation-install","managed-activation-boundary","managed-tool-input","managed-tool-definition","managed-tool-args","managed-tool-outcome","managed-action-options",...HOSTED_RECOVERY_RESOURCE_KINDS,"managed-action-decision","managed-message","managed-message-part","managed-message-chunks","managed-turn-result","managed-compaction-summary","managed-checkpoint","managed-checkpoint-history","managed-api-history",...DOMAINS.map(domain=>`managed-${domain}`),...Object.values(MANAGED_TOOL_RESULT_KINDS),"managed-tool-terminal","managed-hosted-model-route","managed-hosted-model-usage"]);function requireValue(value,message){if(!value)throw new Error(`Workspace recovery: ${message}.`)}__name(requireValue,"requireValue");function object(value){requireValue(value!==null&&typeof value==="object"&&!Array.isArray(value),"expected a resource object");return value}__name(object,"object");function digest(bytes){return createHash2("sha256").update(bytes).digest("hex")}__name(digest,"digest");function decodeBase64(value){const bytes=Buffer.from(value,"base64");requireValue(bytes.toString("base64")===value,"invalid base64 bytes");return bytes}__name(decodeBase64,"decodeBase64");function json(bytes){return parseManagedSessionRecordJson(new TextDecoder("utf-8",{fatal:true}).decode(bytes),bytes.length)}__name(json,"json");function durableRef(value){return assertManagedSessionDurableRef(value,"recovery resource")}__name(durableRef,"durableRef");async function enqueueRefs(value,io){if(Array.isArray(value)){for(const item of value)await enqueueRefs(item,io)}else if(value!==null&&typeof value==="object"){const record=value;if(["resourceId","kind","schemaVersion","byteLength","digest"].every(key=>Object.hasOwn(record,key))){await io.enqueue(durableRef(record))}else{for(const item of Object.values(record))await enqueueRefs(item,io)}}}__name(enqueueRefs,"enqueueRefs");function readerRecord(value,sessionId){const parsed=validateTranscriptRecord(value);const record=object(value);requireValue(parsed.record&&parsed.diagnostics.length===0&&parsed.record.sessionId===sessionId&&typeof record["cwd"]==="string"&&typeof record["version"]==="string"&&typeof record["timestamp"]==="string","invalid reader-facing record");return record}__name(readerRecord,"readerRecord");function settledCheckpoint(checkpoint){return["before_model","turn_settled"].includes(checkpoint.continuation.phase)&&checkpoint.continuation.pendingEventIds.length===0&&checkpoint.attempt?.outputState!=="started"&&(checkpoint.tools?.items??[]).every(item=>item.state==="settled"&&item.consumed)&&(checkpoint.runtime?.bindings??[]).every(item=>item.state!=="dispatch")&&checkpoint.approval===null&&checkpoint.followUp.pendingInputIds.length===0&&checkpoint.followUp.cancelRequestIds.length===0&&checkpoint.followUp.goalPermitIds.length===0&&checkpoint.followUp.cronIds.length===0&&checkpoint.followUp.notificationIds.length===0&&checkpoint.followUp.childRunIds.length===0}__name(settledCheckpoint,"settledCheckpoint");async function verifyRecoverySession(source,io,purpose="recovery"){encodeManagedContextBinding(source.binding);const head=source.head;const retirement=source.retirement;requireValue(retirement==null||retirement.tenantId===source.binding.tenantId&&retirement.sessionId===source.sessionId&&typeof retirement.operationId==="string"&&retirement.operationId.length>0&&retirement.operationId.length<=128&&retirement.generation===1&&Number.isSafeInteger(retirement.retiredAt)&&retirement.retiredAt>0&&retirement.recoveryProtected===false&&source.publicSession.status==="DELETED"&&Number.isSafeInteger(source.publicSession.deletedAt)&&Number(source.publicSession.deletedAt)>0&&(!head||head.state==="DELETED"&&head.latestCheckpointResourceId===null&&head.writerId===null&&head.writerLeaseUntil===null),"invalid pinned retirement");const retiredHead=source.retiredHead;requireValue(retiredHead==null||head===null&&retirement!=null&&retiredHead.tenantId===source.binding.tenantId&&retiredHead.sessionId===source.sessionId&&typeof retiredHead.workspaceId==="string"&&retiredHead.workspaceId.length>0&&retiredHead.state==="DELETED"&&[1,2].includes(retiredHead.storageVersion)&&retiredHead.writerId===null&&retiredHead.writerLeaseUntil===null&&retiredHead.latestCheckpointResourceId===null&&retiredHead.recoveryStatus==="READY"&&Number.isSafeInteger(retiredHead.writerGeneration)&&retiredHead.writerGeneration>=0&&Number.isSafeInteger(retiredHead.journalRevision)&&retiredHead.journalRevision>=0&&retiredHead.compactedThroughRevision===retiredHead.journalRevision&&Number.isSafeInteger(retiredHead.committedSequence)&&retiredHead.committedSequence>=0&&Number.isSafeInteger(retiredHead.activationEpoch)&&retiredHead.activationEpoch>=0&&(retiredHead.lastCommitDigest===null&&retiredHead.committedSequence===0||typeof retiredHead.lastCommitDigest==="string"&&/^[0-9a-f]{64}$/u.test(retiredHead.lastCommitDigest)),"invalid collected retirement head");if(purpose==="migration"){requireValue(Boolean(head||retirement),"uninitialized migration member")}let revision=0;let sequence=0;let commitDigest=null;let activationEpoch=0;let latestCheckpoint=null;const cleanupDebt=new Map;let activeTurn=null;let hasContinuation=false;let lastWorkSequence=0;let lastCheckpointSequence=0;let hasHistory=false;const domains=new Map;let latestHistoryPending=false;const key=head&&{tenantId:head.tenantId,workspaceId:head.workspaceId,sessionId:source.sessionId};requireValue(!head||head.sessionId===source.sessionId&&head.tenantId===source.binding.tenantId&&[1,2].includes(head.storageVersion)&&head.journalRevision>=1&&head.compactedThroughRevision===0&&head.recoveryStatus==="READY","unsupported private journal head");async function read(ref){const validated=durableRef(ref);requireValue(validated.schemaVersion===1&&RESOURCE_KINDS.has(validated.kind),"unsupported resource protocol");await io.enqueue(validated);const bytes=await io.read(validated);requireValue(bytes.length===validated.byteLength&&digest(bytes)===validated.digest,"resource bytes conflict");return bytes}__name(read,"read");async function backups(value){const state=parseManagedToolFileHistoryState({ownerSessionId:source.sessionId,revision:0,snapshots:value});hasHistory=true;for(const snapshot of state.snapshots){for(const[filePath,backup]of Object.entries(snapshot.trackedFileBackups)){if(purpose==="migration"){requireValue(!path.isAbsolute(filePath)&&path.normalize(filePath)===filePath&&filePath!==".","external migration history path")}requireValue(!backup.failed,"file history backup failed");if(backup.backupFileName!==null){await io.verifyBackup({ownerSessionId:state.ownerSessionId,filePath,...backup,backupFileName:backup.backupFileName})}}}}__name(backups,"backups");async function domainBody(ref){const body=object(json(await read(ref)));requireValue(Number.isSafeInteger(body["revision"])&&body["revision"]>0&&typeof body["operationId"]==="string","invalid domain record");if(body["previousRecordRef"]!==null){const previousRef=durableRef(body["previousRecordRef"]);requireValue(previousRef.kind===ref.kind,"domain predecessor kind conflicts");const previous=object(json(await read(previousRef)));requireValue(previous["revision"]===body["revision"]-1,"domain predecessor revision conflicts")}else{requireValue(body["revision"]===1,"missing domain predecessor")}if(ref.kind==="managed-session_metadata"){requireValue(typeof body["title"]==="string"&&body["title"].length>0,"invalid session title")}else if(ref.kind==="managed-todo_state"){requireValue(!checkHostedTodoWriteInput({todos:body["todos"]}).error&&!validateTodos(body["todos"]),"invalid Hosted Todo state")}else{const record=readerRecord(body["record"],source.sessionId);const subtype=ref.kind==="managed-file_history"?"file_history_snapshot":ref.kind.slice("managed-".length);requireValue(record["type"]==="system"&&record["subtype"]===subtype,"domain reader record conflicts");if(ref.kind==="managed-file_history"){const snapshots=object(record["systemPayload"])["snapshots"];await backups(snapshots);if("state"in body){const{state}=parseHostedFileHistoryRecord(body,source.sessionId);requireValue(isDeepStrictEqual(state.snapshots,snapshots),"Hosted history snapshots conflict")}}}await enqueueRefs(body,io);return body}__name(domainBody,"domainBody");async function manifest(ref,receipt){requireValue(ref.kind===MANAGED_TOOL_RESULT_KINDS.manifest,"invalid manifest kind");const parsed=parseToolResultManifestBytes(await read(ref));requireValue(parsed.tenantId===source.binding.tenantId&&parsed.sessionId===source.sessionId&&parsed.captureStatus==="complete"&&parsed.captureScope==="process_pipes"&&parsed.capturePolicy==="complete_required"&&!parsed.upstreamTruncated&&parsed.contents.length===2,"incomplete or foreign Shell capture");if(receipt){const pagedStreams=parsed.contents.filter(stream=>"pages"in stream.body).map(stream=>stream.streamId);requireValue(receipt.seals.length===pagedStreams.length&&receipt.seals.every(seal=>pagedStreams.includes(seal.streamId)),"original Shell capture seal ownership conflicts")}for(const[streamIndex,stream]of parsed.contents.entries()){requireValue(["stdout","stderr"].includes(stream.streamId)&&stream.role===stream.streamId&&stream.state==="sealed","invalid Shell stream");const hash=createHash2("sha256");let count=0;if("ref"in stream.body){hash.update(await read(stream.body.ref))}else{for(const[pageIndex,pageRef]of stream.body.pages.entries()){const page=parseToolResultPageBytes(await read(pageRef.ref));requireValue(isToolResultPageAt(parsed,streamIndex,pageIndex,page),"Shell page position conflicts");for(const[index,segment]of page.segments.entries()){const ordinal=page.firstOrdinal+index;let bytes;if(receipt){const slotKey=`segment:${stream.streamId}:${ordinal}`;const stored=await io.publicationObject({sessionId:source.sessionId,publicationId:receipt.publicationId,slotKey});bytes=decodeBase64(stored.bytesBase64);requireValue(stored.slotKey===slotKey&&stored.kind===null&&stored.resourceId===null&&stored.byteLength===segment.byteLength&&stored.digest===segment.digest,"original Shell segment metadata conflicts")}else{bytes=await read({resourceId:digest(Buffer.from(JSON.stringify([parsed.captureId,stream.streamId,ordinal]))),kind:MANAGED_TOOL_RESULT_KINDS.content,schemaVersion:1,...segment})}requireValue(bytes.length===segment.byteLength&&digest(bytes)===segment.digest,"Shell segment bytes conflict");hash.update(bytes);count++}}const seal={segmentCount:count,byteLength:stream.byteLength,digest:stream.digest};if(receipt){requireValue(isDeepStrictEqual(receipt.seals.find(item=>item.streamId===stream.streamId),{streamId:stream.streamId,...seal}),"original Shell seal conflicts")}else{const bytes=Buffer.from(JSON.stringify(seal));const stored=await read({resourceId:digest(Buffer.from(JSON.stringify([parsed.captureId,stream.streamId,"seal"]))),kind:MANAGED_TOOL_RESULT_KINDS.content,schemaVersion:1,byteLength:bytes.length,digest:digest(bytes)});parseToolResultSealRequest({captureId:parsed.captureId,streamId:stream.streamId,...object(json(stored))})}}requireValue(hash.digest("hex")===stream.digest,"full Shell stream digest conflicts")}await io.completeReference(ref);return parsed}__name(manifest,"manifest");async function toolReceipt(event){const outcomeRef=durableRef(event.payload["toolOutcomeRef"]);requireValue(outcomeRef.kind==="managed-tool-outcome","invalid Shell outcome kind");const outcome=object(json(await read(outcomeRef)));const envelope=parseToolResultEnvelope(outcome["envelope"]);const manifestRef=envelope.capture?.manifest??null;const lostCancellation=outcome["version"]===1&&outcome["decision"]==="blocked"&&envelope.executionStatus==="cancelled"&&envelope.capture?.captureStatus==="unavailable"&&envelope.capture.captureReason==="producer_lost"&&envelope.capture.deliveryStatus==="pending"&&manifestRef===null;requireValue(event.payload["historyRevision"]===event.sequence&&isDeepStrictEqual(event.payload["resultRef"],manifestRef)&&isDeepStrictEqual(event.payload["resources"],manifestRef?[manifestRef]:[])&&(envelope.executionStatus==="not_started"&&envelope.capture===null||outcome["decision"]==="committed"&&envelope.capture?.captureStatus==="complete"||outcome["decision"]==="blocked"&&envelope.capture?.captureStatus==="detached"||lostCancellation),"unsettled or conflicting Shell receipt");if(outcome["version"]===1){const identity=object(outcome["identity"]);requireValue(identity["tenantId"]===source.binding.tenantId&&identity["sessionId"]===source.sessionId&&identity["executionCallId"]===event.payload["executionCallId"],"local Shell identity conflicts");if(envelope.executionStatus==="not_started"||lostCancellation)return;requireValue(manifestRef,"local Shell receipt has no capture");const parsed=await manifest(manifestRef);requireValue(isToolResultEnvelopeOf(envelope,parsed),"local Shell envelope conflicts");requireValue(isDeepStrictEqual(identity,Object.fromEntries(["tenantId","sessionId","turnId","executionCallId","callId","invocationDigest","bindingGeneration","captureId","revision"].map(field=>[field,parsed[field]]))),"local Shell identity conflicts")}else{requireValue(outcome["schemaVersion"]===1&&isDeepStrictEqual(outcome["manifestRef"],manifestRef),"invalid original Shell outcome");const history=object(outcome["history"]);requireValue(typeof history["messageId"]==="string"&&typeof history["timestamp"]==="string"&&typeof history["model"]==="string"&&Array.isArray(history["parts"]),"invalid Shell reader history");if(envelope.executionStatus==="not_started")return;if(envelope.capture?.captureStatus==="detached")return;const receipt=await io.publicationReceipt({sessionId:source.sessionId,executionCallId:event.payload["executionCallId"],sequence:event.sequence,outcomeRef,manifestRef});const binding=parseToolPublicationBinding(receipt.binding);requireValue(receipt.publicationId===binding.publicationId&&key&&managedSessionKeysEqual(binding.sessionKey,key)&&binding.executionCallId===event.payload["executionCallId"]&&binding.intentSequence<event.sequence&&receipt.receiptSequence===event.sequence&&receipt.receiptRevision===revision&&isDeepStrictEqual(receipt.outcomeRef,outcomeRef)&&isDeepStrictEqual(receipt.manifestRef,manifestRef),"original publication receipt conflicts");await enqueueRefs(binding,io);requireValue(receipt.terminalRef.kind==="managed-tool-terminal","invalid original terminal kind");requireValue(isDeepStrictEqual(parseToolResultEnvelope(json(await read(receipt.terminalRef))),envelope),"original terminal outcome conflicts");requireValue(manifestRef,"original Shell capture lacks a manifest");const parsed=await manifest(manifestRef,receipt);requireValue(isToolResultEnvelopeOf(envelope,parsed)&&Object.entries(toolPublicationManifestIdentity(binding)).every(([field,value])=>parsed[field]===value),"original publication manifest identity conflicts")}}__name(toolReceipt,"toolReceipt");for await(const raw of io.transactions()){requireValue(head&&key,"journal exists without private head");const tx=parseStoredTransaction({...raw,recordEncoding:"identity"});requireValue(tx.journalRevision===revision+1&&tx.journalRevision<=head.journalRevision&&tx.byteLength<=MANAGED_SESSION_LIMITS.maxTransactionBytes,"journal revisions or size conflict");const bytes=decodeBase64(tx.recordBytesBase64);requireValue(bytes.length===tx.byteLength&&digest(bytes)===tx.recordDigest,"transaction bytes conflict");const text=new TextDecoder("utf-8",{fatal:true}).decode(bytes);requireValue(text.endsWith("\n"),"incomplete transaction JSONL");const records=text.slice(0,-1).split("\n").map(line=>parseManagedSessionRecordJson(line,MANAGED_SESSION_LIMITS.maxEventBytes));const descriptor=describeTransaction(records,bytes,activationEpoch,key);requireStoredTransactionMatches(tx,descriptor);revision++;if(revision===1){requireValue(descriptor.operation==="session.create","missing genesis");const header=parseManagedSessionHeader(object(records[1])["managedSession"]);requireValue(object(object(records[0])["systemPayload"])["engine"]==="managed"&&header.definitionRef.kind==="managed-definition"&&header.rootSnapshotRef.kind==="managed-root","invalid genesis");const definition=object(json(await read(header.definitionRef)));requireValue(definition["engine"]==="managed"&&definition["sessionId"]===source.sessionId&&definition["mcpServers"]===void 0&&(definition["toolProfile"]===void 0||isHostedWorkspaceProfile(definition["toolProfile"])),"unsupported Hosted profile");if(purpose==="migration"){requireValue(definition["toolProfile"]==="hosted-workspace-files/1"&&definition["hookCatalog"]===void 0&&definition["mcpServers"]===void 0&&definition["captureBytes"]===void 0,"unsupported migration profile")}requireValue(readHostedApprovalDefinition(definition)&&(definition["captureBytes"]===void 0||isHostedWorkspaceShellProfile(definition["toolProfile"])&&Number.isSafeInteger(definition["captureBytes"])&&definition["captureBytes"]>=1&&definition["captureBytes"]<=2**41),"invalid frozen Hosted definition");requireValue(typeof object(json(await read(header.rootSnapshotRef)))["cwd"]==="string","invalid root snapshot");await enqueueRefs(header,io);continue}requireValue(descriptor.operation!=="session.create"&&descriptor.firstSequence===sequence+1&&descriptor.eventCount===records.length-1&&descriptor.eventCount<=MANAGED_SESSION_LIMITS.maxTransactionEvents&&descriptor.previousCommitDigest===commitDigest,"journal sequence or commit chain conflicts");const events=records.slice(0,-1).map(record=>parseManagedSessionEvent(object(record)["managedSession"]));requireValue(descriptor.eventsDigest===managedSessionEventsDigest(events)&&descriptor.lastSequence===sequence+events.length,"commit marker content conflicts");for(const event of events){requireValue(event.sequence===sequence+1,"noncontiguous event sequence");if(event.kind==="hosted.cleanup")cleanupDebt.set(event.payload["cleanupId"],event.payload["state"]);if(event.kind==="input.accepted"){requireValue(activeTurn===null,"overlapping unresolved inputs");activeTurn=event.payload["turnId"]}else if(event.kind==="turn.settled"){requireValue(activeTurn===event.payload["turnId"],"turn settlement has no accepted input");requireValue(event.payload["pendingOwnersRef"]===null,"turn has pending owners");activeTurn=null}else if(["model.attempt","tool.intent","tool.receipt"].includes(event.kind)){hasContinuation=true;lastWorkSequence=event.sequence}if(event.kind==="action.changed"&&event.payload["state"]==="requested"){hasContinuation=true;lastWorkSequence=event.sequence}if(event.kind==="message.committed"&&["assistant","tool_result"].includes(event.payload["role"])){hasContinuation=true;lastWorkSequence=event.sequence}if(event.kind==="domain.committed"){const domain=event.payload["domain"];requireValue(DOMAINS.includes(domain),"unsupported committed domain");const ref=durableRef(event.payload["recordRef"]);requireValue(ref.kind===`managed-${domain}`,"domain reference kind conflicts");const body=await domainBody(ref);const prior=domains.get(domain);requireValue(body["revision"]===(prior?.revision??0)+1&&isDeepStrictEqual(body["previousRecordRef"],prior?.ref??null)&&body["operationId"]===event.payload["operationId"],"domain journal chain conflicts");domains.set(domain,{revision:body["revision"],ref});if(domain==="file_history")latestHistoryPending=body["pendingTurn"]!=null||body["pendingUndo"]!=null}if(event.kind==="checkpoint.committed"){const ref=durableRef(event.payload["stateRef"]);requireValue(ref.kind==="managed-checkpoint"&&event.payload["coveredSequence"]<=tx.firstSequence-1&&event.payload["previousCheckpointId"]===(latestCheckpoint?.id??null),"checkpoint coverage or predecessor conflicts");for(const nested of collectNestedResourceRefs(ref,await read(ref)))await io.enqueue(nested);const state=await readHarnessCheckpoint({read},ref);requireValue(managedSessionKeysEqual(state.identity.sessionKey,key)&&state.identity.checkpointId===event.payload["checkpointId"]&&state.identity.coveredSequence===event.payload["coveredSequence"]&&state.identity.previousCheckpointId===event.payload["previousCheckpointId"],"checkpoint identity conflicts");latestCheckpoint={id:state.identity.checkpointId,ref,boundary:event.payload["boundary"],state};lastCheckpointSequence=event.sequence;await enqueueRefs(state,io);if(state.resume.fileHistoryRef){const history=object(json(await read(state.resume.fileHistoryRef)));requireValue(history["ownerSessionId"]===source.sessionId,"checkpoint file history owner conflicts");parseManagedToolFileHistoryState(history);await backups(history["snapshots"])}}if(event.kind==="tool.receipt")await toolReceipt(event);const recordRef=event.kind==="message.committed"?event.payload["contentRef"]:event.kind==="turn.settled"?event.payload["resultRef"]:event.kind==="context.compacted"?event.payload["summaryRef"]:null;if(recordRef){const record=readerRecord(json(await readManagedMessageBody(read,durableRef(recordRef))),source.sessionId);if(event.kind==="message.committed")requireValue(record["uuid"]===event.payload["messageId"]&&record["type"]===event.payload["role"]&&record["parentUuid"]===event.payload["parentMessageId"],"message journal identity conflicts");await enqueueRefs(record,io)}await enqueueRefs(event.payload,io);sequence=event.sequence}activationEpoch=descriptor.activationEpoch;commitDigest=descriptor.commitDigest}requireValue(!head||revision===head.journalRevision&&sequence===head.committedSequence&&commitDigest===head.lastCommitDigest&&activationEpoch===head.activationEpoch&&(retirement?head.latestCheckpointResourceId===null:(latestCheckpoint?.ref.resourceId??null)===head.latestCheckpointResourceId),"journal does not match pinned private head");requireValue(activeTurn===null&&![...cleanupDebt.values()].some(state=>state!=="confirmed")&&!latestHistoryPending&&(latestCheckpoint?(latestCheckpoint.boundary===HARNESS_TURN_COMPLETE_BOUNDARY||!hasContinuation&&latestCheckpoint.state.identity.turnId===null)&&lastWorkSequence<lastCheckpointSequence&&settledCheckpoint(latestCheckpoint.state):!hasContinuation),"cut has unfinished Harness work");for(;;){const ref=await io.nextReference();if(ref===null)break;const bytes=await read(ref);if(ref.kind===MANAGED_TOOL_RESULT_KINDS.manifest)throw new Error("Workspace recovery: Shell manifest has no verified journal receipt.");if(ref.kind.startsWith("managed-")&&DOMAINS.some(domain=>ref.kind===`managed-${domain}`))await domainBody(ref);else if(ref.kind==="managed-checkpoint"){for(const nested of collectNestedResourceRefs(ref,bytes))await io.enqueue(nested);const state=await readHarnessCheckpoint({read},ref);requireValue(key&&managedSessionKeysEqual(state.identity.sessionKey,key),"checkpoint closure owner conflicts");await enqueueRefs(state,io)}else if(ref.kind==="managed-checkpoint-history"){for(const nested of collectNestedResourceRefs(ref,bytes))await io.enqueue(nested)}else if(HOSTED_RECOVERY_RESOURCE_KINDS.has(ref.kind)){for(const nested of hostedRecoveryReferences(parseHostedRecoveryResource(bytes,key??void 0,ref.kind)))await io.enqueue(nested)}else if(ref.kind==="managed-agent-instructions"){requireValue(bytes.byteLength<=64*1024,"agent instructions exceed 64 KiB");new TextDecoder("utf-8",{fatal:true}).decode(bytes)}else if(ref.kind==="managed-agent-skills"){await readHostedSkills(ref,{read:__name(async()=>bytes,"read")})}else if(ref.kind==="managed-api-history"){const history=json(bytes);requireValue(Array.isArray(history),"invalid API history");await enqueueRefs(history,io)}else if(ref.kind!==MANAGED_TOOL_RESULT_KINDS.content&&ref.kind!==MANAGED_MESSAGE_PART_KIND)await enqueueRefs(json(bytes),io);await io.completeReference(ref)}return{fileHistory:hasHistory?"captured":"not_captured"}}__name(verifyRecoverySession,"verifyRecoverySession");function createRecoveryRpc(input,output){const iterator=input[Symbol.asyncIterator]();let pending=Buffer.alloc(0);let id=0;let busy=false;return async(method,params)=>{if(busy)throw new Error("concurrent_recovery_request");busy=true;try{const requestId=++id;await new Promise((accept,reject)=>{output.write(`${JSON.stringify({id:requestId,method,params})}
3
+ import{checkHostedTodoWriteInput,collectNestedResourceRefs,describeTransaction,isHostedWorkspaceProfile,isHostedWorkspaceShellProfile,parseStoredTransaction,readHostedApprovalDefinition,readHostedSkills,requireStoredTransactionMatches}from"./chunk-72VY2PJA.js";import{parseHostedFileHistoryRecord,parseManagedToolFileHistoryState,parseToolPublicationBinding,toolPublicationManifestIdentity}from"./chunk-IBDOC27R.js";import{encodeManagedContextBinding}from"./chunk-YJ6APXNB.js";import{validateTodos}from"./chunk-ZYDOCKNF.js";import{HARNESS_TURN_COMPLETE_BOUNDARY,HOSTED_RECOVERY_RESOURCE_KINDS,MANAGED_MESSAGE_PART_KIND,hostedRecoveryReferences,parseHostedRecoveryResource,readHarnessCheckpoint,readManagedMessageBody}from"./chunk-7XQ5D34E.js";import"./chunk-R2EHHA2C.js";import"./chunk-YK7NDQKM.js";import"./chunk-ZLZF2ZDD.js";import{MANAGED_SESSION_LIMITS,MANAGED_TOOL_RESULT_KINDS,assertManagedSessionDurableRef,isToolResultEnvelopeOf,isToolResultPageAt,managedSessionEventsDigest,managedSessionKeysEqual,parseManagedSessionEvent,parseManagedSessionHeader,parseManagedSessionRecordJson,parseToolResultEnvelope,parseToolResultManifestBytes,parseToolResultPageBytes,parseToolResultSealRequest}from"./chunk-OMSVOFTC.js";import"./chunk-PHIPLV2I.js";import"./chunk-ZOTKZI2P.js";import"./chunk-A6G5TAIF.js";import"./chunk-YVBHCSZD.js";import"./chunk-FIXDX63I.js";import"./chunk-T7CHK6C2.js";import"./chunk-PT7NZBDY.js";import"./chunk-TWP72VRH.js";import"./chunk-UYEWRLGD.js";import"./chunk-QVPT37XZ.js";import"./chunk-YVD4O5ZB.js";import"./chunk-T6W33SET.js";import"./chunk-WK2IBT6D.js";import"./chunk-QZV4PFQK.js";import"./chunk-ILECDNJX.js";import"./chunk-QXQGUM3Y.js";import"./chunk-UQ7IROJH.js";import{validateTranscriptRecord}from"./chunk-SZCBUCNH.js";import"./chunk-BEKROCWN.js";import"./chunk-5SUFJTQQ.js";import"./chunk-BYU42MLK.js";import"./chunk-JWQXU3SR.js";import"./chunk-5LZ2DPLH.js";import"./chunk-XQJOZDV7.js";import"./chunk-CV2UAEZA.js";import"./chunk-FUBDS3AV.js";import"./chunk-HW6AWS7W.js";import"./chunk-KLC3OD2M.js";import"./chunk-Q5IZXKUJ.js";import"./chunk-G5PYYZMM.js";import"./chunk-BG67XABA.js";import"./chunk-OBOU4ZZM.js";import"./chunk-D7XCQWP2.js";import"./chunk-AE5OMKRY.js";import"./chunk-OBV7RNHV.js";import"./chunk-7CQMWEMY.js";import"./chunk-GOZYWU4B.js";import"./chunk-OUC3WICA.js";import"./chunk-JZK2WGXA.js";import"./chunk-MPHSE7M4.js";import"./chunk-S2ZKZXHX.js";import"./chunk-7UK4WJWS.js";import"./chunk-4GP3PH7Z.js";import"./chunk-4QQKOW5M.js";import"./chunk-OV3EBH6J.js";import"./chunk-EBMCWXGZ.js";import"./chunk-XZTE4YTN.js";import"./chunk-LSASUDF2.js";import"./chunk-2V5EKGDK.js";import"./chunk-MOKVM4PT.js";import"./chunk-YIW3H46P.js";import"./chunk-EOMRLUNZ.js";import"./chunk-4ZRCV3JY.js";import"./chunk-TL6MLBXR.js";import"./chunk-NMY3PYNO.js";import"./chunk-YGLM5XPP.js";import"./chunk-WGNF7FPC.js";import"./chunk-4NPYOXJO.js";import"./chunk-MWGB5RCF.js";import"./chunk-SCD5TUBG.js";import"./chunk-NTRFETZB.js";import"./chunk-TL3SF2GA.js";import"./chunk-LMJPU2JM.js";import"./chunk-4JNHUZ7M.js";import"./chunk-SW54YEPK.js";import"./chunk-ZCRL73DT.js";import"./chunk-A6LT3FIJ.js";import"./chunk-S6RXVOY6.js";import"./chunk-YZFNBUKG.js";import"./chunk-AGEDDL7Z.js";import"./chunk-2NJJHZ52.js";import"./chunk-BN4FIQ77.js";import"./chunk-X64RXJQQ.js";import"./chunk-HETUGUHE.js";import"./chunk-ET2Z7ZGF.js";import"./chunk-3YWXKSOI.js";import"./chunk-5CWTKFI4.js";import"./chunk-C4MVD5OI.js";import"./chunk-Z2W7S4O4.js";import"./chunk-476F6QIM.js";import"./chunk-4R67LXKL.js";import"./chunk-FQRF6B65.js";import"./chunk-ZWPSBU7K.js";import"./chunk-UQFTXKEB.js";import"./chunk-HDGTWJ24.js";import"./chunk-W5NWIGKO.js";import"./chunk-KVA6DHHF.js";import"./chunk-PWOQASXT.js";import"./chunk-K7JCVESI.js";import"./chunk-Y6HHV4LC.js";import"./chunk-RP57XAJ2.js";import"./chunk-Z6AR5XE5.js";import"./chunk-7DOOXUDG.js";import"./chunk-77V43YOE.js";import"./chunk-7U7CWMP7.js";import"./chunk-EFTJIDS3.js";import"./chunk-4DIWAQ5G.js";import"./chunk-Q6UAOTP3.js";import"./chunk-HQZTAA2U.js";import"./chunk-GOR7FFVE.js";import"./chunk-4ZBZL23U.js";import"./chunk-BMHYEQTI.js";import"./chunk-ZZZAYAJW.js";import"./chunk-XMANRGPK.js";import"./chunk-3XVPZY7X.js";import"./chunk-KQX4H2D3.js";import"./chunk-URNNJMIC.js";import"./chunk-GU22I6TY.js";import"./chunk-YEYW7PPR.js";import"./chunk-DBRQGEEI.js";import"./chunk-B3ZFUGTC.js";import"./chunk-IRINPFG7.js";import"./chunk-6GTPLW7K.js";import"./chunk-NGVRCUYD.js";import"./chunk-5DTFN37U.js";import"./chunk-2YUBAWQ6.js";import"./chunk-O5EKX7LG.js";import"./chunk-TM6ZCBR7.js";import"./chunk-SVAPAMMG.js";import"./chunk-3KUHQGOS.js";import"./chunk-I6S7NGX3.js";import"./chunk-SBZFGYYS.js";import"./chunk-JAUJI56S.js";import"./chunk-I4H7NUVP.js";import{Storage}from"./chunk-EPODBRBP.js";import"./chunk-OKN3Z5C5.js";import"./chunk-XYB7GC5U.js";import"./chunk-2UOMCYQG.js";import"./chunk-I7L2TX4M.js";import"./chunk-MK3OONRA.js";import"./chunk-COGTQ5KZ.js";import{init_esbuild_shims}from"./chunk-VKDAXTCZ.js";import{__name}from"./chunk-KBWJGX7I.js";init_esbuild_shims();import{createHash as createHash3}from"node:crypto";import{realpath as realpath2}from"node:fs/promises";import{join as join2,isAbsolute as isAbsolute2}from"node:path";init_esbuild_shims();import{createHash}from"node:crypto";import{constants}from"node:fs";import{lstat,mkdir,open,opendir,readlink,realpath,rename,unlink}from"node:fs/promises";import{basename,dirname,isAbsolute,join,relative,resolve}from"node:path";function recoveryDigest(bytes){return createHash("sha256").update(bytes).digest("hex")}__name(recoveryDigest,"recoveryDigest");function recoveryJson(value){if(Array.isArray(value))return`[${value.map(recoveryJson).join(",")}]`;if(value!==null&&typeof value==="object"){const record=value;return`{${Object.keys(record).sort().map(key=>`${JSON.stringify(key)}:${recoveryJson(record[key])}`).join(",")}}`}const result=JSON.stringify(value);if(result===void 0)throw new Error("invalid_metadata");return result}__name(recoveryJson,"recoveryJson");function recoveryAssetKey(type,...identity){return recoveryDigest(JSON.stringify(["qwen-workspace-recovery-asset-v1",type,...identity]))}__name(recoveryAssetKey,"recoveryAssetKey");function inside(root,path2){const name=relative(root,path2);return name===""||!isAbsolute(name)&&name!==".."&&!name.startsWith("../")}__name(inside,"inside");function safeRelative(name){if(!name||name.includes("\0")||isAbsolute(name)||name.split("/").some(part=>!part||part==="."||part==="..")){throw new Error("invalid_bundle_path")}}__name(safeRelative,"safeRelative");async function fileDigest(path2){const handle=await open(path2,constants.O_RDONLY|constants.O_NOFOLLOW);try{const before=await handle.stat();if(!before.isFile()||before.nlink!==1)throw new Error("unsupported_file_type");const hash=createHash("sha256");const chunk=Buffer.alloc(1024*1024);let byteLength=0;for(;;){const{bytesRead}=await handle.read(chunk,0,chunk.length,null);if(!bytesRead)break;byteLength+=bytesRead;hash.update(chunk.subarray(0,bytesRead))}const after=await handle.stat();if(before.size!==byteLength||before.size!==after.size||before.mtimeMs!==after.mtimeMs||before.ctimeMs!==after.ctimeMs){throw new Error("file_changed_during_read")}return{byteLength,digest:hash.digest("hex")}}finally{await handle.close()}}__name(fileDigest,"fileDigest");var UnsupportedEntryError=class extends Error{constructor(code,entryPath){super(code);this.entryPath=entryPath}static{__name(this,"UnsupportedEntryError")}};var UnsupportedSourceEntryError=class extends Error{constructor(entryPath,reason){super("unsupported_source_entry");this.entryPath=entryPath;this.reason=reason}static{__name(this,"UnsupportedSourceEntryError")}};async function entry(root,name,boundary=root){safeRelative(name);const path2=join(root,name);const stat=await lstat(path2);const common={type:"entry",path:name,mode:stat.mode&4095};if(stat.isDirectory())return{...common,entryType:"directory"};if(stat.isFile()){try{return{...common,entryType:"file",...await fileDigest(path2)}}catch(error){if(error instanceof Error&&error.message==="unsupported_file_type")throw new UnsupportedEntryError(error.message,name);throw error}}if(stat.isSymbolicLink()){const target=await readlink(path2);if(isAbsolute(target))throw new UnsupportedEntryError("unsupported_symlink",name);let resolved;try{resolved=await realpath(path2)}catch(error){if(["ENOENT","ENOTDIR","ELOOP"].includes(error.code??"")&&(await lstat(path2)).isSymbolicLink())throw new UnsupportedEntryError("unsupported_symlink",name);throw error}if(!inside(boundary,resolved))throw new UnsupportedEntryError("unsupported_symlink",name);return{...common,entryType:"symlink",target}}throw new UnsupportedEntryError("unsupported_file_type",name)}__name(entry,"entry");async function*tree(root,name,boundary=join(root,name)){const current=await entry(root,name,boundary);yield current;if(current.entryType!=="directory")return;const directory=await opendir(join(root,name));for await(const child of directory){yield*tree(root,`${name}/${child.name}`,boundary)}}__name(tree,"tree");async function exists(path2){try{await lstat(path2);return true}catch(error){if(error.code==="ENOENT")return false;throw error}}__name(exists,"exists");function sourceReadDrift(error){return["ENOENT","ENOTDIR","ELOOP"].includes(error.code??"")||error instanceof Error&&["missing_bundle_asset","file_changed_during_read","unsupported_symlink","unsupported_file_type","invalid_source_root"].includes(error.message)}__name(sourceReadDrift,"sourceReadDrift");async function*sourceTree(root,unpinned){try{yield*tree(dirname(root),basename(root))}catch(error){if(error instanceof UnsupportedEntryError&&await unpinned?.(error.entryPath))throw new UnsupportedSourceEntryError(error.entryPath,error.message);if(sourceReadDrift(error))throw new Error("source_drift");throw error}}__name(sourceTree,"sourceTree");async function sourceExists(path2){try{return await exists(path2)}catch(error){if(sourceReadDrift(error))throw new Error("source_drift");throw error}}__name(sourceExists,"sourceExists");var LocalRecoveryBundle=class{constructor(root,operationId,mode,rpc){this.root=root;this.operationId=operationId;this.mode=mode;this.rpc=rpc}static{__name(this,"LocalRecoveryBundle")}async initialize(sourceRoot,historyRoot){if(await realpath(this.root)!==this.root)throw new Error("invalid_bundle_root");if(!(await lstat(this.root)).isDirectory())throw new Error("invalid_bundle_root");for(const source of[sourceRoot,historyRoot]){if(resolve(source)!==source||inside(source,this.root)||inside(this.root,source))throw new Error("overlapping_roots");if(this.mode==="capture"){try{if(source!==sourceRoot&&!await exists(source))continue;if(await realpath(source)!==source||!(await lstat(source)).isDirectory())throw new Error("invalid_source_root")}catch(error){if(source===sourceRoot&&sourceReadDrift(error)&&await this.rpc("assetLookup",{key:recoveryAssetKey("entry","workspace")})!==null)throw new Error("source_drift");if(source===historyRoot&&sourceReadDrift(error)){let afterKey=null;do{const page=await this.rpc("assetPage",{afterKey});if(page.assets.some(({metadata})=>metadata["type"]==="entry"&&typeof metadata["path"]==="string"&&metadata["path"].startsWith("file-history/")))throw new Error("source_drift");afterKey=page.nextKey}while(afterKey!==null)}throw error}}}if(inside(sourceRoot,historyRoot)||inside(historyRoot,sourceRoot))throw new Error("overlapping_roots");if(this.mode==="capture"){for(const path2 of["file-history","authority","authority/objects",".w1-recovery"]){await mkdir(join(this.root,path2),{mode:448}).catch(error=>{if(error.code!=="EEXIST")throw error});if(!(await lstat(join(this.root,path2))).isDirectory())throw new Error("invalid_bundle_path")}for(const path2 of["file-history","authority","authority/objects"])await this.recordEntry(await entry(this.root,path2));for(const name of["sessions.ndjson","assets.ndjson","manifest.json"]){const temporary=join(this.root,".w1-recovery",`${name}.partial-${this.operationId}`);if(await exists(temporary)){const stat=await lstat(temporary);if(!stat.isFile()||stat.nlink!==1)throw new Error("invalid_temporary_file");await unlink(temporary)}}}else{for(const path2 of["workspace","file-history","authority","authority/objects",".w1-recovery"]){if(!(await lstat(join(this.root,path2))).isDirectory())throw new Error("invalid_bundle_path")}}}async asset(type,identity,metadata){const key=recoveryAssetKey(type,...identity);const saved=await this.rpc("asset",{key,metadata});if(recoveryJson(saved)!==recoveryJson(metadata))throw new Error("asset_conflict")}async lookup(type,...identity){const saved=await this.rpc("assetLookup",{key:recoveryAssetKey(type,...identity)});if(saved===null||typeof saved!=="object"||Array.isArray(saved))throw new Error("missing_bundle_asset");return saved}async recordEntry(value){await this.asset("entry",[value.path],value)}async compareTree(sourceRoot,candidate){const candidateRoot=join(this.root,candidate);if(!(await lstat(candidateRoot)).isDirectory())throw new Error("missing_bundle_tree");if(await this.rpc("assetLookup",{key:recoveryAssetKey("tree",candidate)})!==null)await this.recheckTree(sourceRoot,candidate);else if(await this.rpc("assetLookup",{key:recoveryAssetKey("entry",candidate)})!==null){let afterKey=null;do{const page=await this.rpc("assetPage",{afterKey});for(const{metadata:saved}of page.assets){const path2=saved["path"];if(saved["type"]!=="entry"||typeof path2!=="string"||!(path2===candidate||path2.startsWith(`${candidate}/`)))continue;let original;try{original=await entry(dirname(sourceRoot),`${basename(sourceRoot)}${path2.slice(candidate.length)}`,sourceRoot)}catch(error){if(sourceReadDrift(error))throw new Error("source_drift");throw error}if(recoveryJson(saved)!==recoveryJson({...original,path:path2}))throw new Error("source_drift")}afterKey=page.nextKey}while(afterKey!==null)}let count=0;const unpinned=__name(async entryPath=>await this.rpc("assetLookup",{key:recoveryAssetKey("entry",`${candidate}${entryPath.slice(basename(sourceRoot).length)}`)})===null,"unpinned");for await(const original of sourceTree(sourceRoot,unpinned)){const suffix=original.path.slice(basename(sourceRoot).length);const name=`${candidate}${suffix}`;const saved=await this.rpc("assetLookup",{key:recoveryAssetKey("entry",name)});if(saved!==null&&recoveryJson(saved)!==recoveryJson({...original,path:name}))throw new Error("source_drift");let copy;try{copy=await entry(this.root,name,candidateRoot)}catch(error){if(["ENOENT","ENOTDIR"].includes(error.code??""))throw new Error("snapshot_source_mismatch");throw error}if(recoveryJson({...original,path:name})!==recoveryJson(copy))throw new Error("snapshot_source_mismatch");await this.recordEntry(copy);count++}for await(const copy of tree(this.root,candidate)){const suffix=copy.path.slice(candidate.length);let original;try{original=await entry(dirname(sourceRoot),`${basename(sourceRoot)}${suffix}`,sourceRoot)}catch(error){if(sourceReadDrift(error)){const pinned=await this.rpc("assetLookup",{key:recoveryAssetKey("entry",copy.path)});throw new Error(pinned===null?"snapshot_source_mismatch":"source_drift")}throw error}if(recoveryJson({...original,path:copy.path})!==recoveryJson(copy))throw new Error("snapshot_source_mismatch")}await this.asset("tree",[candidate],{type:"tree",path:candidate,count})}async history(sessionId,historyRoot){safeRelative(sessionId);if(sessionId.includes("/"))throw new Error("invalid_session_id");const source=join(historyRoot,sessionId);const candidate=`file-history/${sessionId}`;if(await sourceExists(source))await this.compareTree(source,candidate);else if(await this.rpc("assetLookup",{key:recoveryAssetKey("entry",candidate)})!==null)throw new Error("source_drift");else if(await exists(join(this.root,candidate)))throw new Error("snapshot_source_mismatch")}async recheckTree(sourceRoot,candidate){let count=0;for await(const original of sourceTree(sourceRoot)){const name=`${candidate}${original.path.slice(basename(sourceRoot).length)}`;let saved;try{saved=await this.lookup("entry",name)}catch(error){if(sourceReadDrift(error))throw new Error("source_drift");throw error}if(recoveryJson(saved)!==recoveryJson({...original,path:name}))throw new Error("source_drift");count++}const expected=await this.lookup("tree",candidate);if(count!==expected["count"])throw new Error("source_drift")}async recheckHistory(sessionId,historyRoot){safeRelative(sessionId);if(sessionId.includes("/"))throw new Error("invalid_session_id");const source=join(historyRoot,sessionId);const candidate=`file-history/${sessionId}`;const saved=await this.rpc("assetLookup",{key:recoveryAssetKey("entry",candidate)});if(await sourceExists(source))await this.recheckTree(source,candidate);else if(saved!==null)throw new Error("source_drift")}async verifyMigrationTree(root,candidate,marker){const mismatch=marker?"migration_tree_mismatch":"source_drift";try{if(await realpath(root)!==root||!(await lstat(root)).isDirectory())throw new Error("invalid_source_root");let count=0;for await(const actual of tree(dirname(root),basename(root),root)){const name=`${candidate}${actual.path.slice(basename(root).length)}`;const saved=await this.lookup("entry",name);let expected2=saved;if(marker&&name==="workspace/.qwen-managed-storage.json"){const original=recoveryJson({...actual,path:name})===recoveryJson(saved);if(!original)expected2={...saved,...marker}}if(recoveryJson(expected2)!==recoveryJson({...actual,path:name}))throw new Error(mismatch);count++}const expected=await this.lookup("tree",candidate);if(expected["count"]!==count)throw new Error(mismatch)}catch(error){if(sourceReadDrift(error))throw new Error(mismatch);throw error}}async backup(ownerSessionId,backupFileName){safeRelative(ownerSessionId);safeRelative(backupFileName);if(ownerSessionId.includes("/")||backupFileName.includes("/"))throw new Error("invalid_backup_path");const name=`file-history/${ownerSessionId}/${backupFileName}`;const actual=await entry(this.root,name);if(actual.entryType!=="file")throw new Error("missing_history_backup");const expected=await this.lookup("entry",name);if(recoveryJson(expected)!==recoveryJson(actual))throw new Error("history_backup_mismatch");await this.recordEntry(actual)}async blob(bytes){const name=`authority/objects/${recoveryDigest(bytes)}`;if(this.mode==="capture")await this.publish(name,(async function*(){yield bytes})());const actual=await entry(this.root,name);if(actual.entryType!=="file"||actual.byteLength!==bytes.length||actual.digest!==recoveryDigest(bytes))throw new Error("bundle_digest_mismatch");await this.recordEntry(actual);return name}async readBlob(name,digest2,byteLength){if(typeof name!=="string"||name!==`authority/objects/${digest2}`||byteLength<0||byteLength>16*1024*1024)throw new Error("invalid_bundle_blob");const handle=await open(join(this.root,name),constants.O_RDONLY|constants.O_NOFOLLOW);try{const stat=await handle.stat();if(!stat.isFile()||stat.nlink!==1||stat.size!==byteLength)throw new Error("bundle_digest_mismatch");const bytes=await handle.readFile();if(bytes.length!==byteLength||recoveryDigest(bytes)!==digest2)throw new Error("bundle_digest_mismatch");await this.recordEntry(await entry(this.root,name));return bytes}finally{await handle.close()}}async publish(name,chunks){safeRelative(name);const target=join(this.root,name);const temporary=`${target}.partial-${this.operationId}`;if(await exists(temporary)){if(!(await lstat(temporary)).isFile()||(await lstat(temporary)).nlink!==1)throw new Error("invalid_temporary_file");await unlink(temporary)}const handle=await open(temporary,constants.O_CREAT|constants.O_EXCL|constants.O_WRONLY|constants.O_NOFOLLOW,384);const hash=createHash("sha256");let byteLength=0;let count=0;try{for await(const bytes of chunks){hash.update(bytes);byteLength+=bytes.length;count++;await handle.writeFile(bytes)}await handle.sync();await handle.close();const digest2=hash.digest("hex");if(await exists(target)){const saved=await fileDigest(target);if(saved.digest!==digest2||saved.byteLength!==byteLength)throw new Error("bundle_object_conflict");await unlink(temporary)}else await rename(temporary,target);const directory=await open(dirname(target),constants.O_RDONLY|constants.O_DIRECTORY);try{await directory.sync()}finally{await directory.close()}return{path:name,count,byteLength,digest:digest2}}finally{await handle.close().catch(()=>void 0);if(await exists(temporary))await unlink(temporary)}}async census(){let count=0;const directory=await opendir(this.root);for await(const child of directory){if(child.name===".w1-recovery"){if(!child.isDirectory())throw new Error("invalid_metadata_directory");for await(const metadata of await opendir(join(this.root,child.name))){if(!["manifest.json","sessions.ndjson","assets.ndjson"].includes(metadata.name)||!metadata.isFile())throw new Error("undeclared_bundle_entry")}continue}if(!["workspace","file-history","authority"].includes(child.name))throw new Error("undeclared_bundle_entry");for await(const actual of tree(this.root,child.name)){const saved=await this.lookup("entry",actual.path);if(recoveryJson(saved)!==recoveryJson(actual))throw new Error("bundle_entry_mismatch");await this.recordEntry(actual);count++}}let expectedCount=0;let afterKey=null;do{const page=await this.rpc("assetPage",{afterKey});for(const asset of page.assets)if(asset.metadata["type"]==="entry")expectedCount++;afterKey=page.nextKey}while(afterKey!==null);if(count!==expectedCount)throw new Error("missing_bundle_entry");return count}async checkIndex(expected){safeRelative(expected.path);const actual=await fileDigest(join(this.root,expected.path));if(actual.digest!==expected.digest||actual.byteLength!==expected.byteLength)throw new Error("bundle_index_mismatch")}async readManifest(digest2){const path2=join(this.root,".w1-recovery/manifest.json");const handle=await open(path2,constants.O_RDONLY|constants.O_NOFOLLOW);try{const stat=await handle.stat();if(!stat.isFile()||stat.nlink!==1||stat.size>1024*1024)throw new Error("invalid_manifest");const bytes=await handle.readFile();if(recoveryDigest(bytes)!==digest2)throw new Error("bundle_manifest_mismatch");return JSON.parse(bytes.toString("utf8"))}finally{await handle.close()}}};init_esbuild_shims();import path from"node:path";import{createHash as createHash2}from"node:crypto";import{isDeepStrictEqual}from"node:util";var DOMAINS=["session_metadata","file_history","goal_state","todo_state","session_source"];var RESOURCE_KINDS=new Set(["managed-definition","managed-agent-instructions","managed-agent-skills","managed-root","managed-input","managed-admission","managed-activation-install","managed-activation-boundary","managed-tool-input","managed-tool-definition","managed-tool-args","managed-tool-outcome","managed-action-options",...HOSTED_RECOVERY_RESOURCE_KINDS,"managed-action-decision","managed-message","managed-message-part","managed-message-chunks","managed-turn-result","managed-compaction-summary","managed-checkpoint","managed-checkpoint-history","managed-api-history",...DOMAINS.map(domain=>`managed-${domain}`),...Object.values(MANAGED_TOOL_RESULT_KINDS),"managed-tool-terminal","managed-hosted-model-route","managed-hosted-model-usage"]);function requireValue(value,message){if(!value)throw new Error(`Workspace recovery: ${message}.`)}__name(requireValue,"requireValue");function object(value){requireValue(value!==null&&typeof value==="object"&&!Array.isArray(value),"expected a resource object");return value}__name(object,"object");function digest(bytes){return createHash2("sha256").update(bytes).digest("hex")}__name(digest,"digest");function decodeBase64(value){const bytes=Buffer.from(value,"base64");requireValue(bytes.toString("base64")===value,"invalid base64 bytes");return bytes}__name(decodeBase64,"decodeBase64");function json(bytes){return parseManagedSessionRecordJson(new TextDecoder("utf-8",{fatal:true}).decode(bytes),bytes.length)}__name(json,"json");function durableRef(value){return assertManagedSessionDurableRef(value,"recovery resource")}__name(durableRef,"durableRef");async function enqueueRefs(value,io){if(Array.isArray(value)){for(const item of value)await enqueueRefs(item,io)}else if(value!==null&&typeof value==="object"){const record=value;if(["resourceId","kind","schemaVersion","byteLength","digest"].every(key=>Object.hasOwn(record,key))){await io.enqueue(durableRef(record))}else{for(const item of Object.values(record))await enqueueRefs(item,io)}}}__name(enqueueRefs,"enqueueRefs");function readerRecord(value,sessionId){const parsed=validateTranscriptRecord(value);const record=object(value);requireValue(parsed.record&&parsed.diagnostics.length===0&&parsed.record.sessionId===sessionId&&typeof record["cwd"]==="string"&&typeof record["version"]==="string"&&typeof record["timestamp"]==="string","invalid reader-facing record");return record}__name(readerRecord,"readerRecord");function settledCheckpoint(checkpoint){return["before_model","turn_settled"].includes(checkpoint.continuation.phase)&&checkpoint.continuation.pendingEventIds.length===0&&checkpoint.attempt?.outputState!=="started"&&(checkpoint.tools?.items??[]).every(item=>item.state==="settled"&&item.consumed)&&(checkpoint.runtime?.bindings??[]).every(item=>item.state!=="dispatch")&&checkpoint.approval===null&&checkpoint.followUp.pendingInputIds.length===0&&checkpoint.followUp.cancelRequestIds.length===0&&checkpoint.followUp.goalPermitIds.length===0&&checkpoint.followUp.cronIds.length===0&&checkpoint.followUp.notificationIds.length===0&&checkpoint.followUp.childRunIds.length===0}__name(settledCheckpoint,"settledCheckpoint");async function verifyRecoverySession(source,io,purpose="recovery"){encodeManagedContextBinding(source.binding);const head=source.head;const retirement=source.retirement;requireValue(retirement==null||retirement.tenantId===source.binding.tenantId&&retirement.sessionId===source.sessionId&&typeof retirement.operationId==="string"&&retirement.operationId.length>0&&retirement.operationId.length<=128&&retirement.generation===1&&Number.isSafeInteger(retirement.retiredAt)&&retirement.retiredAt>0&&retirement.recoveryProtected===false&&source.publicSession.status==="DELETED"&&Number.isSafeInteger(source.publicSession.deletedAt)&&Number(source.publicSession.deletedAt)>0&&(!head||head.state==="DELETED"&&head.latestCheckpointResourceId===null&&head.writerId===null&&head.writerLeaseUntil===null),"invalid pinned retirement");const retiredHead=source.retiredHead;requireValue(retiredHead==null||head===null&&retirement!=null&&retiredHead.tenantId===source.binding.tenantId&&retiredHead.sessionId===source.sessionId&&typeof retiredHead.workspaceId==="string"&&retiredHead.workspaceId.length>0&&retiredHead.state==="DELETED"&&[1,2].includes(retiredHead.storageVersion)&&retiredHead.writerId===null&&retiredHead.writerLeaseUntil===null&&retiredHead.latestCheckpointResourceId===null&&retiredHead.recoveryStatus==="READY"&&Number.isSafeInteger(retiredHead.writerGeneration)&&retiredHead.writerGeneration>=0&&Number.isSafeInteger(retiredHead.journalRevision)&&retiredHead.journalRevision>=0&&retiredHead.compactedThroughRevision===retiredHead.journalRevision&&Number.isSafeInteger(retiredHead.committedSequence)&&retiredHead.committedSequence>=0&&Number.isSafeInteger(retiredHead.activationEpoch)&&retiredHead.activationEpoch>=0&&(retiredHead.lastCommitDigest===null&&retiredHead.committedSequence===0||typeof retiredHead.lastCommitDigest==="string"&&/^[0-9a-f]{64}$/u.test(retiredHead.lastCommitDigest)),"invalid collected retirement head");if(purpose==="migration"){requireValue(Boolean(head||retirement),"uninitialized migration member")}let revision=0;let sequence=0;let commitDigest=null;let activationEpoch=0;let latestCheckpoint=null;const cleanupDebt=new Map;let activeTurn=null;let hasContinuation=false;let lastWorkSequence=0;let lastCheckpointSequence=0;let hasHistory=false;const domains=new Map;let latestHistoryPending=false;const key=head&&{tenantId:head.tenantId,workspaceId:head.workspaceId,sessionId:source.sessionId};requireValue(!head||head.sessionId===source.sessionId&&head.tenantId===source.binding.tenantId&&[1,2].includes(head.storageVersion)&&head.journalRevision>=1&&head.compactedThroughRevision===0&&head.recoveryStatus==="READY","unsupported private journal head");async function read(ref){const validated=durableRef(ref);requireValue(validated.schemaVersion===1&&RESOURCE_KINDS.has(validated.kind),"unsupported resource protocol");await io.enqueue(validated);const bytes=await io.read(validated);requireValue(bytes.length===validated.byteLength&&digest(bytes)===validated.digest,"resource bytes conflict");return bytes}__name(read,"read");async function backups(value){const state=parseManagedToolFileHistoryState({ownerSessionId:source.sessionId,revision:0,snapshots:value});hasHistory=true;for(const snapshot of state.snapshots){for(const[filePath,backup]of Object.entries(snapshot.trackedFileBackups)){if(purpose==="migration"){requireValue(!path.isAbsolute(filePath)&&path.normalize(filePath)===filePath&&filePath!==".","external migration history path")}requireValue(!backup.failed,"file history backup failed");if(backup.backupFileName!==null){await io.verifyBackup({ownerSessionId:state.ownerSessionId,filePath,...backup,backupFileName:backup.backupFileName})}}}}__name(backups,"backups");async function domainBody(ref){const body=object(json(await read(ref)));requireValue(Number.isSafeInteger(body["revision"])&&body["revision"]>0&&typeof body["operationId"]==="string","invalid domain record");if(body["previousRecordRef"]!==null){const previousRef=durableRef(body["previousRecordRef"]);requireValue(previousRef.kind===ref.kind,"domain predecessor kind conflicts");const previous=object(json(await read(previousRef)));requireValue(previous["revision"]===body["revision"]-1,"domain predecessor revision conflicts")}else{requireValue(body["revision"]===1,"missing domain predecessor")}if(ref.kind==="managed-session_metadata"){requireValue(typeof body["title"]==="string"&&body["title"].length>0,"invalid session title")}else if(ref.kind==="managed-todo_state"){requireValue(!checkHostedTodoWriteInput({todos:body["todos"]}).error&&!validateTodos(body["todos"]),"invalid Hosted Todo state")}else{const record=readerRecord(body["record"],source.sessionId);const subtype=ref.kind==="managed-file_history"?"file_history_snapshot":ref.kind.slice("managed-".length);requireValue(record["type"]==="system"&&record["subtype"]===subtype,"domain reader record conflicts");if(ref.kind==="managed-file_history"){const snapshots=object(record["systemPayload"])["snapshots"];await backups(snapshots);if("state"in body){const{state}=parseHostedFileHistoryRecord(body,source.sessionId);requireValue(isDeepStrictEqual(state.snapshots,snapshots),"Hosted history snapshots conflict")}}}await enqueueRefs(body,io);return body}__name(domainBody,"domainBody");async function manifest(ref,receipt){requireValue(ref.kind===MANAGED_TOOL_RESULT_KINDS.manifest,"invalid manifest kind");const parsed=parseToolResultManifestBytes(await read(ref));requireValue(parsed.tenantId===source.binding.tenantId&&parsed.sessionId===source.sessionId&&parsed.captureStatus==="complete"&&parsed.captureScope==="process_pipes"&&parsed.capturePolicy==="complete_required"&&!parsed.upstreamTruncated&&parsed.contents.length===2,"incomplete or foreign Shell capture");if(receipt){const pagedStreams=parsed.contents.filter(stream=>"pages"in stream.body).map(stream=>stream.streamId);requireValue(receipt.seals.length===pagedStreams.length&&receipt.seals.every(seal=>pagedStreams.includes(seal.streamId)),"original Shell capture seal ownership conflicts")}for(const[streamIndex,stream]of parsed.contents.entries()){requireValue(["stdout","stderr"].includes(stream.streamId)&&stream.role===stream.streamId&&stream.state==="sealed","invalid Shell stream");const hash=createHash2("sha256");let count=0;if("ref"in stream.body){hash.update(await read(stream.body.ref))}else{for(const[pageIndex,pageRef]of stream.body.pages.entries()){const page=parseToolResultPageBytes(await read(pageRef.ref));requireValue(isToolResultPageAt(parsed,streamIndex,pageIndex,page),"Shell page position conflicts");for(const[index,segment]of page.segments.entries()){const ordinal=page.firstOrdinal+index;let bytes;if(receipt){const slotKey=`segment:${stream.streamId}:${ordinal}`;const stored=await io.publicationObject({sessionId:source.sessionId,publicationId:receipt.publicationId,slotKey});bytes=decodeBase64(stored.bytesBase64);requireValue(stored.slotKey===slotKey&&stored.kind===null&&stored.resourceId===null&&stored.byteLength===segment.byteLength&&stored.digest===segment.digest,"original Shell segment metadata conflicts")}else{bytes=await read({resourceId:digest(Buffer.from(JSON.stringify([parsed.captureId,stream.streamId,ordinal]))),kind:MANAGED_TOOL_RESULT_KINDS.content,schemaVersion:1,...segment})}requireValue(bytes.length===segment.byteLength&&digest(bytes)===segment.digest,"Shell segment bytes conflict");hash.update(bytes);count++}}const seal={segmentCount:count,byteLength:stream.byteLength,digest:stream.digest};if(receipt){requireValue(isDeepStrictEqual(receipt.seals.find(item=>item.streamId===stream.streamId),{streamId:stream.streamId,...seal}),"original Shell seal conflicts")}else{const bytes=Buffer.from(JSON.stringify(seal));const stored=await read({resourceId:digest(Buffer.from(JSON.stringify([parsed.captureId,stream.streamId,"seal"]))),kind:MANAGED_TOOL_RESULT_KINDS.content,schemaVersion:1,byteLength:bytes.length,digest:digest(bytes)});parseToolResultSealRequest({captureId:parsed.captureId,streamId:stream.streamId,...object(json(stored))})}}requireValue(hash.digest("hex")===stream.digest,"full Shell stream digest conflicts")}await io.completeReference(ref);return parsed}__name(manifest,"manifest");async function toolReceipt(event){const outcomeRef=durableRef(event.payload["toolOutcomeRef"]);requireValue(outcomeRef.kind==="managed-tool-outcome","invalid Shell outcome kind");const outcome=object(json(await read(outcomeRef)));const envelope=parseToolResultEnvelope(outcome["envelope"]);const manifestRef=envelope.capture?.manifest??null;const lostCancellation=outcome["version"]===1&&outcome["decision"]==="blocked"&&envelope.executionStatus==="cancelled"&&envelope.capture?.captureStatus==="unavailable"&&envelope.capture.captureReason==="producer_lost"&&envelope.capture.deliveryStatus==="pending"&&manifestRef===null;requireValue(event.payload["historyRevision"]===event.sequence&&isDeepStrictEqual(event.payload["resultRef"],manifestRef)&&isDeepStrictEqual(event.payload["resources"],manifestRef?[manifestRef]:[])&&(envelope.executionStatus==="not_started"&&envelope.capture===null||outcome["decision"]==="committed"&&envelope.capture?.captureStatus==="complete"||outcome["decision"]==="blocked"&&envelope.capture?.captureStatus==="detached"||lostCancellation),"unsettled or conflicting Shell receipt");if(outcome["version"]===1){const identity=object(outcome["identity"]);requireValue(identity["tenantId"]===source.binding.tenantId&&identity["sessionId"]===source.sessionId&&identity["executionCallId"]===event.payload["executionCallId"],"local Shell identity conflicts");if(envelope.executionStatus==="not_started"||lostCancellation)return;requireValue(manifestRef,"local Shell receipt has no capture");const parsed=await manifest(manifestRef);requireValue(isToolResultEnvelopeOf(envelope,parsed),"local Shell envelope conflicts");requireValue(isDeepStrictEqual(identity,Object.fromEntries(["tenantId","sessionId","turnId","executionCallId","callId","invocationDigest","bindingGeneration","captureId","revision"].map(field=>[field,parsed[field]]))),"local Shell identity conflicts")}else{requireValue(outcome["schemaVersion"]===1&&isDeepStrictEqual(outcome["manifestRef"],manifestRef),"invalid original Shell outcome");const history=object(outcome["history"]);requireValue(typeof history["messageId"]==="string"&&typeof history["timestamp"]==="string"&&typeof history["model"]==="string"&&Array.isArray(history["parts"]),"invalid Shell reader history");if(envelope.executionStatus==="not_started")return;if(envelope.capture?.captureStatus==="detached")return;const receipt=await io.publicationReceipt({sessionId:source.sessionId,executionCallId:event.payload["executionCallId"],sequence:event.sequence,outcomeRef,manifestRef});const binding=parseToolPublicationBinding(receipt.binding);requireValue(receipt.publicationId===binding.publicationId&&key&&managedSessionKeysEqual(binding.sessionKey,key)&&binding.executionCallId===event.payload["executionCallId"]&&binding.intentSequence<event.sequence&&receipt.receiptSequence===event.sequence&&receipt.receiptRevision===revision&&isDeepStrictEqual(receipt.outcomeRef,outcomeRef)&&isDeepStrictEqual(receipt.manifestRef,manifestRef),"original publication receipt conflicts");await enqueueRefs(binding,io);requireValue(receipt.terminalRef.kind==="managed-tool-terminal","invalid original terminal kind");requireValue(isDeepStrictEqual(parseToolResultEnvelope(json(await read(receipt.terminalRef))),envelope),"original terminal outcome conflicts");requireValue(manifestRef,"original Shell capture lacks a manifest");const parsed=await manifest(manifestRef,receipt);requireValue(isToolResultEnvelopeOf(envelope,parsed)&&Object.entries(toolPublicationManifestIdentity(binding)).every(([field,value])=>parsed[field]===value),"original publication manifest identity conflicts")}}__name(toolReceipt,"toolReceipt");for await(const raw of io.transactions()){requireValue(head&&key,"journal exists without private head");const tx=parseStoredTransaction({...raw,recordEncoding:"identity"});requireValue(tx.journalRevision===revision+1&&tx.journalRevision<=head.journalRevision&&tx.byteLength<=MANAGED_SESSION_LIMITS.maxTransactionBytes,"journal revisions or size conflict");const bytes=decodeBase64(tx.recordBytesBase64);requireValue(bytes.length===tx.byteLength&&digest(bytes)===tx.recordDigest,"transaction bytes conflict");const text=new TextDecoder("utf-8",{fatal:true}).decode(bytes);requireValue(text.endsWith("\n"),"incomplete transaction JSONL");const records=text.slice(0,-1).split("\n").map(line=>parseManagedSessionRecordJson(line,MANAGED_SESSION_LIMITS.maxEventBytes));const descriptor=describeTransaction(records,bytes,activationEpoch,key);requireStoredTransactionMatches(tx,descriptor);revision++;if(revision===1){requireValue(descriptor.operation==="session.create","missing genesis");const header=parseManagedSessionHeader(object(records[1])["managedSession"]);requireValue(object(object(records[0])["systemPayload"])["engine"]==="managed"&&header.definitionRef.kind==="managed-definition"&&header.rootSnapshotRef.kind==="managed-root","invalid genesis");const definition=object(json(await read(header.definitionRef)));requireValue(definition["engine"]==="managed"&&definition["sessionId"]===source.sessionId&&definition["mcpServers"]===void 0&&(definition["toolProfile"]===void 0||isHostedWorkspaceProfile(definition["toolProfile"])),"unsupported Hosted profile");if(purpose==="migration"){requireValue(definition["toolProfile"]==="hosted-workspace-files/1"&&definition["hookCatalog"]===void 0&&definition["mcpServers"]===void 0&&definition["captureBytes"]===void 0,"unsupported migration profile")}requireValue(readHostedApprovalDefinition(definition)&&(definition["captureBytes"]===void 0||isHostedWorkspaceShellProfile(definition["toolProfile"])&&Number.isSafeInteger(definition["captureBytes"])&&definition["captureBytes"]>=1&&definition["captureBytes"]<=2**41),"invalid frozen Hosted definition");requireValue(typeof object(json(await read(header.rootSnapshotRef)))["cwd"]==="string","invalid root snapshot");await enqueueRefs(header,io);continue}requireValue(descriptor.operation!=="session.create"&&descriptor.firstSequence===sequence+1&&descriptor.eventCount===records.length-1&&descriptor.eventCount<=MANAGED_SESSION_LIMITS.maxTransactionEvents&&descriptor.previousCommitDigest===commitDigest,"journal sequence or commit chain conflicts");const events=records.slice(0,-1).map(record=>parseManagedSessionEvent(object(record)["managedSession"]));requireValue(descriptor.eventsDigest===managedSessionEventsDigest(events)&&descriptor.lastSequence===sequence+events.length,"commit marker content conflicts");for(const event of events){requireValue(event.sequence===sequence+1,"noncontiguous event sequence");if(event.kind==="hosted.cleanup")cleanupDebt.set(event.payload["cleanupId"],event.payload["state"]);if(event.kind==="input.accepted"){requireValue(activeTurn===null,"overlapping unresolved inputs");activeTurn=event.payload["turnId"]}else if(event.kind==="turn.settled"){requireValue(activeTurn===event.payload["turnId"],"turn settlement has no accepted input");requireValue(event.payload["pendingOwnersRef"]===null,"turn has pending owners");activeTurn=null}else if(["model.attempt","tool.intent","tool.receipt"].includes(event.kind)){hasContinuation=true;lastWorkSequence=event.sequence}if(event.kind==="action.changed"&&event.payload["state"]==="requested"){hasContinuation=true;lastWorkSequence=event.sequence}if(event.kind==="message.committed"&&["assistant","tool_result"].includes(event.payload["role"])){hasContinuation=true;lastWorkSequence=event.sequence}if(event.kind==="domain.committed"){const domain=event.payload["domain"];requireValue(DOMAINS.includes(domain),"unsupported committed domain");const ref=durableRef(event.payload["recordRef"]);requireValue(ref.kind===`managed-${domain}`,"domain reference kind conflicts");const body=await domainBody(ref);const prior=domains.get(domain);requireValue(body["revision"]===(prior?.revision??0)+1&&isDeepStrictEqual(body["previousRecordRef"],prior?.ref??null)&&body["operationId"]===event.payload["operationId"],"domain journal chain conflicts");domains.set(domain,{revision:body["revision"],ref});if(domain==="file_history")latestHistoryPending=body["pendingTurn"]!=null||body["pendingUndo"]!=null}if(event.kind==="checkpoint.committed"){const ref=durableRef(event.payload["stateRef"]);requireValue(ref.kind==="managed-checkpoint"&&event.payload["coveredSequence"]<=tx.firstSequence-1&&event.payload["previousCheckpointId"]===(latestCheckpoint?.id??null),"checkpoint coverage or predecessor conflicts");for(const nested of collectNestedResourceRefs(ref,await read(ref)))await io.enqueue(nested);const state=await readHarnessCheckpoint({read},ref);requireValue(managedSessionKeysEqual(state.identity.sessionKey,key)&&state.identity.checkpointId===event.payload["checkpointId"]&&state.identity.coveredSequence===event.payload["coveredSequence"]&&state.identity.previousCheckpointId===event.payload["previousCheckpointId"],"checkpoint identity conflicts");latestCheckpoint={id:state.identity.checkpointId,ref,boundary:event.payload["boundary"],state};lastCheckpointSequence=event.sequence;await enqueueRefs(state,io);if(state.resume.fileHistoryRef){const history=object(json(await read(state.resume.fileHistoryRef)));requireValue(history["ownerSessionId"]===source.sessionId,"checkpoint file history owner conflicts");parseManagedToolFileHistoryState(history);await backups(history["snapshots"])}}if(event.kind==="tool.receipt")await toolReceipt(event);const recordRef=event.kind==="message.committed"?event.payload["contentRef"]:event.kind==="turn.settled"?event.payload["resultRef"]:event.kind==="context.compacted"?event.payload["summaryRef"]:null;if(recordRef){const record=readerRecord(json(await readManagedMessageBody(read,durableRef(recordRef))),source.sessionId);if(event.kind==="message.committed")requireValue(record["uuid"]===event.payload["messageId"]&&record["type"]===event.payload["role"]&&record["parentUuid"]===event.payload["parentMessageId"],"message journal identity conflicts");await enqueueRefs(record,io)}await enqueueRefs(event.payload,io);sequence=event.sequence}activationEpoch=descriptor.activationEpoch;commitDigest=descriptor.commitDigest}requireValue(!head||revision===head.journalRevision&&sequence===head.committedSequence&&commitDigest===head.lastCommitDigest&&activationEpoch===head.activationEpoch&&(retirement?head.latestCheckpointResourceId===null:(latestCheckpoint?.ref.resourceId??null)===head.latestCheckpointResourceId),"journal does not match pinned private head");requireValue(activeTurn===null&&![...cleanupDebt.values()].some(state=>state!=="confirmed")&&!latestHistoryPending&&(latestCheckpoint?(latestCheckpoint.boundary===HARNESS_TURN_COMPLETE_BOUNDARY||!hasContinuation&&latestCheckpoint.state.identity.turnId===null)&&lastWorkSequence<lastCheckpointSequence&&settledCheckpoint(latestCheckpoint.state):!hasContinuation),"cut has unfinished Harness work");for(;;){const ref=await io.nextReference();if(ref===null)break;const bytes=await read(ref);if(ref.kind===MANAGED_TOOL_RESULT_KINDS.manifest)throw new Error("Workspace recovery: Shell manifest has no verified journal receipt.");if(ref.kind.startsWith("managed-")&&DOMAINS.some(domain=>ref.kind===`managed-${domain}`))await domainBody(ref);else if(ref.kind==="managed-checkpoint"){for(const nested of collectNestedResourceRefs(ref,bytes))await io.enqueue(nested);const state=await readHarnessCheckpoint({read},ref);requireValue(key&&managedSessionKeysEqual(state.identity.sessionKey,key),"checkpoint closure owner conflicts");await enqueueRefs(state,io)}else if(ref.kind==="managed-checkpoint-history"){for(const nested of collectNestedResourceRefs(ref,bytes))await io.enqueue(nested)}else if(HOSTED_RECOVERY_RESOURCE_KINDS.has(ref.kind)){for(const nested of hostedRecoveryReferences(parseHostedRecoveryResource(bytes,key??void 0,ref.kind)))await io.enqueue(nested)}else if(ref.kind==="managed-agent-instructions"){requireValue(bytes.byteLength<=64*1024,"agent instructions exceed 64 KiB");new TextDecoder("utf-8",{fatal:true}).decode(bytes)}else if(ref.kind==="managed-agent-skills"){await readHostedSkills(ref,{read:__name(async()=>bytes,"read")})}else if(ref.kind==="managed-api-history"){const history=json(bytes);requireValue(Array.isArray(history),"invalid API history");await enqueueRefs(history,io)}else if(ref.kind!==MANAGED_TOOL_RESULT_KINDS.content&&ref.kind!==MANAGED_MESSAGE_PART_KIND)await enqueueRefs(json(bytes),io);await io.completeReference(ref)}return{fileHistory:hasHistory?"captured":"not_captured"}}__name(verifyRecoverySession,"verifyRecoverySession");function createRecoveryRpc(input,output){const iterator=input[Symbol.asyncIterator]();let pending=Buffer.alloc(0);let id=0;let busy=false;return async(method,params)=>{if(busy)throw new Error("concurrent_recovery_request");busy=true;try{const requestId=++id;await new Promise((accept,reject)=>{output.write(`${JSON.stringify({id:requestId,method,params})}
4
4
  `,error=>error?reject(error):accept())});while(!pending.includes(10)){const chunk=await iterator.next();if(chunk.done)throw new Error("recovery_parent_closed");pending=Buffer.concat([pending,Buffer.from(chunk.value)]);if(pending.length>24*1024*1024)throw new Error("recovery_response_too_large")}const end=pending.indexOf(10);const response=JSON.parse(pending.subarray(0,end).toString("utf8"));pending=pending.subarray(end+1);if(response.id!==requestId||pending.length!==0)throw new Error("unexpected_recovery_response");if(response.error)throw new Error(typeof response.error.code==="string"?response.error.code:"recovery_rpc_failed");if(!Object.hasOwn(response,"result"))throw new Error("invalid_recovery_response");return response.result}finally{busy=false}}}__name(createRecoveryRpc,"createRecoveryRpc");function decoded(value,digest2,byteLength){if(!Number.isSafeInteger(byteLength)||byteLength<0||byteLength>16*1024*1024||value.length>24*1024*1024)throw new Error("resource_limit_exceeded");const bytes=Buffer.from(value,"base64");if(bytes.toString("base64")!==value||bytes.length!==byteLength||recoveryDigest(bytes)!==digest2)throw new Error("source_digest_mismatch");return bytes}__name(decoded,"decoded");async function*sources(rpc){let afterSessionId=null;let previous="";do{const page=await rpc("sessions",{afterSessionId});if(!Array.isArray(page.sessions)||page.sessions.length>32)throw new Error("invalid_session_page");for(const row of page.sessions){if(row.sessionId<=previous||row.sessionId!==row.source.sessionId||recoveryDigest(row.sourceJson)!==row.sourceDigest||recoveryJson(JSON.parse(row.sourceJson))!==recoveryJson(row.source))throw new Error("invalid_session_source");previous=row.sessionId;yield row}if(page.nextSessionId!==null&&page.nextSessionId!==previous)throw new Error("invalid_session_cursor");afterSessionId=page.nextSessionId}while(afterSessionId!==null)}__name(sources,"sources");function sessionIO(row,bundle,rpc){const sessionId=row.sessionId;return{async*transactions(){for(let revision=1;revision<=(row.source.head?.journalRevision??0);revision++){let transaction;if(bundle.mode==="capture"){transaction=parseStoredTransaction(await rpc("transaction",{sessionId,revision}));const bytes=decoded(transaction.recordBytesBase64,transaction.recordDigest,transaction.byteLength);const path2=await bundle.blob(bytes);const{recordBytesBase64:_bytes,...metadata}=transaction;await bundle.asset("transaction",[sessionId,String(revision)],{type:"transaction",sessionId,revision,transaction:{...metadata,recordEncoding:"identity"},path:path2})}else{const saved=await bundle.lookup("transaction",sessionId,String(revision));const metadata=saved["transaction"];const bytes=await bundle.readBlob(saved["path"],metadata.recordDigest,metadata.byteLength);transaction=parseStoredTransaction({...metadata,recordBytesBase64:bytes.toString("base64")});await bundle.asset("transaction",[sessionId,String(revision)],saved)}if(transaction.journalRevision!==revision)throw new Error("journal_revision_mismatch");yield transaction}},async read(ref){if(bundle.mode==="capture"){const resource=await rpc("resource",{sessionId,ref});if(recoveryJson(resource.ref)!==recoveryJson(ref))throw new Error("reference_conflict");const bytes2=decoded(resource.bytesBase64,ref.digest,ref.byteLength);const path2=await bundle.blob(bytes2);await bundle.asset("resource",[sessionId,ref.resourceId],{type:"resource",sessionId,ref,path:path2});return bytes2}const saved=await bundle.lookup("resource",sessionId,ref.resourceId);if(recoveryJson(saved["ref"])!==recoveryJson(ref))throw new Error("reference_conflict");const bytes=await bundle.readBlob(saved["path"],ref.digest,ref.byteLength);await bundle.asset("resource",[sessionId,ref.resourceId],saved);return bytes},async enqueue(ref){await rpc("enqueueRef",{sessionId,ref})},async nextReference(){return await rpc("nextRef",{sessionId})},async completeReference(ref){await rpc("completeRef",{sessionId,ref})},async publicationReceipt(params){const identity=[sessionId,params.executionCallId,String(params.sequence)];if(bundle.mode==="capture"){const receipt=await rpc("publicationReceipt",params);await bundle.asset("publicationReceipt",identity,{type:"publicationReceipt",sessionId,request:params,receipt});return receipt}const saved=await bundle.lookup("publicationReceipt",...identity);if(recoveryJson(saved["request"])!==recoveryJson(params))throw new Error("publication_receipt_mismatch");await bundle.asset("publicationReceipt",identity,saved);return saved["receipt"]},async publicationObject(params){const identity=[sessionId,params.publicationId,params.slotKey];if(bundle.mode==="capture"){const object2=await rpc("publicationObject",params);const bytes2=decoded(object2.bytesBase64,object2.digest,object2.byteLength);const path2=await bundle.blob(bytes2);const{bytesBase64:_bytes,...metadata2}=object2;await bundle.asset("publicationObject",identity,{type:"publicationObject",sessionId,publicationId:params.publicationId,object:metadata2,path:path2});return object2}const saved=await bundle.lookup("publicationObject",...identity);const metadata=saved["object"];const bytes=await bundle.readBlob(saved["path"],metadata.digest,metadata.byteLength);await bundle.asset("publicationObject",identity,saved);return{...metadata,bytesBase64:bytes.toString("base64")}},async verifyBackup(params){await bundle.backup(params.ownerSessionId,params.backupFileName)}}}__name(sessionIO,"sessionIO");async function runRecoveryWorker(rpc){let capturing=false;try{const context=await rpc("context",{});capturing=context.mode==="capture";if(context.protocol!=="workspace-recovery/1"||!["capture","verify"].includes(context.mode)||!/^[0-9a-f-]{36}$/.test(context.request.operationId))throw new Error("invalid_recovery_context");const bundle=new LocalRecoveryBundle(context.request.bundleRoot,context.request.operationId,context.mode,rpc);await bundle.initialize(context.request.sourceRoot,context.request.fileHistoryRoot);if(context.migration){const home=Storage.getGlobalQwenDir().replace(/\/+/g,"/").replace(/(.+)\/$/,"$1");const samePath=__name((left,right)=>process.platform==="win32"||process.platform==="darwin"?left.toLowerCase()===right.toLowerCase():left===right,"samePath");if(!process.env["QWEN_HOME"]||!isAbsolute2(process.env["QWEN_HOME"])||!samePath(await realpath2(home),home)||!samePath(join2(home,"file-history"),context.request.fileHistoryRoot)||!samePath(await realpath2(context.request.fileHistoryRoot),context.request.fileHistoryRoot))throw new Error("migration_history_environment_mismatch")}let manifest;if(context.mode==="verify"){if(!context.capture)throw new Error("capture_not_sealed");manifest=await bundle.readManifest(context.capture.manifestDigest);if(manifest["provider"]!=="local-workspace-bundle/1"||manifest["captureOperationId"]!==context.capture.operationId||manifest["sourceDigest"]!==context.sourceDigest||recoveryJson(manifest["registration"])!==recoveryJson(context.registration))throw new Error("bundle_manifest_mismatch")}else await bundle.compareTree(context.request.sourceRoot,"workspace");const sourceHash=createHash3("sha256");let sessionCount=0;const sessionChunks=__name(async function*(){for await(const row of sources(rpc)){if(context.mode==="capture")await bundle.history(row.sessionId,context.request.fileHistoryRoot);const summary=await verifyRecoverySession(row.source,sessionIO(row,bundle,rpc),context.migration?"migration":"recovery");await rpc("sessionComplete",{sessionId:row.sessionId,summary});const bytes=Buffer.from(`${row.sourceJson}
5
5
  `);sourceHash.update(bytes);sessionCount++;yield bytes}},"sessionChunks");let sessionsIndex;if(context.mode==="capture")sessionsIndex=await bundle.publish(".w1-recovery/sessions.ndjson",sessionChunks());else{let byteLength=0;for await(const bytes of sessionChunks())byteLength+=bytes.length;sessionsIndex=manifest["sessions"];if(sessionsIndex.byteLength!==byteLength||sessionsIndex.count!==sessionCount)throw new Error("bundle_index_mismatch");await bundle.checkIndex(sessionsIndex)}if(sourceHash.digest("hex")!==context.sourceDigest||sessionCount!==context.sessionCount||sessionsIndex.digest!==context.sourceDigest)throw new Error("source_set_mismatch");if(context.mode==="capture"){await bundle.recheckTree(context.request.sourceRoot,"workspace");for await(const row of sources(rpc)){await bundle.recheckHistory(row.sessionId,context.request.fileHistoryRoot)}}if(context.migration){await bundle.verifyMigrationTree(context.request.sourceRoot,"workspace");await bundle.verifyMigrationTree(context.migration.targetRoot,"workspace",context.migration.targetMarker);for await(const row of sources(rpc)){await bundle.recheckHistory(row.sessionId,context.request.fileHistoryRoot)}}const entries=await bundle.census();const assetChunks=__name(async function*(){let afterKey=null;do{const page=await rpc("assetPage",{afterKey});for(const asset of page.assets){if(context.mode==="verify")await rpc("asset",asset);yield Buffer.from(`${recoveryJson({version:1,...asset})}
6
6
  `)}afterKey=page.nextKey}while(afterKey!==null)},"assetChunks");let assetsIndex;if(context.mode==="capture")assetsIndex=await bundle.publish(".w1-recovery/assets.ndjson",assetChunks());else{const hash=createHash3("sha256");let byteLength=0;let count=0;for await(const bytes of assetChunks()){hash.update(bytes);byteLength+=bytes.length;count++}assetsIndex=manifest["assets"];if(assetsIndex.digest!==hash.digest("hex")||assetsIndex.byteLength!==byteLength||assetsIndex.count!==count)throw new Error("bundle_index_mismatch");await bundle.checkIndex(assetsIndex)}let manifestDigest;if(context.mode==="capture"){manifest={version:1,provider:"local-workspace-bundle/1",tenantId:context.request.tenantId,storageId:context.request.storageId,captureOperationId:context.request.operationId,registration:context.registration,fenceOperationId:context.request.fenceOperationId,mountRevision:context.request.mountRevision,sourceDigest:context.sourceDigest,sessionCount,sessions:sessionsIndex,assets:assetsIndex,activation:false};manifestDigest=(await bundle.publish(".w1-recovery/manifest.json",(async function*(){yield Buffer.from(`${recoveryJson(manifest)}
@@ -1,3 +1,3 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{MAX_WORKSPACE_DISPLAY_NAME_LENGTH,WorkspaceDisplayNameValidationError,WorkspaceRegistrationStore,WorkspaceRegistrationStoreCommittedError,WorkspaceRegistrationStoreError,WorkspaceRegistrationStoreLimitError,WorkspaceRegistrationStoreTooLargeError,getWorkspaceRegistrationStorePath,normalizeWorkspaceDisplayName,workspaceRegistrationId,workspaceRegistrationScopeHash}from"./chunk-W66WWTOP.js";import"./chunk-L5UULTGF.js";import"./chunk-PTHIQ7ZN.js";import"./chunk-IDXJIDME.js";import"./chunk-QXQGUM3Y.js";import"./chunk-YIW3H46P.js";import"./chunk-VKDAXTCZ.js";import"./chunk-KBWJGX7I.js";export{MAX_WORKSPACE_DISPLAY_NAME_LENGTH,WorkspaceDisplayNameValidationError,WorkspaceRegistrationStore,WorkspaceRegistrationStoreCommittedError,WorkspaceRegistrationStoreError,WorkspaceRegistrationStoreLimitError,WorkspaceRegistrationStoreTooLargeError,getWorkspaceRegistrationStorePath,normalizeWorkspaceDisplayName,workspaceRegistrationId,workspaceRegistrationScopeHash};
3
+ import{MAX_WORKSPACE_DISPLAY_NAME_LENGTH,WorkspaceDisplayNameValidationError,WorkspaceRegistrationStore,WorkspaceRegistrationStoreCommittedError,WorkspaceRegistrationStoreError,WorkspaceRegistrationStoreLimitError,WorkspaceRegistrationStoreTooLargeError,getWorkspaceRegistrationStorePath,normalizeWorkspaceDisplayName,workspaceRegistrationId,workspaceRegistrationScopeHash}from"./chunk-P7NHWX27.js";import"./chunk-L5UULTGF.js";import"./chunk-PTHIQ7ZN.js";import"./chunk-IDXJIDME.js";import"./chunk-QXQGUM3Y.js";import"./chunk-YIW3H46P.js";import"./chunk-VKDAXTCZ.js";import"./chunk-KBWJGX7I.js";export{MAX_WORKSPACE_DISPLAY_NAME_LENGTH,WorkspaceDisplayNameValidationError,WorkspaceRegistrationStore,WorkspaceRegistrationStoreCommittedError,WorkspaceRegistrationStoreError,WorkspaceRegistrationStoreLimitError,WorkspaceRegistrationStoreTooLargeError,getWorkspaceRegistrationStorePath,normalizeWorkspaceDisplayName,workspaceRegistrationId,workspaceRegistrationScopeHash};
@@ -1,3 +1,3 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{WorkspaceGenerationClosedError,createSingleWorkspaceRegistry,createWorkspaceGenerationGuard,createWorkspaceRegistry,createWorkspaceSessionOwnerIndex}from"./chunk-4IYW6IXD.js";import"./chunk-M5KJJE2X.js";import"./chunk-OGFBP4OQ.js";import"./chunk-ASTRUET5.js";import"./chunk-BCI62WSL.js";import"./chunk-BWQ5AIEA.js";import"./chunk-WDR5XP3Y.js";import"./chunk-IFPLGH5C.js";import"./chunk-WBDNGVHU.js";import"./chunk-BC4C6F32.js";import"./chunk-2QYDBHYZ.js";import"./chunk-LUDNUVSA.js";import"./chunk-VTZZXEWA.js";import"./chunk-L5UULTGF.js";import"./chunk-3KZHPZVZ.js";import"./chunk-CFTFKWPW.js";import"./chunk-NIEO2TBE.js";import"./chunk-WSOEJTOC.js";import"./chunk-OU7CEG7Q.js";import"./chunk-QS2ZMQIS.js";import"./chunk-S7IKHQ6I.js";import"./chunk-PAD5GPDY.js";import"./chunk-MD3ZEOBX.js";import"./chunk-SSYS5YN5.js";import"./chunk-X5QSFJVS.js";import"./chunk-OMDTFGTX.js";import"./chunk-32XHDDIA.js";import"./chunk-46VUDNCL.js";import"./chunk-MKH3EH7O.js";import"./chunk-FKZ46GKL.js";import"./chunk-SP6CQ3MO.js";import"./chunk-HW6SU6MX.js";import"./chunk-ZHHFNZ5J.js";import"./chunk-AKWYMQKU.js";import"./chunk-MZUOREFD.js";import"./chunk-CF6SZJNP.js";import"./chunk-7XZVMIY5.js";import"./chunk-CGDFZEER.js";import"./chunk-ZZJXFLVM.js";import"./chunk-RKDS7A4H.js";import"./chunk-KZNYALFU.js";import"./chunk-IV3HAIUN.js";import"./chunk-XFMPZINJ.js";import"./chunk-DECUAM3U.js";import"./chunk-QX7W2HY7.js";import"./chunk-HN5UYLPU.js";import"./chunk-PGRN3GZY.js";import"./chunk-HTW7PYHK.js";import"./chunk-AMGUAA4G.js";import"./chunk-YFTVFH2A.js";import"./chunk-ZBHL2CXR.js";import"./chunk-NIOS3B3V.js";import"./chunk-2JGTWRZJ.js";import"./chunk-R2EHHA2C.js";import"./chunk-YK7NDQKM.js";import"./chunk-ZLZF2ZDD.js";import"./chunk-OMSVOFTC.js";import"./chunk-PHIPLV2I.js";import"./chunk-ZOTKZI2P.js";import"./chunk-A6G5TAIF.js";import"./chunk-YVBHCSZD.js";import"./chunk-FIXDX63I.js";import"./chunk-T7CHK6C2.js";import"./chunk-PT7NZBDY.js";import"./chunk-TWP72VRH.js";import"./chunk-UYEWRLGD.js";import"./chunk-QVPT37XZ.js";import"./chunk-YVD4O5ZB.js";import"./chunk-T6W33SET.js";import"./chunk-WK2IBT6D.js";import"./chunk-QZV4PFQK.js";import"./chunk-ILECDNJX.js";import"./chunk-QXQGUM3Y.js";import"./chunk-UQ7IROJH.js";import"./chunk-SZCBUCNH.js";import"./chunk-BEKROCWN.js";import"./chunk-5SUFJTQQ.js";import"./chunk-BYU42MLK.js";import"./chunk-JWQXU3SR.js";import"./chunk-5LZ2DPLH.js";import"./chunk-XQJOZDV7.js";import"./chunk-CV2UAEZA.js";import"./chunk-FUBDS3AV.js";import"./chunk-HW6AWS7W.js";import"./chunk-KLC3OD2M.js";import"./chunk-Q5IZXKUJ.js";import"./chunk-G5PYYZMM.js";import"./chunk-BG67XABA.js";import"./chunk-OBOU4ZZM.js";import"./chunk-D7XCQWP2.js";import"./chunk-AE5OMKRY.js";import"./chunk-OBV7RNHV.js";import"./chunk-7CQMWEMY.js";import"./chunk-GOZYWU4B.js";import"./chunk-OUC3WICA.js";import"./chunk-JZK2WGXA.js";import"./chunk-MPHSE7M4.js";import"./chunk-S2ZKZXHX.js";import"./chunk-7UK4WJWS.js";import"./chunk-4GP3PH7Z.js";import"./chunk-4QQKOW5M.js";import"./chunk-OV3EBH6J.js";import"./chunk-EBMCWXGZ.js";import"./chunk-XZTE4YTN.js";import"./chunk-LSASUDF2.js";import"./chunk-2V5EKGDK.js";import"./chunk-MOKVM4PT.js";import"./chunk-YIW3H46P.js";import"./chunk-EOMRLUNZ.js";import"./chunk-4ZRCV3JY.js";import"./chunk-TL6MLBXR.js";import"./chunk-NMY3PYNO.js";import"./chunk-YGLM5XPP.js";import"./chunk-WGNF7FPC.js";import"./chunk-4NPYOXJO.js";import"./chunk-MWGB5RCF.js";import"./chunk-SCD5TUBG.js";import"./chunk-NTRFETZB.js";import"./chunk-TL3SF2GA.js";import"./chunk-LMJPU2JM.js";import"./chunk-VFB6Q74I.js";import"./chunk-4JNHUZ7M.js";import"./chunk-SW54YEPK.js";import"./chunk-ZCRL73DT.js";import"./chunk-A6LT3FIJ.js";import"./chunk-S6RXVOY6.js";import"./chunk-YZFNBUKG.js";import"./chunk-AGEDDL7Z.js";import"./chunk-2NJJHZ52.js";import"./chunk-BN4FIQ77.js";import"./chunk-X64RXJQQ.js";import"./chunk-HETUGUHE.js";import"./chunk-ET2Z7ZGF.js";import"./chunk-XFPYXD2P.js";import"./chunk-3YWXKSOI.js";import"./chunk-5CWTKFI4.js";import"./chunk-C4MVD5OI.js";import"./chunk-Z2W7S4O4.js";import"./chunk-476F6QIM.js";import"./chunk-4R67LXKL.js";import"./chunk-FQRF6B65.js";import"./chunk-ZWPSBU7K.js";import"./chunk-UQFTXKEB.js";import"./chunk-HDGTWJ24.js";import"./chunk-W5NWIGKO.js";import"./chunk-KVA6DHHF.js";import"./chunk-PWOQASXT.js";import"./chunk-K7JCVESI.js";import"./chunk-Y6HHV4LC.js";import"./chunk-RP57XAJ2.js";import"./chunk-Z6AR5XE5.js";import"./chunk-7DOOXUDG.js";import"./chunk-77V43YOE.js";import"./chunk-7U7CWMP7.js";import"./chunk-EFTJIDS3.js";import"./chunk-4DIWAQ5G.js";import"./chunk-Q6UAOTP3.js";import"./chunk-AFO5ER23.js";import"./chunk-GOR7FFVE.js";import"./chunk-4ZBZL23U.js";import"./chunk-BMHYEQTI.js";import"./chunk-ZZZAYAJW.js";import"./chunk-XMANRGPK.js";import"./chunk-3XVPZY7X.js";import"./chunk-KQX4H2D3.js";import"./chunk-URNNJMIC.js";import"./chunk-GU22I6TY.js";import"./chunk-YEYW7PPR.js";import"./chunk-DBRQGEEI.js";import"./chunk-B3ZFUGTC.js";import"./chunk-IRINPFG7.js";import"./chunk-6GTPLW7K.js";import"./chunk-NGVRCUYD.js";import"./chunk-5DTFN37U.js";import"./chunk-2YUBAWQ6.js";import"./chunk-O5EKX7LG.js";import"./chunk-TM6ZCBR7.js";import"./chunk-SVAPAMMG.js";import"./chunk-3KUHQGOS.js";import"./chunk-I6S7NGX3.js";import"./chunk-SBZFGYYS.js";import"./chunk-JAUJI56S.js";import"./chunk-I4H7NUVP.js";import"./chunk-EPODBRBP.js";import"./chunk-OKN3Z5C5.js";import"./chunk-XYB7GC5U.js";import"./chunk-2UOMCYQG.js";import"./chunk-I7L2TX4M.js";import"./chunk-MK3OONRA.js";import"./chunk-COGTQ5KZ.js";import"./chunk-VKDAXTCZ.js";import"./chunk-KBWJGX7I.js";export{WorkspaceGenerationClosedError,createSingleWorkspaceRegistry,createWorkspaceGenerationGuard,createWorkspaceRegistry,createWorkspaceSessionOwnerIndex};
3
+ import{WorkspaceGenerationClosedError,createSingleWorkspaceRegistry,createWorkspaceGenerationGuard,createWorkspaceRegistry,createWorkspaceSessionOwnerIndex}from"./chunk-4IYW6IXD.js";import"./chunk-M5KJJE2X.js";import"./chunk-OGFBP4OQ.js";import"./chunk-ASTRUET5.js";import"./chunk-236DHGNH.js";import"./chunk-BWQ5AIEA.js";import"./chunk-WDR5XP3Y.js";import"./chunk-IFPLGH5C.js";import"./chunk-WBDNGVHU.js";import"./chunk-BC4C6F32.js";import"./chunk-2QYDBHYZ.js";import"./chunk-LUDNUVSA.js";import"./chunk-VTZZXEWA.js";import"./chunk-L5UULTGF.js";import"./chunk-3KZHPZVZ.js";import"./chunk-CFTFKWPW.js";import"./chunk-NIEO2TBE.js";import"./chunk-WSOEJTOC.js";import"./chunk-G2LTZU67.js";import"./chunk-QS2ZMQIS.js";import"./chunk-S7IKHQ6I.js";import"./chunk-PAD5GPDY.js";import"./chunk-MD3ZEOBX.js";import"./chunk-SSYS5YN5.js";import"./chunk-X5QSFJVS.js";import"./chunk-OMDTFGTX.js";import"./chunk-3TTHYXT3.js";import"./chunk-46VUDNCL.js";import"./chunk-MKH3EH7O.js";import"./chunk-VC3JJL7E.js";import"./chunk-VKWVIWLK.js";import"./chunk-HW6SU6MX.js";import"./chunk-ZHHFNZ5J.js";import"./chunk-AKWYMQKU.js";import"./chunk-MZUOREFD.js";import"./chunk-DSKA3P2C.js";import"./chunk-7XZVMIY5.js";import"./chunk-4HSISRRA.js";import"./chunk-ZZJXFLVM.js";import"./chunk-RKDS7A4H.js";import"./chunk-QF22ILPV.js";import"./chunk-IV3HAIUN.js";import"./chunk-XFMPZINJ.js";import"./chunk-DECUAM3U.js";import"./chunk-QX7W2HY7.js";import"./chunk-HN5UYLPU.js";import"./chunk-PGRN3GZY.js";import"./chunk-HTW7PYHK.js";import"./chunk-AMGUAA4G.js";import"./chunk-YFTVFH2A.js";import"./chunk-ZBHL2CXR.js";import"./chunk-NIOS3B3V.js";import"./chunk-7XQ5D34E.js";import"./chunk-R2EHHA2C.js";import"./chunk-YK7NDQKM.js";import"./chunk-ZLZF2ZDD.js";import"./chunk-OMSVOFTC.js";import"./chunk-PHIPLV2I.js";import"./chunk-ZOTKZI2P.js";import"./chunk-A6G5TAIF.js";import"./chunk-YVBHCSZD.js";import"./chunk-FIXDX63I.js";import"./chunk-T7CHK6C2.js";import"./chunk-PT7NZBDY.js";import"./chunk-TWP72VRH.js";import"./chunk-UYEWRLGD.js";import"./chunk-QVPT37XZ.js";import"./chunk-YVD4O5ZB.js";import"./chunk-T6W33SET.js";import"./chunk-WK2IBT6D.js";import"./chunk-QZV4PFQK.js";import"./chunk-ILECDNJX.js";import"./chunk-QXQGUM3Y.js";import"./chunk-UQ7IROJH.js";import"./chunk-SZCBUCNH.js";import"./chunk-BEKROCWN.js";import"./chunk-5SUFJTQQ.js";import"./chunk-BYU42MLK.js";import"./chunk-JWQXU3SR.js";import"./chunk-5LZ2DPLH.js";import"./chunk-XQJOZDV7.js";import"./chunk-CV2UAEZA.js";import"./chunk-FUBDS3AV.js";import"./chunk-HW6AWS7W.js";import"./chunk-KLC3OD2M.js";import"./chunk-Q5IZXKUJ.js";import"./chunk-G5PYYZMM.js";import"./chunk-BG67XABA.js";import"./chunk-OBOU4ZZM.js";import"./chunk-D7XCQWP2.js";import"./chunk-AE5OMKRY.js";import"./chunk-OBV7RNHV.js";import"./chunk-7CQMWEMY.js";import"./chunk-GOZYWU4B.js";import"./chunk-OUC3WICA.js";import"./chunk-JZK2WGXA.js";import"./chunk-MPHSE7M4.js";import"./chunk-S2ZKZXHX.js";import"./chunk-7UK4WJWS.js";import"./chunk-4GP3PH7Z.js";import"./chunk-4QQKOW5M.js";import"./chunk-OV3EBH6J.js";import"./chunk-EBMCWXGZ.js";import"./chunk-XZTE4YTN.js";import"./chunk-LSASUDF2.js";import"./chunk-2V5EKGDK.js";import"./chunk-MOKVM4PT.js";import"./chunk-YIW3H46P.js";import"./chunk-EOMRLUNZ.js";import"./chunk-4ZRCV3JY.js";import"./chunk-TL6MLBXR.js";import"./chunk-NMY3PYNO.js";import"./chunk-YGLM5XPP.js";import"./chunk-WGNF7FPC.js";import"./chunk-4NPYOXJO.js";import"./chunk-MWGB5RCF.js";import"./chunk-SCD5TUBG.js";import"./chunk-NTRFETZB.js";import"./chunk-TL3SF2GA.js";import"./chunk-LMJPU2JM.js";import"./chunk-VFB6Q74I.js";import"./chunk-4JNHUZ7M.js";import"./chunk-SW54YEPK.js";import"./chunk-ZCRL73DT.js";import"./chunk-A6LT3FIJ.js";import"./chunk-S6RXVOY6.js";import"./chunk-YZFNBUKG.js";import"./chunk-AGEDDL7Z.js";import"./chunk-2NJJHZ52.js";import"./chunk-BN4FIQ77.js";import"./chunk-X64RXJQQ.js";import"./chunk-HETUGUHE.js";import"./chunk-ET2Z7ZGF.js";import"./chunk-XFPYXD2P.js";import"./chunk-3YWXKSOI.js";import"./chunk-5CWTKFI4.js";import"./chunk-C4MVD5OI.js";import"./chunk-Z2W7S4O4.js";import"./chunk-476F6QIM.js";import"./chunk-4R67LXKL.js";import"./chunk-FQRF6B65.js";import"./chunk-ZWPSBU7K.js";import"./chunk-UQFTXKEB.js";import"./chunk-HDGTWJ24.js";import"./chunk-W5NWIGKO.js";import"./chunk-KVA6DHHF.js";import"./chunk-PWOQASXT.js";import"./chunk-K7JCVESI.js";import"./chunk-Y6HHV4LC.js";import"./chunk-RP57XAJ2.js";import"./chunk-Z6AR5XE5.js";import"./chunk-7DOOXUDG.js";import"./chunk-77V43YOE.js";import"./chunk-7U7CWMP7.js";import"./chunk-EFTJIDS3.js";import"./chunk-4DIWAQ5G.js";import"./chunk-Q6UAOTP3.js";import"./chunk-HQZTAA2U.js";import"./chunk-GOR7FFVE.js";import"./chunk-4ZBZL23U.js";import"./chunk-BMHYEQTI.js";import"./chunk-ZZZAYAJW.js";import"./chunk-XMANRGPK.js";import"./chunk-3XVPZY7X.js";import"./chunk-KQX4H2D3.js";import"./chunk-URNNJMIC.js";import"./chunk-GU22I6TY.js";import"./chunk-YEYW7PPR.js";import"./chunk-DBRQGEEI.js";import"./chunk-B3ZFUGTC.js";import"./chunk-IRINPFG7.js";import"./chunk-6GTPLW7K.js";import"./chunk-NGVRCUYD.js";import"./chunk-5DTFN37U.js";import"./chunk-2YUBAWQ6.js";import"./chunk-O5EKX7LG.js";import"./chunk-TM6ZCBR7.js";import"./chunk-SVAPAMMG.js";import"./chunk-3KUHQGOS.js";import"./chunk-I6S7NGX3.js";import"./chunk-SBZFGYYS.js";import"./chunk-JAUJI56S.js";import"./chunk-I4H7NUVP.js";import"./chunk-EPODBRBP.js";import"./chunk-OKN3Z5C5.js";import"./chunk-XYB7GC5U.js";import"./chunk-2UOMCYQG.js";import"./chunk-I7L2TX4M.js";import"./chunk-MK3OONRA.js";import"./chunk-COGTQ5KZ.js";import"./chunk-VKDAXTCZ.js";import"./chunk-KBWJGX7I.js";export{WorkspaceGenerationClosedError,createSingleWorkspaceRegistry,createWorkspaceGenerationGuard,createWorkspaceRegistry,createWorkspaceSessionOwnerIndex};