@markusylisiurunen/tau 0.3.78 → 0.3.80

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 (309) hide show
  1. package/dist/code_mode/images.d.ts +3 -0
  2. package/dist/code_mode/images.js +37 -0
  3. package/dist/code_mode/images.js.map +1 -0
  4. package/dist/code_mode/output.d.ts +22 -0
  5. package/dist/code_mode/output.js +109 -0
  6. package/dist/code_mode/output.js.map +1 -0
  7. package/dist/code_mode/runtime.d.ts +2 -1
  8. package/dist/code_mode/runtime.js +92 -12
  9. package/dist/code_mode/runtime.js.map +1 -1
  10. package/dist/core/agent/agent_runtime.js +68 -76
  11. package/dist/core/agent/agent_runtime.js.map +1 -1
  12. package/dist/core/auth/auth_manager.js +3 -7
  13. package/dist/core/auth/auth_manager.js.map +1 -1
  14. package/dist/core/auth/auth_messages.js +1 -1
  15. package/dist/core/auth/auth_messages.js.map +1 -1
  16. package/dist/core/auth/auth_storage.js +71 -7
  17. package/dist/core/auth/auth_storage.js.map +1 -1
  18. package/dist/core/auth/cli.js +8 -7
  19. package/dist/core/auth/cli.js.map +1 -1
  20. package/dist/core/auth/credential_store.js +88 -186
  21. package/dist/core/auth/credential_store.js.map +1 -1
  22. package/dist/core/auth/index.js +1 -1
  23. package/dist/core/auth/index.js.map +1 -1
  24. package/dist/core/auth/providers/openai_codex.js +51 -229
  25. package/dist/core/auth/providers/openai_codex.js.map +1 -1
  26. package/dist/core/cli.js +1 -2
  27. package/dist/core/cli.js.map +1 -1
  28. package/dist/core/client_tools/command_client_tools.js +2 -2
  29. package/dist/core/commands/registry.js +16 -1
  30. package/dist/core/commands/registry.js.map +1 -1
  31. package/dist/core/config/content_loader.js +30 -131
  32. package/dist/core/config/content_loader.js.map +1 -1
  33. package/dist/core/config/index.js.map +1 -1
  34. package/dist/core/config/mcp.js +68 -0
  35. package/dist/core/config/mcp.js.map +1 -0
  36. package/dist/core/config/paths.js +0 -1
  37. package/dist/core/config/paths.js.map +1 -1
  38. package/dist/core/config/runtime.js +3 -2
  39. package/dist/core/config/runtime.js.map +1 -1
  40. package/dist/core/config/runtime_config_snapshot.js +23 -9
  41. package/dist/core/config/runtime_config_snapshot.js.map +1 -1
  42. package/dist/core/config/schema.js +39 -73
  43. package/dist/core/config/schema.js.map +1 -1
  44. package/dist/core/config/skills_loader.js +6 -2
  45. package/dist/core/config/skills_loader.js.map +1 -1
  46. package/dist/core/debug.js +1 -16
  47. package/dist/core/debug.js.map +1 -1
  48. package/dist/core/index.js +2 -2
  49. package/dist/core/index.js.map +1 -1
  50. package/dist/core/mcp/manager.js +245 -0
  51. package/dist/core/mcp/manager.js.map +1 -0
  52. package/dist/core/mcp/search.js +77 -0
  53. package/dist/core/mcp/search.js.map +1 -0
  54. package/dist/core/models/catalog.js +2 -239
  55. package/dist/core/models/catalog.js.map +1 -1
  56. package/dist/core/personas.js +2 -15
  57. package/dist/core/personas.js.map +1 -1
  58. package/dist/core/runtime/agent_model.js +0 -3
  59. package/dist/core/runtime/agent_model.js.map +1 -1
  60. package/dist/core/runtime/chat_runtime.js +19 -13
  61. package/dist/core/runtime/chat_runtime.js.map +1 -1
  62. package/dist/core/runtime/runtime_bootstrap.js +12 -59
  63. package/dist/core/runtime/runtime_bootstrap.js.map +1 -1
  64. package/dist/core/session/auto_compaction_archive.js +1 -1
  65. package/dist/core/session/auto_compaction_archive.js.map +1 -1
  66. package/dist/core/session/compaction.js +79 -506
  67. package/dist/core/session/compaction.js.map +1 -1
  68. package/dist/core/static/code_mode/mcp/documentation.md +113 -0
  69. package/dist/core/static/code_mode/sandbox_runner.mjs +58 -3
  70. package/dist/core/static/tau_docs/client-tools.md +32 -30
  71. package/dist/core/static/tau_docs/config-reference.md +60 -38
  72. package/dist/core/static/tau_docs/configuration.md +3 -16
  73. package/dist/core/static/tau_docs/credentials.md +20 -50
  74. package/dist/core/static/tau_docs/index.md +2 -1
  75. package/dist/core/static/tau_docs/manifest.json +1 -0
  76. package/dist/core/static/tau_docs/models.md +8 -159
  77. package/dist/core/static/tau_docs/node-sdk.md +4 -2
  78. package/dist/core/static/tau_docs/openrouter.md +165 -0
  79. package/dist/core/static/tau_docs/ownership-and-scope.md +5 -3
  80. package/dist/core/static/tau_docs/personas.md +11 -43
  81. package/dist/core/static/tau_docs/prompts-and-project-context.md +10 -44
  82. package/dist/core/static/tau_docs/remote-sessions.md +6 -7
  83. package/dist/core/static/tau_docs/security.md +17 -6
  84. package/dist/core/static/tau_docs/session-protocol-methods.md +8 -4
  85. package/dist/core/static/tau_docs/session-protocol.md +12 -10
  86. package/dist/core/static/tau_docs/sessions.md +8 -6
  87. package/dist/core/static/tau_docs/skills.md +8 -32
  88. package/dist/core/static/tau_docs/subagents.md +4 -3
  89. package/dist/core/static/tau_docs/telegram.md +2 -2
  90. package/dist/core/static/tau_docs/tools.md +22 -6
  91. package/dist/core/static/tau_docs/troubleshooting.md +11 -12
  92. package/dist/core/static/tau_docs/tui.md +10 -3
  93. package/dist/core/subagents/agent_supervisor.js +1 -2
  94. package/dist/core/subagents/agent_supervisor.js.map +1 -1
  95. package/dist/core/subagents/registry.js +2 -1
  96. package/dist/core/subagents/registry.js.map +1 -1
  97. package/dist/core/subagents/types.js +2 -1
  98. package/dist/core/subagents/types.js.map +1 -1
  99. package/dist/core/telegram/adapter.js +1 -1
  100. package/dist/core/telegram/adapter.js.map +1 -1
  101. package/dist/core/tool/cli.js +10 -2
  102. package/dist/core/tool/cli.js.map +1 -1
  103. package/dist/core/tool/openrouter.js +291 -0
  104. package/dist/core/tool/openrouter.js.map +1 -0
  105. package/dist/core/tool/openrouter_decisions.js +97 -0
  106. package/dist/core/tool/openrouter_decisions.js.map +1 -0
  107. package/dist/core/tool/openrouter_media.js +180 -0
  108. package/dist/core/tool/openrouter_media.js.map +1 -0
  109. package/dist/core/tools/catalog.js +14 -2
  110. package/dist/core/tools/catalog.js.map +1 -1
  111. package/dist/core/tools/code_mode.js +5 -2
  112. package/dist/core/tools/code_mode.js.map +1 -1
  113. package/dist/core/tools/code_mode_worker.js +33 -1
  114. package/dist/core/tools/code_mode_worker.js.map +1 -1
  115. package/dist/core/tools/history.js +1 -1
  116. package/dist/core/tools/history.js.map +1 -1
  117. package/dist/core/tools/mcp.js +167 -0
  118. package/dist/core/tools/mcp.js.map +1 -0
  119. package/dist/core/tools/nook.js +1 -1
  120. package/dist/core/tools/nook.js.map +1 -1
  121. package/dist/core/tools/spawn_agent.js +1 -0
  122. package/dist/core/tools/spawn_agent.js.map +1 -1
  123. package/dist/core/tools/tau_docs.js +1 -0
  124. package/dist/core/tools/tau_docs.js.map +1 -1
  125. package/dist/core/tools/tool_names.js +2 -0
  126. package/dist/core/tools/tool_names.js.map +1 -1
  127. package/dist/core/tools/view_image.js +1 -105
  128. package/dist/core/tools/view_image.js.map +1 -1
  129. package/dist/core/tools/web.js +1 -1
  130. package/dist/core/tools/web.js.map +1 -1
  131. package/dist/core/utils/bm25.js +74 -0
  132. package/dist/core/utils/bm25.js.map +1 -0
  133. package/dist/core/utils/model_image.js +106 -0
  134. package/dist/core/utils/model_image.js.map +1 -0
  135. package/dist/core/utils/model_stream.js +47 -34
  136. package/dist/core/utils/model_stream.js.map +1 -1
  137. package/dist/core/utils/user_metadata.js +2 -27
  138. package/dist/core/utils/user_metadata.js.map +1 -1
  139. package/dist/core/version.js +2 -2
  140. package/dist/core/version.js.map +1 -1
  141. package/dist/diff_tool/app/dist/assets/{ada-C5qYipkI.js → ada-X3Y2mlq2.js} +1 -1
  142. package/dist/diff_tool/app/dist/assets/{ahk-CA9gdOdF.js → ahk-DwADkxyd.js} +1 -1
  143. package/dist/diff_tool/app/dist/assets/{angular-html-CnO8qept.js → angular-html-BbLgbIhq.js} +1 -1
  144. package/dist/diff_tool/app/dist/assets/{angular-ts-DPXUio9Z.js → angular-ts-DXk17TRM.js} +1 -1
  145. package/dist/diff_tool/app/dist/assets/{apl-X8YsymsQ.js → apl-BsvksCXR.js} +1 -1
  146. package/dist/diff_tool/app/dist/assets/{astro-BQ9k8AQ0.js → astro-DH775E4V.js} +1 -1
  147. package/dist/diff_tool/app/dist/assets/beancount-C2IN4Vk8.js +1 -0
  148. package/dist/diff_tool/app/dist/assets/{blade-DZ1LYIzB.js → blade-Ck99Rm59.js} +1 -1
  149. package/dist/diff_tool/app/dist/assets/{c-VLTwNh7z.js → c-DJpHqu5J.js} +1 -1
  150. package/dist/diff_tool/app/dist/assets/{chapel-5s-sGN8D.js → chapel-Owff0Csy.js} +1 -1
  151. package/dist/diff_tool/app/dist/assets/{cobol-C9RzwrVu.js → cobol-Cv2gZuhO.js} +1 -1
  152. package/dist/diff_tool/app/dist/assets/{coffee-BHvjZ343.js → coffee-Bji0YCf_.js} +1 -1
  153. package/dist/diff_tool/app/dist/assets/coq-CGaSfhwR.js +1 -0
  154. package/dist/diff_tool/app/dist/assets/{cpp-CBTVXbBp.js → cpp-DTjA_yFF.js} +1 -1
  155. package/dist/diff_tool/app/dist/assets/{crystal-DQJua4y4.js → crystal-Dd00NOeb.js} +1 -1
  156. package/dist/diff_tool/app/dist/assets/csharp-dmMxLVLW.js +1 -0
  157. package/dist/diff_tool/app/dist/assets/css-D44TN1V6.js +1 -0
  158. package/dist/diff_tool/app/dist/assets/dart-CHZY9Xhz.js +1 -0
  159. package/dist/diff_tool/app/dist/assets/dotenv-CuH5my32.js +1 -0
  160. package/dist/diff_tool/app/dist/assets/{edge-BmdmXGH4.js → edge-CVmGSi2m.js} +1 -1
  161. package/dist/diff_tool/app/dist/assets/{elixir-oiOLs98L.js → elixir-B8Mq7no2.js} +1 -1
  162. package/dist/diff_tool/app/dist/assets/{elm-BgYuiU4E.js → elm-CXS0I3Z2.js} +1 -1
  163. package/dist/diff_tool/app/dist/assets/emacs-lisp-DR2vtWaj.js +1 -0
  164. package/dist/diff_tool/app/dist/assets/{erb-CvFrXpyY.js → erb-B9oDKaUo.js} +1 -1
  165. package/dist/diff_tool/app/dist/assets/{git-rebase-D3Zo1BLH.js → git-rebase-DT-YFebH.js} +1 -1
  166. package/dist/diff_tool/app/dist/assets/{glimmer-js-B4-8E3lJ.js → glimmer-js-s0DXlNjq.js} +1 -1
  167. package/dist/diff_tool/app/dist/assets/{glimmer-ts-CtKkD0t_.js → glimmer-ts-QgEB5S2z.js} +1 -1
  168. package/dist/diff_tool/app/dist/assets/{glsl-BAqforx_.js → glsl-NA0icwbY.js} +1 -1
  169. package/dist/diff_tool/app/dist/assets/gn-CAXYAgV-.js +1 -0
  170. package/dist/diff_tool/app/dist/assets/{graphql-DuE1RMyL.js → graphql-0_dOlfV0.js} +1 -1
  171. package/dist/diff_tool/app/dist/assets/{hack-CHBcXjz1.js → hack-D-mr7l1l.js} +1 -1
  172. package/dist/diff_tool/app/dist/assets/{haml-DAs2z3tD.js → haml-B0-oQmz7.js} +1 -1
  173. package/dist/diff_tool/app/dist/assets/handlebars-Yq9bXpWN.js +1 -0
  174. package/dist/diff_tool/app/dist/assets/{html-D5co0BLD.js → html-B8bMmdRK.js} +1 -1
  175. package/dist/diff_tool/app/dist/assets/{html-derivative-BZaWEmAT.js → html-derivative-BpxSlQb_.js} +1 -1
  176. package/dist/diff_tool/app/dist/assets/{http-Cii5MjJE.js → http-hS_53mxt.js} +1 -1
  177. package/dist/diff_tool/app/dist/assets/{hurl-Bur-XdJO.js → hurl-B2ST1kwl.js} +1 -1
  178. package/dist/diff_tool/app/dist/assets/index-CBT_sNIz.js +340 -0
  179. package/dist/diff_tool/app/dist/assets/{java-DN39wI4w.js → java-D4mj0lZJ.js} +1 -1
  180. package/dist/diff_tool/app/dist/assets/{javascript-VUReF1H4.js → javascript-wC7rrKiV.js} +1 -1
  181. package/dist/diff_tool/app/dist/assets/{jinja-BcrfV1JB.js → jinja-DbQ3o87F.js} +1 -1
  182. package/dist/diff_tool/app/dist/assets/{jison-Bez5Mtmy.js → jison-CrE9FdvP.js} +1 -1
  183. package/dist/diff_tool/app/dist/assets/{json-ChV8m0Le.js → json-xjicDyWN.js} +1 -1
  184. package/dist/diff_tool/app/dist/assets/{jsx-D0SXNtM0.js → jsx-m28lXojQ.js} +1 -1
  185. package/dist/diff_tool/app/dist/assets/{julia-DvhpcBwG.js → julia-19xkOmop.js} +1 -1
  186. package/dist/diff_tool/app/dist/assets/{just-BGwe8S6x.js → just-Cf7OorTr.js} +1 -1
  187. package/dist/diff_tool/app/dist/assets/latex-DDb7GQOy.js +1 -0
  188. package/dist/diff_tool/app/dist/assets/{liquid-UdnqDjKz.js → liquid-DHOuQ0rf.js} +1 -1
  189. package/dist/diff_tool/app/dist/assets/{lua-CjDHeHEr.js → lua-BGyIvonw.js} +1 -1
  190. package/dist/diff_tool/app/dist/assets/luau-VGWVLoqX.js +1 -0
  191. package/dist/diff_tool/app/dist/assets/marko-DB5OqI1C.js +1 -0
  192. package/dist/diff_tool/app/dist/assets/{mdc-BOLj6Oyq.js → mdc-DTyNMupO.js} +1 -1
  193. package/dist/diff_tool/app/dist/assets/monokai-BscAjiQZ.js +1 -0
  194. package/dist/diff_tool/app/dist/assets/moonbit-D9W784E_.js +1 -0
  195. package/dist/diff_tool/app/dist/assets/nextflow-CSgcYZcx.js +1 -0
  196. package/dist/diff_tool/app/dist/assets/{nextflow-groovy-DJMQeKeT.js → nextflow-groovy-D7IRt6Pp.js} +1 -1
  197. package/dist/diff_tool/app/dist/assets/{nginx-5r5xPc2T.js → nginx-DfF0fMYD.js} +1 -1
  198. package/dist/diff_tool/app/dist/assets/{nim-9exKQYMz.js → nim-BbwsXuZD.js} +1 -1
  199. package/dist/diff_tool/app/dist/assets/nushell--0fT3PI1.js +1 -0
  200. package/dist/diff_tool/app/dist/assets/one-dark-pro-C6YyR8OD.js +1 -0
  201. package/dist/diff_tool/app/dist/assets/{org-B2fpAlbt.js → org-BkOBBl1f.js} +1 -1
  202. package/dist/diff_tool/app/dist/assets/{perl-DV2fcwyY.js → perl-BTXTOl4K.js} +1 -1
  203. package/dist/diff_tool/app/dist/assets/php-DIMVQWiA.js +1 -0
  204. package/dist/diff_tool/app/dist/assets/{powershell-CCSX75yM.js → powershell-QtSnmXcu.js} +1 -1
  205. package/dist/diff_tool/app/dist/assets/{pug-DuKcQxFj.js → pug-B_nrb4dJ.js} +1 -1
  206. package/dist/diff_tool/app/dist/assets/{qml-C16b4SYx.js → qml-1PXi8G8Z.js} +1 -1
  207. package/dist/diff_tool/app/dist/assets/{r-B1ZldnJf.js → r-CJrAkc2Z.js} +1 -1
  208. package/dist/diff_tool/app/dist/assets/{razor-TYmslaAB.js → razor-DgPUftNd.js} +1 -1
  209. package/dist/diff_tool/app/dist/assets/red-CYlAq2b0.js +1 -0
  210. package/dist/diff_tool/app/dist/assets/{regexp-dWCffmDD.js → regexp-C2hS8XvL.js} +1 -1
  211. package/dist/diff_tool/app/dist/assets/{rst-DEkLr2YR.js → rst-CDouhKnc.js} +1 -1
  212. package/dist/diff_tool/app/dist/assets/{ruby-BJnJzr4u.js → ruby-CAjKW1uO.js} +1 -1
  213. package/dist/diff_tool/app/dist/assets/rust-DpiIf5JO.js +1 -0
  214. package/dist/diff_tool/app/dist/assets/{sas-DeRsDbUE.js → sas-qAHkHLc1.js} +1 -1
  215. package/dist/diff_tool/app/dist/assets/{scss-SGV_CwKm.js → scss-Bfx2Ydid.js} +1 -1
  216. package/dist/diff_tool/app/dist/assets/{shellscript-BI7khmmR.js → shellscript-Bu76R8y2.js} +1 -1
  217. package/dist/diff_tool/app/dist/assets/{shellsession-Nupw_Vvw.js → shellsession-BU8BL0oL.js} +1 -1
  218. package/dist/diff_tool/app/dist/assets/solarized-dark-b97czJOk.js +1 -0
  219. package/dist/diff_tool/app/dist/assets/solarized-light-DFPxpIYQ.js +1 -0
  220. package/dist/diff_tool/app/dist/assets/{soy-B96cBzxv.js → soy-FRl8ozP-.js} +1 -1
  221. package/dist/diff_tool/app/dist/assets/sql-BacQgsEs.js +1 -0
  222. package/dist/diff_tool/app/dist/assets/{stata-Dnq48cE6.js → stata-B9kkG-ET.js} +1 -1
  223. package/dist/diff_tool/app/dist/assets/{surrealql-D6lw4TiD.js → surrealql-qvETr7iY.js} +1 -1
  224. package/dist/diff_tool/app/dist/assets/{svelte-ChVoq9tB.js → svelte-B0z1MgHc.js} +1 -1
  225. package/dist/diff_tool/app/dist/assets/{templ-Dh1EXuHD.js → templ-DTnPshKb.js} +1 -1
  226. package/dist/diff_tool/app/dist/assets/{tex-KTYusNFe.js → tex-Cosab9_H.js} +1 -1
  227. package/dist/diff_tool/app/dist/assets/{ts-tags-DC2RU1_R.js → ts-tags-DNYvLFUH.js} +1 -1
  228. package/dist/diff_tool/app/dist/assets/{tsx-DtIM39Jy.js → tsx-Dstq6j1a.js} +1 -1
  229. package/dist/diff_tool/app/dist/assets/twig-BzqZdwaX.js +1 -0
  230. package/dist/diff_tool/app/dist/assets/{typescript-BGAE5iuw.js → typescript-YOQ_oE25.js} +1 -1
  231. package/dist/diff_tool/app/dist/assets/typespec-BGhR2SqG.js +1 -0
  232. package/dist/diff_tool/app/dist/assets/{typst-nWoGZ22y.js → typst-DTffwfpc.js} +1 -1
  233. package/dist/diff_tool/app/dist/assets/{vue-iyHf-l4z.js → vue-D4OMj_C5.js} +1 -1
  234. package/dist/diff_tool/app/dist/assets/{vue-html-prNdIjLu.js → vue-html-kT4WrHGK.js} +1 -1
  235. package/dist/diff_tool/app/dist/assets/{vue-vine-KSSlnVeg.js → vue-vine-CxeapeMO.js} +1 -1
  236. package/dist/diff_tool/app/dist/assets/{xml-DdCC83Xd.js → xml-DWVpuurg.js} +1 -1
  237. package/dist/diff_tool/app/dist/assets/{xsl-DSqZxsez.js → xsl-C0ciup5a.js} +1 -1
  238. package/dist/diff_tool/app/dist/assets/{yaml-CZcBUWvf.js → yaml-98Fvyfpc.js} +1 -1
  239. package/dist/diff_tool/app/dist/index.html +1 -1
  240. package/dist/execution/execution_environment.js.map +1 -1
  241. package/dist/execution/fly_sprite_execution_environment.js +5 -10
  242. package/dist/execution/fly_sprite_execution_environment.js.map +1 -1
  243. package/dist/execution/tool_backend_execution_environment.js +0 -2
  244. package/dist/execution/tool_backend_execution_environment.js.map +1 -1
  245. package/dist/host/client_tool_broker.js +1 -1
  246. package/dist/host/client_tool_broker.js.map +1 -1
  247. package/dist/host/execution_runtime.js +5 -4
  248. package/dist/host/execution_runtime.js.map +1 -1
  249. package/dist/host/hosted_ephemeral_agent_session.js +0 -2
  250. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
  251. package/dist/host/local_session_host.js +26 -32
  252. package/dist/host/local_session_host.js.map +1 -1
  253. package/dist/host/session_host.js.map +1 -1
  254. package/dist/main.js +15 -29
  255. package/dist/main.js.map +1 -1
  256. package/dist/protocol/session_protocol.d.ts +14 -12
  257. package/dist/protocol/session_protocol.js +30 -7
  258. package/dist/protocol/session_protocol.js.map +1 -1
  259. package/dist/sdk/client_tool_command.d.ts +12 -11
  260. package/dist/sdk/client_tool_command.js +8 -8
  261. package/dist/sdk/client_tool_command.js.map +1 -1
  262. package/dist/sdk/code_mode.js +1 -1
  263. package/dist/sdk/code_mode.js.map +1 -1
  264. package/dist/sdk/local_client.js +4 -3
  265. package/dist/sdk/local_client.js.map +1 -1
  266. package/dist/sdk/session.js +1 -1
  267. package/dist/sdk/session.js.map +1 -1
  268. package/dist/sdk/types.d.ts +2 -1
  269. package/dist/store/session_snapshot_migrations.js +28 -1
  270. package/dist/store/session_snapshot_migrations.js.map +1 -1
  271. package/dist/tui/chat_view.js +3 -1
  272. package/dist/tui/chat_view.js.map +1 -1
  273. package/dist/tui/session_chat_app.js +2 -4
  274. package/dist/tui/session_chat_app.js.map +1 -1
  275. package/dist/tui/session_chat_controller.js +121 -6
  276. package/dist/tui/session_chat_controller.js.map +1 -1
  277. package/dist/tui/ui/custom_editor.js +49 -10
  278. package/dist/tui/ui/custom_editor.js.map +1 -1
  279. package/dist/tui/ui/footer.js +4 -2
  280. package/dist/tui/ui/footer.js.map +1 -1
  281. package/dist/tui/ui/slash_autocomplete.js +5 -1
  282. package/dist/tui/ui/slash_autocomplete.js.map +1 -1
  283. package/package.json +10 -9
  284. package/dist/diff_tool/app/dist/assets/beancount-D-usSTwE.js +0 -1
  285. package/dist/diff_tool/app/dist/assets/coq-DuBRPxYg.js +0 -1
  286. package/dist/diff_tool/app/dist/assets/csharp-oqKa8noW.js +0 -1
  287. package/dist/diff_tool/app/dist/assets/css-BQflXFb6.js +0 -1
  288. package/dist/diff_tool/app/dist/assets/dart-CnvKMtbv.js +0 -1
  289. package/dist/diff_tool/app/dist/assets/dotenv-_5a1GRtc.js +0 -1
  290. package/dist/diff_tool/app/dist/assets/emacs-lisp-c_oH4hRZ.js +0 -1
  291. package/dist/diff_tool/app/dist/assets/gn-ilITqXS6.js +0 -1
  292. package/dist/diff_tool/app/dist/assets/handlebars-CfAla6QK.js +0 -1
  293. package/dist/diff_tool/app/dist/assets/index-CZUi_I-p.js +0 -340
  294. package/dist/diff_tool/app/dist/assets/latex-pWSag83P.js +0 -1
  295. package/dist/diff_tool/app/dist/assets/luau-C2pBCSgt.js +0 -1
  296. package/dist/diff_tool/app/dist/assets/marko-yLX6iW68.js +0 -1
  297. package/dist/diff_tool/app/dist/assets/monokai-B_bV9PQ9.js +0 -1
  298. package/dist/diff_tool/app/dist/assets/moonbit-DgjMoLWr.js +0 -1
  299. package/dist/diff_tool/app/dist/assets/nextflow-BJtWHP5T.js +0 -1
  300. package/dist/diff_tool/app/dist/assets/nushell-DHYfO66s.js +0 -1
  301. package/dist/diff_tool/app/dist/assets/one-dark-pro-CLwyXe_n.js +0 -1
  302. package/dist/diff_tool/app/dist/assets/php-D-AthX_E.js +0 -1
  303. package/dist/diff_tool/app/dist/assets/red-DX1BQOs8.js +0 -1
  304. package/dist/diff_tool/app/dist/assets/rust-Cfkwpbl8.js +0 -1
  305. package/dist/diff_tool/app/dist/assets/solarized-dark-UdsmMDCL.js +0 -1
  306. package/dist/diff_tool/app/dist/assets/solarized-light-C1IUL_tW.js +0 -1
  307. package/dist/diff_tool/app/dist/assets/sql-CsIdKfaO.js +0 -1
  308. package/dist/diff_tool/app/dist/assets/twig-C6D_TA3n.js +0 -1
  309. package/dist/diff_tool/app/dist/assets/typespec-BRdr0IET.js +0 -1
