@markusylisiurunen/tau 0.3.88 → 0.3.90

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/dist/core/code_mode/models.js +4 -2
  2. package/dist/core/code_mode/models.js.map +1 -1
  3. package/dist/core/diff_review/snapshot.js +1 -1
  4. package/dist/core/diff_review/snapshot.js.map +1 -1
  5. package/dist/core/diff_review/tool.js +17 -1
  6. package/dist/core/diff_review/tool.js.map +1 -1
  7. package/dist/core/models/openrouter.js +5 -5
  8. package/dist/core/models/openrouter.js.map +1 -1
  9. package/dist/core/models/openrouter_media.js +10 -1
  10. package/dist/core/models/openrouter_media.js.map +1 -1
  11. package/dist/core/static/code_mode/mcp/documentation.md +77 -0
  12. package/dist/core/static/tau_docs/credentials.md +4 -1
  13. package/dist/core/static/tau_docs/node-sdk.md +2 -0
  14. package/dist/core/static/tau_docs/openrouter.md +6 -2
  15. package/dist/core/static/tau_docs/ownership-and-scope.md +2 -0
  16. package/dist/core/static/tau_docs/security.md +2 -0
  17. package/dist/core/static/tau_docs/session-protocol-methods.md +2 -1
  18. package/dist/core/static/tau_docs/subagents.md +54 -8
  19. package/dist/core/static/tau_docs/tui.md +2 -0
  20. package/dist/core/subagents/agent_supervisor.js +158 -37
  21. package/dist/core/subagents/agent_supervisor.js.map +1 -1
  22. package/dist/core/subagents/claude_code_models.js +11 -0
  23. package/dist/core/subagents/claude_code_models.js.map +1 -0
  24. package/dist/core/subagents/claude_code_protocol.js +44 -0
  25. package/dist/core/subagents/claude_code_protocol.js.map +1 -0
  26. package/dist/core/subagents/claude_code_runner.js +226 -0
  27. package/dist/core/subagents/claude_code_runner.js.map +1 -0
  28. package/dist/core/subagents/claude_code_runner.mjs +176 -0
  29. package/dist/core/subagents/claude_code_runtime.js +145 -0
  30. package/dist/core/subagents/claude_code_runtime.js.map +1 -0
  31. package/dist/core/subagents/format.js +3 -1
  32. package/dist/core/subagents/format.js.map +1 -1
  33. package/dist/core/subagents/launch_model.js +23 -7
  34. package/dist/core/subagents/launch_model.js.map +1 -1
  35. package/dist/core/subagents/registry.js +10 -1
  36. package/dist/core/subagents/registry.js.map +1 -1
  37. package/dist/core/subagents/types.js.map +1 -1
  38. package/dist/core/tool/openrouter.js +2 -1
  39. package/dist/core/tool/openrouter.js.map +1 -1
  40. package/dist/core/tools/spawn_agent.js +31 -26
  41. package/dist/core/tools/spawn_agent.js.map +1 -1
  42. package/dist/core/version.js +2 -2
  43. package/dist/diff_tool/app/dist/assets/andromeeda-BJLMrMlp.js +1 -0
  44. package/dist/diff_tool/app/dist/assets/angular-html-DbefOYVd.js +1 -0
  45. package/dist/diff_tool/app/dist/assets/{angular-ts-Be7v5l9m.js → angular-ts-CvKvjrwq.js} +1 -1
  46. package/dist/diff_tool/app/dist/assets/{apl-ViTyH3GA.js → apl-oXhhIufm.js} +1 -1
  47. package/dist/diff_tool/app/dist/assets/{astro-MH_YPNQ5.js → astro-BSfvy1I6.js} +1 -1
  48. package/dist/diff_tool/app/dist/assets/aurora-x-BCChoRpm.js +1 -0
  49. package/dist/diff_tool/app/dist/assets/ayu-dark-DzFZPuMV.js +1 -0
  50. package/dist/diff_tool/app/dist/assets/ayu-light-DSkcX_XD.js +1 -0
  51. package/dist/diff_tool/app/dist/assets/ayu-mirage-DSve0zuE.js +1 -0
  52. package/dist/diff_tool/app/dist/assets/{blade-BTHr6rPo.js → blade-BPJIqBv7.js} +1 -1
  53. package/dist/diff_tool/app/dist/assets/c-NZxYjD9R.js +1 -0
  54. package/dist/diff_tool/app/dist/assets/catppuccin-frappe-DbLkF0J2.js +1 -0
  55. package/dist/diff_tool/app/dist/assets/catppuccin-latte-b6208YQK.js +1 -0
  56. package/dist/diff_tool/app/dist/assets/catppuccin-macchiato-CNNBbV1L.js +1 -0
  57. package/dist/diff_tool/app/dist/assets/catppuccin-mocha-DHkNF0Mp.js +1 -0
  58. package/dist/diff_tool/app/dist/assets/{chapel-BOjP8ed5.js → chapel-C_yIxKK6.js} +1 -1
  59. package/dist/diff_tool/app/dist/assets/{cobol-D31khKkM.js → cobol-DJ9emjzS.js} +1 -1
  60. package/dist/diff_tool/app/dist/assets/{coffee-DWazuGJd.js → coffee-DCXaW2x4.js} +1 -1
  61. package/dist/diff_tool/app/dist/assets/core-DVIaxTZj.js +1 -0
  62. package/dist/diff_tool/app/dist/assets/cpp-Y8tBED_W.js +1 -0
  63. package/dist/diff_tool/app/dist/assets/{crystal-Cg6VJOYc.js → crystal-BGOEqbwF.js} +1 -1
  64. package/dist/diff_tool/app/dist/assets/css-28T6ABEL.js +1 -0
  65. package/dist/diff_tool/app/dist/assets/dark-plus-BVZ_4wTZ.js +1 -0
  66. package/dist/diff_tool/app/dist/assets/dracula-BoZgXveB.js +1 -0
  67. package/dist/diff_tool/app/dist/assets/dracula-soft-D-Kgh5gw.js +1 -0
  68. package/dist/diff_tool/app/dist/assets/{edge-CkEOaUM3.js → edge-CQJH3_5t.js} +1 -1
  69. package/dist/diff_tool/app/dist/assets/{elixir-Czy3hX4S.js → elixir-BQwyj_cP.js} +1 -1
  70. package/dist/diff_tool/app/dist/assets/{elm-CVW_nMpy.js → elm-x2IF6yQx.js} +1 -1
  71. package/dist/diff_tool/app/dist/assets/engine-javascript-DKxkqixV.js +141 -0
  72. package/dist/diff_tool/app/dist/assets/{erb-CoX4XK-D.js → erb-DZNowPeY.js} +1 -1
  73. package/dist/diff_tool/app/dist/assets/everforest-dark-Y6tr-2zD.js +1 -0
  74. package/dist/diff_tool/app/dist/assets/everforest-light-CA0Ol4Qu.js +1 -0
  75. package/dist/diff_tool/app/dist/assets/{git-rebase-C4iJkeqt.js → git-rebase-WKrMcflD.js} +1 -1
  76. package/dist/diff_tool/app/dist/assets/github-dark-C895GGrm.js +1 -0
  77. package/dist/diff_tool/app/dist/assets/github-dark-default-adAWTKmX.js +1 -0
  78. package/dist/diff_tool/app/dist/assets/github-dark-dimmed-jPx1V1fR.js +1 -0
  79. package/dist/diff_tool/app/dist/assets/github-dark-high-contrast-UN5YjL_Z.js +1 -0
  80. package/dist/diff_tool/app/dist/assets/github-light-B4HDwToD.js +1 -0
  81. package/dist/diff_tool/app/dist/assets/github-light-default-CfC59JYV.js +1 -0
  82. package/dist/diff_tool/app/dist/assets/github-light-high-contrast-C3edEHcK.js +1 -0
  83. package/dist/diff_tool/app/dist/assets/{glimmer-js-D7nc0vBC.js → glimmer-js-jxYiQSCJ.js} +1 -1
  84. package/dist/diff_tool/app/dist/assets/{glimmer-ts-mQx9cDM0.js → glimmer-ts-DoFbDDKI.js} +1 -1
  85. package/dist/diff_tool/app/dist/assets/glsl-DBf8kQxW.js +1 -0
  86. package/dist/diff_tool/app/dist/assets/graphql-CA_BX0d6.js +1 -0
  87. package/dist/diff_tool/app/dist/assets/gruvbox-dark-hard-BdGOuxq8.js +1 -0
  88. package/dist/diff_tool/app/dist/assets/gruvbox-dark-medium-CmygtSMi.js +1 -0
  89. package/dist/diff_tool/app/dist/assets/gruvbox-dark-soft-BJH4XuY9.js +1 -0
  90. package/dist/diff_tool/app/dist/assets/gruvbox-light-hard-BkSILF4E.js +1 -0
  91. package/dist/diff_tool/app/dist/assets/gruvbox-light-medium-DiZUfgdz.js +1 -0
  92. package/dist/diff_tool/app/dist/assets/gruvbox-light-soft-CRCTnbIj.js +1 -0
  93. package/dist/diff_tool/app/dist/assets/{hack-BU-2JcaJ.js → hack-gtYgwEcA.js} +1 -1
  94. package/dist/diff_tool/app/dist/assets/haml-MvCfcv0X.js +1 -0
  95. package/dist/diff_tool/app/dist/assets/{handlebars-OmqCwMQx.js → handlebars-Bumg1nhL.js} +1 -1
  96. package/dist/diff_tool/app/dist/assets/highlights-BKf96Xcr.js +3 -0
  97. package/dist/diff_tool/app/dist/assets/horizon-DUI96lQn.js +1 -0
  98. package/dist/diff_tool/app/dist/assets/horizon-bright-COxh1lHf.js +1 -0
  99. package/dist/diff_tool/app/dist/assets/houston-DduE73P7.js +1 -0
  100. package/dist/diff_tool/app/dist/assets/{html-derivative-ZrmCX6Fo.js → html-derivative-zG1x8fML.js} +1 -1
  101. package/dist/diff_tool/app/dist/assets/html-xg5kwvwR.js +1 -0
  102. package/dist/diff_tool/app/dist/assets/{http-J3E0mLZO.js → http-Dt-6KBlS.js} +1 -1
  103. package/dist/diff_tool/app/dist/assets/{hurl-B30CnAJ8.js → hurl-DUghBkZb.js} +1 -1
  104. package/dist/diff_tool/app/dist/assets/index-DKDNDuYd.js +202 -0
  105. package/dist/diff_tool/app/dist/assets/java-DmZF03nx.js +1 -0
  106. package/dist/diff_tool/app/dist/assets/javascript-DF6j-435.js +1 -0
  107. package/dist/diff_tool/app/dist/assets/{jinja-Diu6P0Bc.js → jinja-B2nuVHF1.js} +1 -1
  108. package/dist/diff_tool/app/dist/assets/{jison-BZQ7ygp6.js → jison-CZsiyrSO.js} +1 -1
  109. package/dist/diff_tool/app/dist/assets/json-42mipy3Q.js +1 -0
  110. package/dist/diff_tool/app/dist/assets/jsx-vimVRUsC.js +1 -0
  111. package/dist/diff_tool/app/dist/assets/{julia-Bg4s-EyP.js → julia-CRQfdd-b.js} +1 -1
  112. package/dist/diff_tool/app/dist/assets/{just-Tl9ujeOY.js → just-CePkuXj4.js} +1 -1
  113. package/dist/diff_tool/app/dist/assets/kanagawa-dragon-BHDhSKDf.js +1 -0
  114. package/dist/diff_tool/app/dist/assets/kanagawa-lotus-NJjGXXql.js +1 -0
  115. package/dist/diff_tool/app/dist/assets/kanagawa-wave-DsGe2Uqk.js +1 -0
  116. package/dist/diff_tool/app/dist/assets/langs-D3RgqfNW.js +1 -0
  117. package/dist/diff_tool/app/dist/assets/laserwave-DYV0fvJ_.js +1 -0
  118. package/dist/diff_tool/app/dist/assets/{latex-DB-cAndI.js → latex-CdMZza0I.js} +1 -1
  119. package/dist/diff_tool/app/dist/assets/lib-BFrBoEqQ.js +9 -0
  120. package/dist/diff_tool/app/dist/assets/light-plus-FTnIShls.js +1 -0
  121. package/dist/diff_tool/app/dist/assets/{liquid-B4gSehXt.js → liquid-DBxKJhTy.js} +1 -1
  122. package/dist/diff_tool/app/dist/assets/loader-DrMMfKhl.js +1 -0
  123. package/dist/diff_tool/app/dist/assets/lua-CxMwO_Mz.js +1 -0
  124. package/dist/diff_tool/app/dist/assets/{marko-C86diGdv.js → marko-CjRgUMoV.js} +1 -1
  125. package/dist/diff_tool/app/dist/assets/material-theme-IcIb8QNx.js +1 -0
  126. package/dist/diff_tool/app/dist/assets/material-theme-darker-B_f2vxdL.js +1 -0
  127. package/dist/diff_tool/app/dist/assets/material-theme-lighter-CR2Q-4Hp.js +1 -0
  128. package/dist/diff_tool/app/dist/assets/material-theme-ocean-BX6hAJ_y.js +1 -0
  129. package/dist/diff_tool/app/dist/assets/material-theme-palenight-B6DWAotd.js +1 -0
  130. package/dist/diff_tool/app/dist/assets/{mdc-BO2FvtJH.js → mdc-AoEkrSRV.js} +1 -1
  131. package/dist/diff_tool/app/dist/assets/min-dark-DECtZcqS.js +1 -0
  132. package/dist/diff_tool/app/dist/assets/min-light-qRIVcaqf.js +1 -0
  133. package/dist/diff_tool/app/dist/assets/monokai-CLmrJ-8t.js +1 -0
  134. package/dist/diff_tool/app/dist/assets/{nginx-CFhFHcIt.js → nginx-BiHSRcGz.js} +1 -1
  135. package/dist/diff_tool/app/dist/assets/night-owl-eR4AsyAP.js +1 -0
  136. package/dist/diff_tool/app/dist/assets/night-owl-light-C74n5ti-.js +1 -0
  137. package/dist/diff_tool/app/dist/assets/{nim-xj-jYFW_.js → nim-CdOSsVN7.js} +1 -1
  138. package/dist/diff_tool/app/dist/assets/nord-D4wy7NEP.js +1 -0
  139. package/dist/diff_tool/app/dist/assets/one-dark-pro-28TLzoS8.js +1 -0
  140. package/dist/diff_tool/app/dist/assets/one-light-C0UY_Fh7.js +1 -0
  141. package/dist/diff_tool/app/dist/assets/{org-C13GmC5V.js → org-wLn5ov6u.js} +1 -1
  142. package/dist/diff_tool/app/dist/assets/{perl-rQ_kENHN.js → perl-D1d-UYsx.js} +1 -1
  143. package/dist/diff_tool/app/dist/assets/{php--ah40kY3.js → php-BXtg-e-b.js} +1 -1
  144. package/dist/diff_tool/app/dist/assets/pierre-dark-fPlffE7i.js +1 -0
  145. package/dist/diff_tool/app/dist/assets/pierre-dark-protanopia-deuteranopia-BmjibgrW.js +1 -0
  146. package/dist/diff_tool/app/dist/assets/pierre-dark-soft-Cng2SYKc.js +1 -0
  147. package/dist/diff_tool/app/dist/assets/pierre-dark-tritanopia-DneQ5i7L.js +1 -0
  148. package/dist/diff_tool/app/dist/assets/pierre-dark-vibrant-BUK9Y-N_.js +1 -0
  149. package/dist/diff_tool/app/dist/assets/pierre-light-BvcXQJIj.js +1 -0
  150. package/dist/diff_tool/app/dist/assets/pierre-light-protanopia-deuteranopia-Cd5nk0bp.js +1 -0
  151. package/dist/diff_tool/app/dist/assets/pierre-light-soft-BvU23vks.js +1 -0
  152. package/dist/diff_tool/app/dist/assets/pierre-light-tritanopia-BSHccQzI.js +1 -0
  153. package/dist/diff_tool/app/dist/assets/pierre-light-vibrant-BgMZEwQI.js +1 -0
  154. package/dist/diff_tool/app/dist/assets/plastic-B2V_PDVk.js +1 -0
  155. package/dist/diff_tool/app/dist/assets/poimandres-DB9-pI6r.js +1 -0
  156. package/dist/diff_tool/app/dist/assets/preload-helper-CRzLMJPS.js +1 -0
  157. package/dist/diff_tool/app/dist/assets/{pug-DLBf55FZ.js → pug-CueMe1Oe.js} +1 -1
  158. package/dist/diff_tool/app/dist/assets/{qml-BmywcKuq.js → qml-BQ_VstfA.js} +1 -1
  159. package/dist/diff_tool/app/dist/assets/r-C0eHyz6n.js +1 -0
  160. package/dist/diff_tool/app/dist/assets/{razor-DFgjiScD.js → razor-DKbaSFqp.js} +1 -1
  161. package/dist/diff_tool/app/dist/assets/red-CqYzoXtd.js +1 -0
  162. package/dist/diff_tool/app/dist/assets/regexp-CCN76yWg.js +1 -0
  163. package/dist/diff_tool/app/dist/assets/rolldown-runtime-XKyaHtl9.js +1 -0
  164. package/dist/diff_tool/app/dist/assets/rose-pine-C3zjVKxG.js +1 -0
  165. package/dist/diff_tool/app/dist/assets/rose-pine-dawn-C72QYfqa.js +1 -0
  166. package/dist/diff_tool/app/dist/assets/rose-pine-moon-CSM8ewhO.js +1 -0
  167. package/dist/diff_tool/app/dist/assets/{rst-D3bgw8s-.js → rst-D9EQsBp-.js} +1 -1
  168. package/dist/diff_tool/app/dist/assets/{ruby-CvvPNPNu.js → ruby-DAY5ZYSg.js} +1 -1
  169. package/dist/diff_tool/app/dist/assets/{sas-DboUhRut.js → sas-DC4F9y1U.js} +1 -1
  170. package/dist/diff_tool/app/dist/assets/scss-CNJYx4G4.js +1 -0
  171. package/dist/diff_tool/app/dist/assets/shellscript-DG0er0mb.js +1 -0
  172. package/dist/diff_tool/app/dist/assets/{shellsession-B8hgVli7.js → shellsession-DZdJuHd_.js} +1 -1
  173. package/dist/diff_tool/app/dist/assets/shiki-DmA--L4w.js +2 -0
  174. package/dist/diff_tool/app/dist/assets/slack-dark-Dtzi51su.js +1 -0
  175. package/dist/diff_tool/app/dist/assets/slack-ochin-Bb7oPExa.js +1 -0
  176. package/dist/diff_tool/app/dist/assets/snazzy-light-DXgiwzKu.js +1 -0
  177. package/dist/diff_tool/app/dist/assets/solarized-dark-BKOT3ICq.js +1 -0
  178. package/dist/diff_tool/app/dist/assets/solarized-light--Lk5pOfE.js +1 -0
  179. package/dist/diff_tool/app/dist/assets/{soy-BN8bv00M.js → soy-DBgMV_3R.js} +1 -1
  180. package/dist/diff_tool/app/dist/assets/sql-BJYzzGx2.js +1 -0
  181. package/dist/diff_tool/app/dist/assets/{stata-Bo21VCmU.js → stata-CANxZdMU.js} +1 -1
  182. package/dist/diff_tool/app/dist/assets/stream-tokenizer-5ezp0vCr.js +4 -0
  183. package/dist/diff_tool/app/dist/assets/{surrealql-CQV6x_M7.js → surrealql-h0PQCFLw.js} +1 -1
  184. package/dist/diff_tool/app/dist/assets/{svelte-NG5GkV3-.js → svelte-CouSRXXN.js} +1 -1
  185. package/dist/diff_tool/app/dist/assets/synthwave-84-BJJFg-sc.js +1 -0
  186. package/dist/diff_tool/app/dist/assets/{templ-D5z_pSJh.js → templ-nHebsoOx.js} +1 -1
  187. package/dist/diff_tool/app/dist/assets/tex-Bmmg45Le.js +1 -0
  188. package/dist/diff_tool/app/dist/assets/themes-BNoMSXBX.js +2 -0
  189. package/dist/diff_tool/app/dist/assets/tokyo-night-DvpptEDd.js +1 -0
  190. package/dist/diff_tool/app/dist/assets/{ts-tags-DBNduNlb.js → ts-tags-ByyA0QCx.js} +1 -1
  191. package/dist/diff_tool/app/dist/assets/tsx-r6-X8vM1.js +1 -0
  192. package/dist/diff_tool/app/dist/assets/{twig-DyCOQ6jQ.js → twig-DUDRwdST.js} +1 -1
  193. package/dist/diff_tool/app/dist/assets/typescript-Dvuj33DD.js +1 -0
  194. package/dist/diff_tool/app/dist/assets/{typst-pyR7tNhl.js → typst-DE5bnHEE.js} +1 -1
  195. package/dist/diff_tool/app/dist/assets/vesper-C1rBZbON.js +1 -0
  196. package/dist/diff_tool/app/dist/assets/vitesse-black-Sqvrs2Sw.js +1 -0
  197. package/dist/diff_tool/app/dist/assets/vitesse-dark-BWf_ZQtP.js +1 -0
  198. package/dist/diff_tool/app/dist/assets/vitesse-light-Cqenv4Qv.js +1 -0
  199. package/dist/diff_tool/app/dist/assets/{vue-DekfgCeK.js → vue-BMcQkxhM.js} +1 -1
  200. package/dist/diff_tool/app/dist/assets/{vue-html-B4ZBhbWG.js → vue-html-BBM4UO8W.js} +1 -1
  201. package/dist/diff_tool/app/dist/assets/{vue-vine-GuRc3TmG.js → vue-vine-CEJFhGMr.js} +1 -1
  202. package/dist/diff_tool/app/dist/assets/xml-CJx_hAt3.js +1 -0
  203. package/dist/diff_tool/app/dist/assets/{xsl-BHk7hTF5.js → xsl-Bd7alYZi.js} +1 -1
  204. package/dist/diff_tool/app/dist/assets/yaml-BY1dOrT3.js +1 -0
  205. package/dist/diff_tool/app/dist/index.html +4 -1
  206. package/dist/host/hosted_ephemeral_agent_session.js +40 -35
  207. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
  208. package/dist/host/local_session_host.js +35 -28
  209. package/dist/host/local_session_host.js.map +1 -1
  210. package/dist/host/session_protocol_handler.js +3 -0
  211. package/dist/host/session_protocol_handler.js.map +1 -1
  212. package/dist/protocol/session_protocol.d.ts +1 -0
  213. package/dist/protocol/session_protocol.js +1 -0
  214. package/dist/protocol/session_protocol.js.map +1 -1
  215. package/dist/sdk/diff_review.js +1 -0
  216. package/dist/sdk/diff_review.js.map +1 -1
  217. package/dist/sdk/session.js.map +1 -1
  218. package/dist/sdk/types.d.ts +1 -0
  219. package/dist/tui/chat_controller/diff_review_service.js +3 -0
  220. package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
  221. package/dist/tui/session_chat_controller.js +2 -0
  222. package/dist/tui/session_chat_controller.js.map +1 -1
  223. package/package.json +11 -9
  224. package/dist/diff_tool/app/dist/assets/angular-html-5fOwkWyd.js +0 -1
  225. package/dist/diff_tool/app/dist/assets/c-DYj9dO8E.js +0 -1
  226. package/dist/diff_tool/app/dist/assets/cpp-8i9ji6Kd.js +0 -1
  227. package/dist/diff_tool/app/dist/assets/css-BV65WUAK.js +0 -1
  228. package/dist/diff_tool/app/dist/assets/glsl-CoRDWwaA.js +0 -1
  229. package/dist/diff_tool/app/dist/assets/graphql-CpNQg4PT.js +0 -1
  230. package/dist/diff_tool/app/dist/assets/haml-BNJ9RuER.js +0 -1
  231. package/dist/diff_tool/app/dist/assets/html-MIjxmLMB.js +0 -1
  232. package/dist/diff_tool/app/dist/assets/index-CiAU1PwB.js +0 -341
  233. package/dist/diff_tool/app/dist/assets/java-DpW7eZfy.js +0 -1
  234. package/dist/diff_tool/app/dist/assets/javascript-CvLcUIy_.js +0 -1
  235. package/dist/diff_tool/app/dist/assets/json-C37-IgA9.js +0 -1
  236. package/dist/diff_tool/app/dist/assets/jsx-ohUwvKS6.js +0 -1
  237. package/dist/diff_tool/app/dist/assets/lua-CWWrDAOB.js +0 -1
  238. package/dist/diff_tool/app/dist/assets/r-BwiwO_Xr.js +0 -1
  239. package/dist/diff_tool/app/dist/assets/regexp-Cn-Hl0aP.js +0 -1
  240. package/dist/diff_tool/app/dist/assets/scss-CNj55azm.js +0 -1
  241. package/dist/diff_tool/app/dist/assets/shellscript-Dq_hJ1RB.js +0 -1
  242. package/dist/diff_tool/app/dist/assets/sql-J7vPdoQR.js +0 -1
  243. package/dist/diff_tool/app/dist/assets/tex-DwaU-qNm.js +0 -1
  244. package/dist/diff_tool/app/dist/assets/tsx-DO7eKGYw.js +0 -1
  245. package/dist/diff_tool/app/dist/assets/typescript-D3g-W4bt.js +0 -1
  246. package/dist/diff_tool/app/dist/assets/xml-CO_gq7Lx.js +0 -1
  247. package/dist/diff_tool/app/dist/assets/yaml-DegPhFhK.js +0 -1