@@ -0,0 +1,3 @@
1
+ import type { ImageContent } from "@earendil-works/pi-ai";
2
+ export declare const CODE_MODE_MAX_IMAGE_PIXELS = 40000000;
3
+ export declare function prepareCodeModeImage(value: unknown): Promise<ImageContent>;
@@ -0,0 +1,37 @@
1
+ import { isSupportedImageType, prepareImageForModel } from "../core/utils/model_image.js";
2
+ export const CODE_MODE_MAX_IMAGE_PIXELS = 40_000_000;
3
+ export async function prepareCodeModeImage(value) {
4
+ if (typeof value !== "object" ||
5
+ value === null ||
6
+ Array.isArray(value) ||
7
+ !("type" in value) ||
8
+ value.type !== "image" ||
9
+ !("data" in value) ||
10
+ typeof value.data !== "string" ||
11
+ !("mimeType" in value) ||
12
+ typeof value.mimeType !== "string") {
13
+ throw new Error('image() expects { type: "image", data: base64, mimeType }.');
14
+ }
15
+ if (!isSupportedImageType(value.mimeType)) {
16
+ throw new Error("image() supports image/jpeg, image/png, and image/webp.");
17
+ }
18
+ const content = Buffer.from(value.data, "base64");
19
+ if (!value.data || content.toString("base64") !== value.data) {
20
+ throw new Error("image() requires valid, padded base64 data.");
21
+ }
22
+ const [{ fileTypeFromBuffer }, { default: sharp }] = await Promise.all([
23
+ import("file-type"),
24
+ import("sharp"),
25
+ ]);
26
+ const detected = await fileTypeFromBuffer(content);
27
+ if (detected?.mime !== value.mimeType) {
28
+ throw new Error("image() MIME type does not match the image data.");
29
+ }
30
+ await sharp(content, { limitInputPixels: CODE_MODE_MAX_IMAGE_PIXELS })
31
+ .resize({ width: 1, height: 1, fit: "inside" })
32
+ .raw()
33
+ .toBuffer();
34
+ const prepared = await prepareImageForModel(content, value.mimeType, sharp);
35
+ return { type: "image", data: prepared.content.toString("base64"), mimeType: prepared.mimeType };
36
+ }
37
+ //# sourceMappingURL=images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/code_mode/images.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAE1F,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAc;IACvD,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC;QAClB,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC;QAClB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC;QACtB,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAClC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACrE,MAAM,CAAC,WAAW,CAAC;QACnB,MAAM,CAAC,OAAO,CAAC;KAChB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,QAAQ,EAAE,IAAI,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,CAAC;SACnE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;SAC9C,GAAG,EAAE;SACL,QAAQ,EAAE,CAAC;IACd,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;AACnG,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { ImageContent, TextContent } from "@earendil-works/pi-ai";
2
+ type ImageSlot = {
3
+ type: "image";
4
+ value?: ImageContent;
5
+ };
6
+ export declare class CodeModeOutput {
7
+ private parts;
8
+ private textBytes;
9
+ appendText(text: string): void;
10
+ get text(): string;
11
+ reserveImage(): ImageSlot;
12
+ project(options: {
13
+ terminationNote: string;
14
+ projection: {
15
+ content: string;
16
+ truncated: boolean;
17
+ maxTokens: number;
18
+ };
19
+ footer: string;
20
+ }): Array<TextContent | ImageContent>;
21
+ }
22
+ export {};
@@ -0,0 +1,109 @@
1
+ import stripAnsi from "strip-ansi";
2
+ import { DEFAULT_COMMAND_CAPTURE_BYTES } from "../core/tools/execution_backend.js";
3
+ import { tokensToBytes } from "../core/utils/token.js";
4
+ import { truncateToBytesFromEnd, truncateToBytesFromStart } from "../core/utils/truncate.js";
5
+ export class CodeModeOutput {
6
+ parts = [];
7
+ textBytes = 0;
8
+ appendText(text) {
9
+ if (!text)
10
+ return;
11
+ const last = this.parts.at(-1);
12
+ if (last?.type === "text")
13
+ last.text += text;
14
+ else
15
+ this.parts.push({ type: "text", text });
16
+ this.textBytes += Buffer.byteLength(text);
17
+ for (const part of this.parts) {
18
+ if (this.textBytes <= DEFAULT_COMMAND_CAPTURE_BYTES)
19
+ break;
20
+ if (part.type !== "text")
21
+ continue;
22
+ const bytes = Buffer.byteLength(part.text);
23
+ part.text = truncateToBytesFromEnd(part.text, Math.max(0, bytes - (this.textBytes - DEFAULT_COMMAND_CAPTURE_BYTES)));
24
+ this.textBytes -= bytes - Buffer.byteLength(part.text);
25
+ }
26
+ }
27
+ get text() {
28
+ return this.parts
29
+ .filter((part) => part.type === "text")
30
+ .map((part) => stripAnsi(part.text))
31
+ .join("");
32
+ }
33
+ reserveImage() {
34
+ const slot = { type: "image" };
35
+ this.parts.push(slot);
36
+ return slot;
37
+ }
38
+ project(options) {
39
+ const parts = [];
40
+ const append = (part) => {
41
+ const last = parts.at(-1);
42
+ if (part.type === "text" && last?.type === "text")
43
+ last.text += part.text;
44
+ else
45
+ parts.push(part);
46
+ };
47
+ for (const part of this.parts) {
48
+ if (part.type === "image") {
49
+ if (part.value)
50
+ append(part.value);
51
+ }
52
+ else if (part.text) {
53
+ append({ type: "text", text: stripAnsi(part.text) });
54
+ }
55
+ }
56
+ if (options.terminationNote)
57
+ append({ type: "text", text: options.terminationNote });
58
+ const text = parts
59
+ .filter((part) => part.type === "text")
60
+ .map((part) => part.text)
61
+ .join("");
62
+ const totalBytes = Buffer.byteLength(text);
63
+ const budget = tokensToBytes(options.projection.maxTokens);
64
+ const head = options.projection.truncated
65
+ ? truncateToBytesFromStart(text, Math.floor(budget / 2))
66
+ : text;
67
+ const tail = options.projection.truncated
68
+ ? truncateToBytesFromEnd(text, budget - Math.floor(budget / 2))
69
+ : "";
70
+ const headEnd = Buffer.byteLength(head);
71
+ const tailStart = totalBytes - Buffer.byteLength(tail);
72
+ const marker = options.projection.truncated
73
+ ? options.projection.content.slice(head.length, options.projection.content.length - tail.length)
74
+ : "";
75
+ let offset = 0;
76
+ let marked = false;
77
+ const result = [];
78
+ for (const part of parts) {
79
+ if (part.type === "image") {
80
+ result.push(part);
81
+ continue;
82
+ }
83
+ const bytes = Buffer.from(part.text);
84
+ const end = offset + bytes.length;
85
+ let retained = bytes
86
+ .subarray(0, Math.max(0, Math.min(bytes.length, headEnd - offset)))
87
+ .toString("utf8");
88
+ if (marker && !marked && end > headEnd) {
89
+ retained += marker;
90
+ marked = true;
91
+ }
92
+ if (options.projection.truncated && end > tailStart) {
93
+ retained += bytes.subarray(Math.max(0, tailStart - offset)).toString("utf8");
94
+ }
95
+ if (retained.trimEnd())
96
+ result.push({ type: "text", text: retained.trimEnd() });
97
+ offset = end;
98
+ }
99
+ if (options.footer) {
100
+ const last = result.at(-1);
101
+ if (last?.type === "text")
102
+ last.text += options.footer;
103
+ else
104
+ result.push({ type: "text", text: options.footer.trimStart() });
105
+ }
106
+ return result;
107
+ }
108
+ }
109
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/code_mode/output.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { ImageContent, TextContent } from "@earendil-works/pi-ai";
1
2
  import type { TauSdkClientToolExecutionEnvironment } from "../sdk/types.js";