@@ -0,0 +1,226 @@
1
+ import { accessSync, constants } from "node:fs";
2
+ import { delimiter, join } from "node:path";
3
+ import { query, } from "@anthropic-ai/claude-agent-sdk";
4
+ import { claudeCodeInputSchema, } from "./claude_code_protocol.js";
5
+ export function claudeCodeTools(tools) {
6
+ const selected = new Set();
7
+ if (tools.includes("bash") || tools.includes("view_image")) {
8
+ for (const name of ["Read", "Glob", "Grep"])
9
+ selected.add(name);
10
+ }
11
+ if (tools.includes("bash"))
12
+ selected.add("Bash");
13
+ if (tools.includes("write"))
14
+ selected.add("Write");
15
+ if (tools.includes("edit"))
16
+ selected.add("Edit");
17
+ if (tools.includes("web")) {
18
+ selected.add("WebSearch");
19
+ selected.add("WebFetch");
20
+ }
21
+ return [...selected];
22
+ }
23
+ export function claudeCodeOptions(input, executable) {
24
+ const env = { ...process.env };
25
+ for (const key of Object.keys(env)) {
26
+ if (key.startsWith("ANTHROPIC_") ||
27
+ key.startsWith("CLAUDE_CODE_USE_") ||
28
+ key === "CLAUDE_CODE_OAUTH_TOKEN" ||
29
+ key === "CLAUDE_CODE_SUBAGENT_MODEL")
30
+ delete env[key];
31
+ }
32
+ const tools = [...claudeCodeTools(input.tools), "Skill"];
33
+ return {
34
+ cwd: input.cwd,
35
+ model: input.model,
36
+ effort: input.effort,
37
+ maxTurns: 1024,
38
+ includePartialMessages: true,
39
+ pathToClaudeCodeExecutable: executable,
40
+ env,
41
+ tools,
42
+ permissionMode: "bypassPermissions",
43
+ allowDangerouslySkipPermissions: true,
44
+ disallowedTools: ["Agent", "Task", "AskUserQuestion"],
45
+ settingSources: ["user", "project", "local"],
46
+ skills: "all",
47
+ settings: {
48
+ fastMode: false,
49
+ autoMemoryEnabled: false,
50
+ disableAllHooks: true,
51
+ sandbox: { enabled: false },
52
+ },
53
+ persistSession: true,
54
+ ...(input.sessionId ? { resume: input.sessionId } : {}),
55
+ systemPrompt: {
56
+ type: "preset",
57
+ preset: "claude_code",
58
+ append: [
59
+ "You are a headless subagent supporting a parent agent. Complete the assigned task autonomously, including any verification it requires. No user or parent agent is available to answer questions or approve intermediate steps. Resolve minor ambiguities with reasonable assumptions and continue. If missing information or authority prevents safe progress, report the blocker clearly instead of attempting brittle or risky workarounds.",
60
+ "Read and follow applicable project instructions wherever you work. Use the skills available in this session when relevant.",
61
+ "Other agents may be modifying the same worktree. Never revert, discard, or overwrite changes you did not make. Avoid mutating Git operations unless explicitly instructed by the task. Do not launch other agents.",
62
+ "Your final response is what the parent agent receives from your work. Make it self-contained and include everything important for the parent to understand and use the result. Do not rely on intermediate messages or tool output being visible.",
63
+ ].join("\n\n"),
64
+ },
65
+ stderr: () => { },
66
+ };
67
+ }
68
+ function findClaudeExecutable() {
69
+ for (const directory of (process.env.PATH ?? "").split(delimiter)) {
70
+ if (!directory)
71
+ continue;
72
+ const path = join(directory, "claude");
73
+ try {
74
+ accessSync(path, constants.X_OK);
75
+ return path;
76
+ }
77
+ catch { }
78
+ }
79
+ throw new Error("Claude Code is not installed on the execution environment. Install it and sign in there with your Claude subscription before launching a Claude Code subagent.");
80
+ }
81
+ export async function runClaudeCode(raw, emit) {
82
+ const input = claudeCodeInputSchema.parse(raw);
83
+ let authorized = false;
84
+ let allowPrompt;
85
+ const ready = new Promise((resolve) => {
86
+ allowPrompt = resolve;
87
+ });
88
+ let finishPrompt;
89
+ const finished = new Promise((resolve) => {
90
+ finishPrompt = resolve;
91
+ });
92
+ async function* prompts() {
93
+ await ready;
94
+ if (!authorized)
95
+ return;
96
+ yield {
97
+ type: "user",
98
+ session_id: input.sessionId ?? "",
99
+ parent_tool_use_id: null,
100
+ message: { role: "user", content: input.prompt },
101
+ };
102
+ // Keep the control channel open until the context summary has been read.
103
+ await finished;
104
+ }
105
+ const conversation = query({
106
+ prompt: prompts(),
107
+ options: claudeCodeOptions(input, findClaudeExecutable()),
108
+ });
109
+ const calls = new Map();
110
+ let streamedMessage;
111
+ const emitUsage = (message) => {
112
+ emit({
113
+ type: "usage",
114
+ messageId: message.id,
115
+ usage: {
116
+ input: message.usage.input_tokens,
117
+ output: message.usage.output_tokens,
118
+ cacheRead: message.usage.cache_read_input_tokens ?? 0,
119
+ cacheWrite: message.usage.cache_creation_input_tokens ?? 0,
120
+ },
121
+ });
122
+ };
123
+ try {
124
+ const initialization = await conversation.initializationResult();
125
+ const account = initialization.account;
126
+ if (!account.subscriptionType || (account.apiKeySource && account.apiKeySource !== "none")) {
127
+ throw new Error("Claude Code requires a subscription login on the execution environment; API-key billing is not used by this launch model.");
128
+ }
129
+ authorized = true;
130
+ allowPrompt();
131
+ for await (const message of conversation) {
132
+ if (message.type === "system" && message.subtype === "init") {
133
+ emit({ type: "session", id: message.session_id });
134
+ }
135
+ else if (message.type === "stream_event" && message.parent_tool_use_id === null) {
136
+ const event = message.event;
137
+ if (event.type === "message_start") {
138
+ streamedMessage = { id: event.message.id, usage: event.message.usage };
139
+ }
140
+ else if (event.type === "message_delta" && streamedMessage) {
141
+ const usage = streamedMessage.usage;
142
+ streamedMessage.usage = {
143
+ ...usage,
144
+ input_tokens: event.usage.input_tokens ?? usage.input_tokens,
145
+ output_tokens: event.usage.output_tokens ?? usage.output_tokens,
146
+ cache_read_input_tokens: event.usage.cache_read_input_tokens ?? usage.cache_read_input_tokens,
147
+ cache_creation_input_tokens: event.usage.cache_creation_input_tokens ?? usage.cache_creation_input_tokens,
148
+ };
149
+ emitUsage(streamedMessage);
150
+ }
151
+ else if (event.type === "message_stop") {
152
+ streamedMessage = undefined;
153
+ }
154
+ }
155
+ else if (message.type === "assistant" && message.parent_tool_use_id === null) {
156
+ emitUsage(message.message);
157
+ for (const block of message.message.content) {
158
+ if (block.type === "text" && block.text) {
159
+ emit({ type: "assistant", text: block.text.slice(0, 8192) });
160
+ }
161
+ else if (block.type === "tool_use") {
162
+ const args = block.input !== null && typeof block.input === "object" && !Array.isArray(block.input)
163
+ ? block.input
164
+ : {};
165
+ const subject = [args.file_path, args.command, args.pattern, args.url].find((value) => typeof value === "string") ?? block.name;
166
+ calls.set(block.id, {
167
+ name: block.name.slice(0, 256),
168
+ subject: subject.slice(0, 1024),
169
+ });
170
+ }
171
+ }
172
+ }
173
+ else if (message.type === "user" &&
174
+ !("isReplay" in message) &&
175
+ message.parent_tool_use_id === null &&
176
+ Array.isArray(message.message.content)) {
177
+ for (const block of message.message.content) {
178
+ if (block.type !== "tool_result")
179
+ continue;
180
+ const call = calls.get(block.tool_use_id);
181
+ if (!call)
182
+ continue;
183
+ calls.delete(block.tool_use_id);
184
+ emit({ type: "tool", ...call, failed: block.is_error === true });
185
+ }
186
+ }
187
+ else if (message.type === "result") {
188
+ const totals = Object.values(message.modelUsage);
189
+ const failed = message.is_error || message.subtype !== "success";
190
+ const context = failed
191
+ ? undefined
192
+ : await conversation.getContextUsage({ detail: "summary" });
193
+ const usage = {
194
+ input: 0,
195
+ output: 0,
196
+ cacheRead: 0,
197
+ cacheWrite: 0,
198
+ contextWindowUsageTokens: context?.totalTokens ?? 0,
199
+ contextWindow: context?.maxTokens ?? 0,
200
+ };
201
+ for (const model of totals) {
202
+ usage.input += model.inputTokens;
203
+ usage.output += model.outputTokens;
204
+ usage.cacheRead += model.cacheReadInputTokens;
205
+ usage.cacheWrite += model.cacheCreationInputTokens;
206
+ }
207
+ emit({
208
+ type: "result",
209
+ response: message.subtype === "success"
210
+ ? message.result
211
+ : [message.subtype, ...message.errors].join("\n"),
212
+ failed,
213
+ cost: message.total_cost_usd,
214
+ usage,
215
+ });
216
+ return;
217
+ }
218
+ }
219
+ }
220
+ finally {
221
+ finishPrompt();
222
+ conversation.close();
223
+ allowPrompt();
224
+ }
225
+ }
226
+ //# sourceMappingURL=claude_code_runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude_code_runner.js","sourceRoot":"","sources":["../../../src/core/subagents/claude_code_runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAEL,KAAK,GAGN,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAGL,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,UAAU,eAAe,CAAC,KAAe;IAC7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3D,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1B,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAsB,EAAE,UAAkB;IAC1E,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IACE,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC;YAC5B,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC;YAClC,GAAG,KAAK,yBAAyB;YACjC,GAAG,KAAK,4BAA4B;YAEpC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,IAAI;QACd,sBAAsB,EAAE,IAAI;QAC5B,0BAA0B,EAAE,UAAU;QACtC,GAAG;QACH,KAAK;QACL,cAAc,EAAE,mBAAmB;QACnC,+BAA+B,EAAE,IAAI;QACrC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC;QACrD,cAAc,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;QAC5C,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE;YACR,QAAQ,EAAE,KAAK;YACf,iBAAiB,EAAE,KAAK;YACxB,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;SAC5B;QACD,cAAc,EAAE,IAAI;QACpB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE;gBACN,gbAAgb;gBAChb,4HAA4H;gBAC5H,oNAAoN;gBACpN,mPAAmP;aACpP,CAAC,IAAI,CAAC,MAAM,CAAC;SACf;QACD,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC3B,KAAK,MAAM,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC,SAAS;YAAE,SAAS;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,KAAK,CACb,gKAAgK,CACjK,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAY,EACZ,IAAsC;IAEtC,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,WAAwB,CAAC;IAC7B,MAAM,KAAK,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC1C,WAAW,GAAG,OAAO,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,IAAI,YAAyB,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC7C,YAAY,GAAG,OAAO,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,KAAK,SAAS,CAAC,CAAC,OAAO;QACrB,MAAM,KAAK,CAAC;QACZ,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,MAAM;YACJ,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;YACjC,kBAAkB,EAAE,IAAI;YACxB,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE;SACjD,CAAC;QACF,yEAAyE;QACzE,MAAM,QAAQ,CAAC;IACjB,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,CAAC;QACzB,MAAM,EAAE,OAAO,EAAE;QACjB,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,EAAE,CAAC;KAC1D,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6C,CAAC;IACnE,IAAI,eAAiF,CAAC;IACtF,MAAM,SAAS,GAAG,CAAC,OAA6D,EAAE,EAAE;QAClF,IAAI,CAAC;YACH,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,KAAK,EAAE;gBACL,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY;gBACjC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa;gBACnC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC;gBACrD,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC;aAC3D;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IACF,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,oBAAoB,EAAE,CAAC;QACjE,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,KAAK,MAAM,CAAC,EAAE,CAAC;YAC3F,MAAM,IAAI,KAAK,CACb,2HAA2H,CAC5H,CAAC;QACJ,CAAC;QACD,UAAU,GAAG,IAAI,CAAC;QAClB,WAAW,EAAE,CAAC;QACd,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACzC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC5D,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,IAAI,OAAO,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;gBAClF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBACnC,eAAe,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACzE,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,eAAe,EAAE,CAAC;oBAC7D,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;oBACpC,eAAe,CAAC,KAAK,GAAG;wBACtB,GAAG,KAAK;wBACR,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY;wBAC5D,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa;wBAC/D,uBAAuB,EACrB,KAAK,CAAC,KAAK,CAAC,uBAAuB,IAAI,KAAK,CAAC,uBAAuB;wBACtE,2BAA2B,EACzB,KAAK,CAAC,KAAK,CAAC,2BAA2B,IAAI,KAAK,CAAC,2BAA2B;qBAC/E,CAAC;oBACF,SAAS,CAAC,eAAe,CAAC,CAAC;gBAC7B,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACzC,eAAe,GAAG,SAAS,CAAC;gBAC9B,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;gBAC/E,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBACxC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC/D,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACrC,MAAM,IAAI,GACR,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;4BACpF,CAAC,CAAE,KAAK,CAAC,KAAiC;4BAC1C,CAAC,CAAC,EAAE,CAAC;wBACT,MAAM,OAAO,GACX,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CACzD,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACtD,IAAI,KAAK,CAAC,IAAI,CAAC;wBAClB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;4BAClB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;4BAC9B,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;yBAChC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IACL,OAAO,CAAC,IAAI,KAAK,MAAM;gBACvB,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC;gBACxB,OAAO,CAAC,kBAAkB,KAAK,IAAI;gBACnC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EACtC,CAAC;gBACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;wBAAE,SAAS;oBAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBAC1C,IAAI,CAAC,IAAI;wBAAE,SAAS;oBACpB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBAChC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACjD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC;gBACjE,MAAM,OAAO,GAAG,MAAM;oBACpB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,MAAM,YAAY,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC9D,MAAM,KAAK,GAAG;oBACZ,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE,CAAC;oBACZ,UAAU,EAAE,CAAC;oBACb,wBAAwB,EAAE,OAAO,EAAE,WAAW,IAAI,CAAC;oBACnD,aAAa,EAAE,OAAO,EAAE,SAAS,IAAI,CAAC;iBACvC,CAAC;gBACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC;oBACjC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC;oBACnC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,oBAAoB,CAAC;oBAC9C,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,wBAAwB,CAAC;gBACrD,CAAC;gBACD,IAAI,CAAC;oBACH,IAAI,EAAE,QAAQ;oBACd,QAAQ,EACN,OAAO,CAAC,OAAO,KAAK,SAAS;wBAC3B,CAAC,CAAC,OAAO,CAAC,MAAM;wBAChB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBACrD,MAAM;oBACN,IAAI,EAAE,OAAO,CAAC,cAAc;oBAC5B,KAAK;iBACN,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,YAAY,EAAE,CAAC;QACf,YAAY,CAAC,KAAK,EAAE,CAAC;QACrB,WAAW,EAAE,CAAC;IAChB,CAAC;AACH,CAAC"}