2
3
  import { type TauCodeModeFilesOptions } from "./files.js";
3
4
  export declare const TAU_CODE_MODE_DEFAULT_TIMEOUT_MS = 60000;
@@ -64,7 +65,7 @@ export type ExecuteTauCodeModeOptions = TauCodeModeDefinition & {
64
65
  files?: TauCodeModeFilesOptions;
65
66
  };
66
67
  export type TauCodeModeResult = {
67
- content: string;
68
+ content: Array<TextContent | ImageContent>;
68
69
  };
69
70
  export type BuildTauCodeModeToolDescriptionOptions = {
70
71
  name: string;
@@ -1,13 +1,20 @@
1
- import stripAnsi from "strip-ansi";
2
1
  import { CODE_MODE_MAX_BRIDGE_PAYLOAD_BYTES, CODE_MODE_MAX_BRIDGE_REQUESTS, CODE_MODE_MAX_CONCURRENT_BRIDGE_REQUESTS, executeCodeModeWorker, } from "../core/tools/code_mode_worker.js";
3
2
  import { bytesToTokens } from "../core/utils/token.js";
4
3
  import { formatBytes, truncateForTokens } from "../core/utils/truncate.js";
4
+ import { SESSION_PROTOCOL_MAX_CLIENT_TOOL_IMAGES } from "../protocol/session_protocol.js";
5
5
  import { createTauCodeModeFilesApi, TAU_CODE_MODE_MAX_FILES, TAU_CODE_MODE_MAX_TOTAL_FILE_BYTES, } from "./files.js";
6
+ import { CODE_MODE_MAX_IMAGE_PIXELS, prepareCodeModeImage } from "./images.js";
7
+ import { CodeModeOutput } from "./output.js";
6
8
  export const TAU_CODE_MODE_DEFAULT_TIMEOUT_MS = 60_000;
7
9
  export const TAU_CODE_MODE_MAX_OUTPUT_TOKENS = 8_192;
8
10
  const sandboxRunnerUrl = new URL("../core/static/code_mode/sandbox_runner.mjs", import.meta.url);
9
11
  const javascriptIdentifierPattern = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
10
- const reservedNames = new Set([...Object.getOwnPropertyNames(globalThis), "docs", "files"]);
12
+ const reservedNames = new Set([
13
+ ...Object.getOwnPropertyNames(globalThis),
14
+ "docs",
15
+ "files",
16
+ "image",
17
+ ]);
11
18
  const unsafeApiKeys = new Set(["__proto__", "constructor", "prototype"]);
12
19
  export function createTauCodeModeExecutionEnvironmentFiles(agentId, executionEnvironment) {
13
20
  return {
@@ -47,7 +54,10 @@ export async function executeTauCodeMode(options) {
47
54
  const runtime = await runTauCodeMode(options);
48
55
  if (runtime.status === "succeeded")
49
56
  return runtime.result;
50
- throw new Error(runtime.result.content);
57
+ throw new Error(runtime.result.content
58
+ .filter((part) => part.type === "text")
59
+ .map((part) => part.text)
60
+ .join("\n"));
51
61
  }
52
62
  export async function runTauCodeMode(options) {
53
63
  validateName(options.name);
@@ -67,6 +77,34 @@ export async function runTauCodeMode(options) {
67
77
  ...(filesMethods.length > 0 ? [{ name: "files", methods: filesMethods }] : []),
68
78
  ];
69
79
  const methods = apis.flatMap((api) => api.methods);
80
+ const orderedOutput = new CodeModeOutput();
81
+ let imageCount = 0;
82
+ const imageMethodId = methods.length;
83
+ methods.push({
84
+ id: imageMethodId,
85
+ apiName: "image",
86
+ path: [],
87
+ handler: async (args, context) => {
88
+ if (args.length !== 1)
89
+ throw new Error("image() expects exactly one image block.");
90
+ if (imageCount >= SESSION_PROTOCOL_MAX_CLIENT_TOOL_IMAGES) {
91
+ throw new Error(`image() allows at most ${SESSION_PROTOCOL_MAX_CLIENT_TOOL_IMAGES} images per program.`);
92
+ }
93
+ imageCount += 1;
94
+ const slot = orderedOutput.reserveImage();
95
+ try {
96
+ context.signal.throwIfAborted();
97
+ const prepared = await prepareCodeModeImage(args[0]);
98
+ context.signal.throwIfAborted();
99
+ slot.value = prepared;
100
+ return null;
101
+ }
102
+ catch (error) {
103
+ imageCount -= 1;
104
+ throw error;
105
+ }
106
+ },
107
+ });
70
108
  const timeoutMs = options.timeoutMs ?? TAU_CODE_MODE_DEFAULT_TIMEOUT_MS;
71
109
  const invocation = options.invocation ?? null;
72
110
  const executionEnvironment = options.executionEnvironment ?? null;
@@ -80,6 +118,7 @@ export async function runTauCodeMode(options) {
80
118
  workerData: {
81
119
  code: options.code,
82
120
  docs,
121
+ imageMethodId,
83
122
  apis: apis.map((api) => ({
84
123
  name: api.name,
85
124
  methods: api.methods.map(({ id, path }) => ({ id, path })),
@@ -87,6 +126,7 @@ export async function runTauCodeMode(options) {
87
126
  },
88
127
  signal,
89
128
  timeoutMs,
129
+ onOutput: (text) => orderedOutput.appendText(text),
90
130
  handleRequest: async (request, requestSignal) => {
91
131
  const method = methods[request.methodId];
92
132
  if (!method)
@@ -104,8 +144,9 @@ export async function runTauCodeMode(options) {
104
144
  catch (error) {
105
145
  const message = error instanceof Error ? error.stack || error.message : String(error);
106
146
  const output = `${message}\n`;
147
+ orderedOutput.appendText(output);
107
148
  execution = {
108
- output,
149
+ output: orderedOutput.text,
109
150
  stdout: "",
110
151
  stderr: output,
111
152
  exitCode: 1,
@@ -117,7 +158,8 @@ export async function runTauCodeMode(options) {
117
158
  }
118
159
  const durationMs = Math.max(0, Date.now() - startedAt);
119
160
  const status = getExecutionStatus(execution);
120
- const output = appendTerminationNote(stripAnsi(execution.output), execution, timeoutMs);
161
+ const rawOutput = orderedOutput.text;
162
+ const output = appendTerminationNote(rawOutput, execution, timeoutMs);
121
163
  const projection = truncateForTokens(output, {
122
164
  maxTokens: TAU_CODE_MODE_MAX_OUTPUT_TOKENS,
123
165
  strategy: "middle",
@@ -136,8 +178,19 @@ export async function runTauCodeMode(options) {
136
178
  }
137
179
  catch { }
138
180
  }
181
+ const formatted = formatResultContent({ execution, projection, persistedPath, status });
182
+ const displayedText = projection.content.trimEnd();
183
+ const footer = displayedText
184
+ ? formatted.slice(displayedText.length)
185
+ : imageCount > 0 && status === "succeeded"
186
+ ? ""
187
+ : formatted;
139
188
  const result = {
140
- content: formatResultContent({ execution, projection, persistedPath, status }),
189
+ content: orderedOutput.project({
190
+ terminationNote: output.slice(rawOutput.length),
191
+ projection,
192
+ footer,
193
+ }),
141
194
  };
142
195
  return {
143
196
  result,
@@ -256,27 +309,28 @@ function buildRuntimeDocumentation(name, documentation, timeoutMs, hasFiles) {
256
309
  ? ["- `files`: shared UTF-8 scratch files for this agent, documented below."]
257
310
  : []),
258
311
  "- `docs`: this document.",
259
- "- `console`: program output through `debug`, `error`, `info`, `log`, and `warn`.",
312
+ "- `console`: text output through `debug`, `error`, `info`, `log`, and `warn`.",
313
+ "- `await image(block)`: explicitly forwards an image block to the model, documented below.",
260
314
  "- `Date`: standard date handling with live current-time access.",
261
315
  "- `Math`: standard math operations, including `Math.random()`.",
262
316
  "",
263
- "Top-level `await` is supported. The program return value is ignored; only console output is returned.",
317
+ "Top-level `await` is supported. The program return value is ignored; console output and explicitly forwarded images are returned.",
264
318
  hasFiles
265
319
  ? "Generated code has no direct process, environment, network, credential, import, timer, or `fetch` access. Filesystem access is limited to the `files` scratch API."
266
320
  : "Generated code has no direct filesystem, process, environment, network, credential, import, timer, or `fetch` access.",
267
321
  "",
268
- "## API boundary",
322
+ "## API limits",
269
323
  "",
270
- `Arguments and results cross a JSON serialization boundary with a ${formatBytes(CODE_MODE_MAX_BRIDGE_PAYLOAD_BYTES)} limit per request or response.`,
324
+ `Each API request and response must be JSON-serializable and fit within ${formatBytes(CODE_MODE_MAX_BRIDGE_PAYLOAD_BYTES)}. Request smaller results using service filters or pagination when available; filtering after receiving a response cannot avoid this limit.`,
271
325
  "Undefined object properties are omitted from API arguments. Undefined arguments and array entries remain invalid.",
272
- `A program may make at most ${CODE_MODE_MAX_BRIDGE_REQUESTS} API calls, with at most ${CODE_MODE_MAX_CONCURRENT_BRIDGE_REQUESTS} unresolved calls concurrently. Exceeding any bridge limit fails the program.`,
326
+ `A program may make at most ${CODE_MODE_MAX_BRIDGE_REQUESTS} API calls, with at most ${CODE_MODE_MAX_CONCURRENT_BRIDGE_REQUESTS} unresolved calls concurrently. Exceeding these limits fails the program.`,
273
327
  `The program must finish within ${formatDuration(timeoutMs)}.`,
274
328
  ...(hasFiles
275
329
  ? [
276
330
  "",
277
331
  "## Scratch files",
278
332
  "",
279
- "Scratch files are real files in an execution-environment temporary directory shared by every code-mode tool for this agent. Returned absolute paths can be used by Bash and other tools. The execution environment controls their lifetime; they are not stored in the session snapshot.",
333
+ "Scratch files are temporary files shared by every code-mode tool for this agent. Returned absolute paths can be used by Bash and other tools. Do not rely on scratch files for durable storage.",
280
334
  "",
281
335
  "- `await files.write(name, content)` atomically writes UTF-8 text and returns `{ path, bytes }`.",
282
336
  "- `await files.read(name)` reads the current file as UTF-8 text.",
@@ -291,6 +345,32 @@ function buildRuntimeDocumentation(name, documentation, timeoutMs, hasFiles) {
291
345
  "",
292
346
  `Output is middle-truncated above roughly ${TAU_CODE_MODE_MAX_OUTPUT_TOKENS.toLocaleString("en-US")} tokens. Print only information needed for the task.`,
293
347
  "",
348
+ "Print only relevant parts of API responses, not entire objects or large collections. Filter, select, or summarize before printing. Prefer concise, readable plain text over JSON unless the structure itself matters. Keep identifiers and other fields needed for follow-up actions. Printed output consumes conversation context.",
349
+ "",
350
+ "For example, print selected fields rather than whole objects:",
351
+ "",
352
+ "```js",
353
+ 'console.log(items.map(item => item.id + ": " + item.title).join("\\n"));',
354
+ "```",
355
+ "",
356
+ "When a response contains text blocks, print their text rather than serializing the surrounding objects:",
357
+ "",
358
+ "```js",
359
+ "console.log(blocks",
360
+ ' .filter(block => block.type === "text")',
361
+ " .map(block => block.text)",
362
+ ' .join("\\n\\n"));',
363
+ "```",
364
+ "",
365
+ "These examples illustrate output formatting, not API signatures. Use the documented response shape. Forward relevant images with `await image(block)`; never print their base64 data.",
366
+ "",
367
+ "## Images",
368
+ "",
369
+ 'Use `await image({ type: "image", data, mimeType })` to forward a base64-encoded image block returned by any API. Images are never forwarded automatically. Do not print base64 data.',
370
+ "Await each call so validation and preparation finish before the program exits. Invalid blocks reject and can be caught. No files are created.",
371
+ `Supported MIME types are image/jpeg, image/png, and image/webp. Each image block, including its base64 data, must fit within ${formatBytes(CODE_MODE_MAX_BRIDGE_PAYLOAD_BYTES)}, and source images cannot exceed ${CODE_MODE_MAX_IMAGE_PIXELS / 1_000_000} megapixels. At most ${SESSION_PROTOCOL_MAX_CLIENT_TOOL_IMAGES} images can be forwarded per program. Images are validated against their actual bytes and resized or re-encoded to fit the model's image limits.`,
372
+ "Console text and images are returned as ordered content blocks. Adjacent console writes form one text block; each awaited image stays between the text printed before and after it. Text truncation keeps images in their original positions. Complete the program successfully to ensure all outputs are returned.",
373
+ "",
294
374
  documentation.trim(),
295
375
  ].join("\n");
296
376
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/code_mode/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EACL,kCAAkC,EAClC,6BAA6B,EAC7B,wCAAwC,EACxC,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,kCAAkC,GAEnC,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CAAC;AACvD,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAErD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,6CAA6C,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AACjG,MAAM,2BAA2B,GAAG,4BAA4B,CAAC;AACjE,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5F,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AA2FzE,MAAM,UAAU,0CAA0C,CACxD,OAAe,EACf,oBAA0D;IAE1D,OAAO;QACL,OAAO;QACP,OAAO,EAAE;YACP,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CACvC,MAAM,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAChD,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;gBAC5B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACjC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,eAAe,EAAE,OAAO,CAAC,eAAe;aACzC,CAAC;SACL;KACF,CAAC;AACJ,CAAC;AAuBD,MAAM,UAAU,+BAA+B,CAAC,EAC9C,IAAI,EACJ,WAAW,GAC4B;IACvC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,kBAAkB;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACzF,OAAO;QACL,kBAAkB;QAClB,iHAAiH;QACjH,gIAAgI;QAChI,8EAA8E,IAAI,GAAG;QACrF,gHAAgH;KACjH,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,UAAiC;IAC7E,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,eAAe,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAkC;IAElC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC;IAC1D,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAkC;IAElC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEnC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK;QAChC,CAAC,CAAC,eAAe,CAAC,yBAAyB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC;QACvF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,IAAI,GAAoB;QAC5B,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE;QAC3C,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/E,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,gCAAgC,CAAC;IACxE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;IAC9C,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,IAAI,CAAC;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC;IAC9D,MAAM,IAAI,GAAG,yBAAyB,CACpC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,aAAa,EACrB,SAAS,EACT,YAAY,CAAC,MAAM,GAAG,CAAC,CACxB,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,SAAsC,CAAC;IAC3C,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,qBAAqB,CAAC;YACtC,gBAAgB;YAChB,UAAU,EAAE;gBACV,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI;gBACJ,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACvB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC3D,CAAC,CAAC;aACJ;YACD,MAAM;YACN,SAAS;YACT,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE;gBAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,CAAC,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACjE,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACjF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;oBACvC,MAAM,EAAE,aAAa;oBACrB,UAAU;oBACV,oBAAoB;iBACrB,CAAC,CAAC;gBACH,OAAO,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACnE,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC;QAC9B,SAAS,GAAG;YACV,MAAM;YACN,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACxF,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,EAAE;QAC3C,SAAS,EAAE,+BAA+B;QAC1C,QAAQ,EAAE,QAAQ;KACnB,CAAC,CAAC;IAEH,IAAI,aAAiC,CAAC;IACtC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,CAC3C;gBACE,OAAO,EAAE,MAAM;gBACf,gBAAgB,EAAE,SAAS,CAAC,SAAS;gBACrC,gBAAgB,EAAE,UAAU,CAAC,SAAS;gBACtC,MAAM;aACP,EACD,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAC7C,CAAC;YACF,IAAI,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE;gBAAE,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,mBAAmB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;KAC/E,CAAC;IACF,OAAO;QACL,MAAM;QACN,MAAM;QACN,SAAS;QACT,UAAU;QACV,UAAU;QACV,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,YAAY,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,QAAQ,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,YAAY,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,gDAAgD,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,SAA6B;IACpD,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,GAAmB,EAAE,OAAe,EAAE,OAAO,GAAG,CAAC;IACxE,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,CAAC,KAAqB,EAAE,IAAc,EAAQ,EAAE;QAC5D,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,kBAAkB,UAAU,CAAC,IAAI,CAAC,+CAA+C,CAClF,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC3E,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,sBAAsB,UAAU,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YACjF,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3F,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACf,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC;AAC9D,CAAC;AAED,SAAS,UAAU,CAAC,IAAc;IAChC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB,EAAE,IAAY,EAAE,IAAc;IAC1E,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,kCAAkC,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,2BAA2B,WAAW,CAAC,kCAAkC,CAAC,uBAAuB,CAC3G,CAAC;IACJ,CAAC;IACD,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,YAAY,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,YAAY,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,IAAY,EAAE,IAAc;IACzE,IAAI,IAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAC5C,IACE,MAAM,KAAK,SAAS;gBACpB,OAAO,MAAM,KAAK,UAAU;gBAC5B,OAAO,MAAM,KAAK,QAAQ;gBAC1B,OAAO,MAAM,KAAK,QAAQ;gBAC1B,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EACxD,CAAC;gBACD,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,kCAAkC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,wBAAwB,WAAW,CAAC,kCAAkC,CAAC,uBAAuB,CAC1H,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAChC,IAAY,EACZ,aAAqB,EACrB,SAAiB,EACjB,QAAiB;IAEjB,OAAO;QACL,qBAAqB;QACrB,EAAE;QACF,sBAAsB;QACtB,EAAE;QACF,OAAO,IAAI,kDAAkD;QAC7D,GAAG,CAAC,QAAQ;YACV,CAAC,CAAC,CAAC,yEAAyE,CAAC;YAC7E,CAAC,CAAC,EAAE,CAAC;QACP,0BAA0B;QAC1B,kFAAkF;QAClF,iEAAiE;QACjE,gEAAgE;QAChE,EAAE;QACF,uGAAuG;QACvG,QAAQ;YACN,CAAC,CAAC,oKAAoK;YACtK,CAAC,CAAC,uHAAuH;QAC3H,EAAE;QACF,iBAAiB;QACjB,EAAE;QACF,oEAAoE,WAAW,CAAC,kCAAkC,CAAC,iCAAiC;QACpJ,mHAAmH;QACnH,8BAA8B,6BAA6B,4BAA4B,wCAAwC,+EAA+E;QAC9M,kCAAkC,cAAc,CAAC,SAAS,CAAC,GAAG;QAC9D,GAAG,CAAC,QAAQ;YACV,CAAC,CAAC;gBACE,EAAE;gBACF,kBAAkB;gBAClB,EAAE;gBACF,0RAA0R;gBAC1R,EAAE;gBACF,kGAAkG;gBAClG,kEAAkE;gBAClE,4GAA4G;gBAC5G,qEAAqE;gBACrE,EAAE;gBACF,sGAAsG,uBAAuB,qBAAqB,kCAAkC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,4EAA4E;aACjR;YACH,CAAC,CAAC,EAAE,CAAC;QACP,EAAE;QACF,WAAW;QACX,EAAE;QACF,4CAA4C,+BAA+B,CAAC,cAAc,CAAC,OAAO,CAAC,sDAAsD;QACzJ,EAAE;QACF,aAAa,CAAC,IAAI,EAAE;KACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACvC,IAAI,SAAS,GAAG,KAAK,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC;QAClC,OAAO,GAAG,OAAO,UAAU,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,GAAG,SAAS,IAAI,CAAC;AAC1B,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAsC;IAChE,IAAI,SAAS,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC;IAC1C,IAAI,SAAS,CAAC,QAAQ;QAAE,OAAO,WAAW,CAAC;IAC3C,OAAO,SAAS,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3D,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAc,EACd,SAAsC,EACtC,SAAiB;IAEjB,IAAI,MAA0B,CAAC;IAC/B,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,MAAM,GAAG,2BAA2B,SAAS,KAAK,CAAC;IACrD,CAAC;SAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,wBAAwB,CAAC;IACpC,CAAC;SAAM,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QACjC,MAAM,GAAG,oCAAoC,SAAS,CAAC,WAAW,GAAG,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAC3B,IAAI,CAAC,MAAM;QAAE,OAAO,GAAG,MAAM,IAAI,CAAC;IAClC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,KAAK,CAAC;AAC1E,CAAC;AAED,SAAS,mBAAmB,CAAC,IAK5B;IACC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9D,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5C,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QACtC,OAAO,aAAa;YAClB,CAAC,CAAC,mDAAmD,aAAa,IAAI;YACtE,CAAC,CAAC,6BAA6B,CAAC;IACpC,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC9F,OAAO,iCAAiC,SAAS,CAAC,QAAQ,0BAA0B,CAAC;IACvF,CAAC;IAED,MAAM,cAAc,GAClB,UAAU,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS;QACzC,CAAC,CAAC,sCAAsC,UAAU,CAAC,WAAW,YAAY,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,aAAa,UAAU,CAAC,UAAU,YAAY,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,4BAA4B,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,aAAa,CAAC,CAAC,CAAC,8CAA8C,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;QAC/V,CAAC,CAAC,aAAa;YACb,CAAC,CAAC,wBAAwB,aAAa,IAAI;YAC3C,CAAC,CAAC,EAAE,CAAC;IACX,MAAM,UAAU,GAAG,GAAG,MAAM,IAAI,0CAA0C,GAAG,cAAc,EAAE,CAAC;IAC9F,OAAO,MAAM,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,CAAC;QACnF,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,sCAAsC,SAAS,CAAC,QAAQ,IAAI;QACrF,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/code_mode/runtime.ts"],"names":[],"mappings":"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"}