@markusylisiurunen/tau 0.3.77 → 0.3.79

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 (262) 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 +6 -11
  11. package/dist/core/agent/agent_runtime.js.map +1 -1
  12. package/dist/core/cli.js +2 -2
  13. package/dist/core/cli.js.map +1 -1
  14. package/dist/core/client_tools/command_client_tools.js +2 -2
  15. package/dist/core/commands/registry.js +18 -2
  16. package/dist/core/commands/registry.js.map +1 -1
  17. package/dist/core/config/content_loader.js +12 -194
  18. package/dist/core/config/content_loader.js.map +1 -1
  19. package/dist/core/config/index.js +1 -1
  20. package/dist/core/config/index.js.map +1 -1
  21. package/dist/core/config/mcp.js +68 -0
  22. package/dist/core/config/mcp.js.map +1 -0
  23. package/dist/core/config/runtime.js +1 -2
  24. package/dist/core/config/runtime.js.map +1 -1
  25. package/dist/core/config/schema.js +36 -155
  26. package/dist/core/config/schema.js.map +1 -1
  27. package/dist/core/config/virtual_bundle.js +2 -5
  28. package/dist/core/config/virtual_bundle.js.map +1 -1
  29. package/dist/core/config/virtual_defaults.js +0 -2
  30. package/dist/core/config/virtual_defaults.js.map +1 -1
  31. package/dist/core/debug.js +8 -23
  32. package/dist/core/debug.js.map +1 -1
  33. package/dist/core/diff_review/bridge.js +2 -24
  34. package/dist/core/diff_review/bridge.js.map +1 -1
  35. package/dist/core/index.js.map +1 -1
  36. package/dist/core/mcp/manager.js +245 -0
  37. package/dist/core/mcp/manager.js.map +1 -0
  38. package/dist/core/mcp/search.js +77 -0
  39. package/dist/core/mcp/search.js.map +1 -0
  40. package/dist/core/personas.js +6 -9
  41. package/dist/core/personas.js.map +1 -1
  42. package/dist/core/runtime/agent_model.js +0 -2
  43. package/dist/core/runtime/agent_model.js.map +1 -1
  44. package/dist/core/runtime/chat_runtime.js +7 -6
  45. package/dist/core/runtime/chat_runtime.js.map +1 -1
  46. package/dist/core/runtime/session_prompt_composer.js +12 -27
  47. package/dist/core/runtime/session_prompt_composer.js.map +1 -1
  48. package/dist/core/static/code_mode/mcp/documentation.md +113 -0
  49. package/dist/core/static/code_mode/sandbox_runner.mjs +58 -3
  50. package/dist/core/static/index.js +4 -4
  51. package/dist/core/static/index.js.map +1 -1
  52. package/dist/core/static/tau_docs/client-tools.md +33 -31
  53. package/dist/core/static/tau_docs/config-reference.md +54 -88
  54. package/dist/core/static/tau_docs/configuration.md +4 -11
  55. package/dist/core/static/tau_docs/node-sdk.md +4 -2
  56. package/dist/core/static/tau_docs/ownership-and-scope.md +4 -2
  57. package/dist/core/static/tau_docs/personas.md +8 -21
  58. package/dist/core/static/tau_docs/prompts-and-project-context.md +1 -1
  59. package/dist/core/static/tau_docs/remote-sessions.md +2 -2
  60. package/dist/core/static/tau_docs/security.md +15 -3
  61. package/dist/core/static/tau_docs/session-protocol-methods.md +8 -3
  62. package/dist/core/static/tau_docs/session-protocol.md +11 -9
  63. package/dist/core/static/tau_docs/sessions.md +2 -14
  64. package/dist/core/static/tau_docs/skills.md +1 -1
  65. package/dist/core/static/tau_docs/subagents.md +27 -99
  66. package/dist/core/static/tau_docs/telegram.md +10 -13
  67. package/dist/core/static/tau_docs/tools.md +24 -9
  68. package/dist/core/static/tau_docs/troubleshooting.md +4 -5
  69. package/dist/core/static/tau_docs/tui.md +16 -22
  70. package/dist/core/subagents/agent_supervisor.js +6 -7
  71. package/dist/core/subagents/agent_supervisor.js.map +1 -1
  72. package/dist/core/subagents/format.js +1 -1
  73. package/dist/core/subagents/format.js.map +1 -1
  74. package/dist/core/subagents/prompt.js +7 -0
  75. package/dist/core/subagents/prompt.js.map +1 -0
  76. package/dist/core/subagents/registry.js +15 -43
  77. package/dist/core/subagents/registry.js.map +1 -1
  78. package/dist/core/subagents/types.js +3 -2
  79. package/dist/core/subagents/types.js.map +1 -1
  80. package/dist/core/telegram/adapter.js +6 -10
  81. package/dist/core/telegram/adapter.js.map +1 -1
  82. package/dist/core/telegram/config.js +32 -57
  83. package/dist/core/telegram/config.js.map +1 -1
  84. package/dist/core/telegram/local_session_client.js +0 -3
  85. package/dist/core/telegram/local_session_client.js.map +1 -1
  86. package/dist/core/telegram/runtime.js +0 -3
  87. package/dist/core/telegram/runtime.js.map +1 -1
  88. package/dist/core/telegram/session_manager.js +29 -52
  89. package/dist/core/telegram/session_manager.js.map +1 -1
  90. package/dist/core/telegram/workspace.js +13 -18
  91. package/dist/core/telegram/workspace.js.map +1 -1
  92. package/dist/core/tools/catalog.js +23 -6
  93. package/dist/core/tools/catalog.js.map +1 -1
  94. package/dist/core/tools/code_mode.js +5 -2
  95. package/dist/core/tools/code_mode.js.map +1 -1
  96. package/dist/core/tools/code_mode_worker.js +33 -1
  97. package/dist/core/tools/code_mode_worker.js.map +1 -1
  98. package/dist/core/tools/history.js +1 -1
  99. package/dist/core/tools/history.js.map +1 -1
  100. package/dist/core/tools/mcp.js +167 -0
  101. package/dist/core/tools/mcp.js.map +1 -0
  102. package/dist/core/tools/nook.js +1 -1
  103. package/dist/core/tools/nook.js.map +1 -1
  104. package/dist/core/tools/send_input_to_agent.js +1 -1
  105. package/dist/core/tools/send_input_to_agent.js.map +1 -1
  106. package/dist/core/tools/spawn_agent.js +14 -30
  107. package/dist/core/tools/spawn_agent.js.map +1 -1
  108. package/dist/core/tools/tool_names.js +2 -0
  109. package/dist/core/tools/tool_names.js.map +1 -1
  110. package/dist/core/tools/view_image.js +1 -110
  111. package/dist/core/tools/view_image.js.map +1 -1
  112. package/dist/core/tools/web.js +1 -1
  113. package/dist/core/tools/web.js.map +1 -1
  114. package/dist/core/types.js.map +1 -1
  115. package/dist/core/usage/logs.js.map +1 -1
  116. package/dist/core/utils/bm25.js +74 -0
  117. package/dist/core/utils/bm25.js.map +1 -0
  118. package/dist/core/utils/model_image.js +106 -0
  119. package/dist/core/utils/model_image.js.map +1 -0
  120. package/dist/core/version.js +1 -1
  121. package/dist/diff_tool/app/dist/assets/{angular-html-BjHlbeCk.js → angular-html-CnO8qept.js} +1 -1
  122. package/dist/diff_tool/app/dist/assets/{angular-ts-5J5hsUV-.js → angular-ts-DPXUio9Z.js} +1 -1
  123. package/dist/diff_tool/app/dist/assets/{apl-ChIs51_N.js → apl-X8YsymsQ.js} +1 -1
  124. package/dist/diff_tool/app/dist/assets/{astro-RtGdbaIT.js → astro-BQ9k8AQ0.js} +1 -1
  125. package/dist/diff_tool/app/dist/assets/{blade-Cuc0ZzS1.js → blade-DZ1LYIzB.js} +1 -1
  126. package/dist/diff_tool/app/dist/assets/{c-IpjS3QEt.js → c-VLTwNh7z.js} +1 -1
  127. package/dist/diff_tool/app/dist/assets/{chapel-BvHOmF40.js → chapel-5s-sGN8D.js} +1 -1
  128. package/dist/diff_tool/app/dist/assets/{cobol-BWLkapNx.js → cobol-C9RzwrVu.js} +1 -1
  129. package/dist/diff_tool/app/dist/assets/{coffee-lfdf_MuK.js → coffee-BHvjZ343.js} +1 -1
  130. package/dist/diff_tool/app/dist/assets/{cpp-GvMfdutG.js → cpp-CBTVXbBp.js} +1 -1
  131. package/dist/diff_tool/app/dist/assets/{crystal--kdmUeXB.js → crystal-DQJua4y4.js} +1 -1
  132. package/dist/diff_tool/app/dist/assets/{css-CnlOazId.js → css-BQflXFb6.js} +1 -1
  133. package/dist/diff_tool/app/dist/assets/{edge-CwnxQiFe.js → edge-BmdmXGH4.js} +1 -1
  134. package/dist/diff_tool/app/dist/assets/{elixir-BVO19qQd.js → elixir-oiOLs98L.js} +1 -1
  135. package/dist/diff_tool/app/dist/assets/{elm-BK3istEo.js → elm-BgYuiU4E.js} +1 -1
  136. package/dist/diff_tool/app/dist/assets/{erb-CO4uKwKD.js → erb-CvFrXpyY.js} +1 -1
  137. package/dist/diff_tool/app/dist/assets/{git-rebase-CDrrgbGV.js → git-rebase-D3Zo1BLH.js} +1 -1
  138. package/dist/diff_tool/app/dist/assets/{glimmer-js-7CFSyo6c.js → glimmer-js-B4-8E3lJ.js} +1 -1
  139. package/dist/diff_tool/app/dist/assets/{glimmer-ts-Ofllf2Yo.js → glimmer-ts-CtKkD0t_.js} +1 -1
  140. package/dist/diff_tool/app/dist/assets/{glsl-K_36bq1K.js → glsl-BAqforx_.js} +1 -1
  141. package/dist/diff_tool/app/dist/assets/{graphql-BMZnssUN.js → graphql-DuE1RMyL.js} +1 -1
  142. package/dist/diff_tool/app/dist/assets/{hack-MG_t8QNs.js → hack-CHBcXjz1.js} +1 -1
  143. package/dist/diff_tool/app/dist/assets/{haml-0hDK-uCt.js → haml-DAs2z3tD.js} +1 -1
  144. package/dist/diff_tool/app/dist/assets/{handlebars-D4_MRJPB.js → handlebars-CfAla6QK.js} +1 -1
  145. package/dist/diff_tool/app/dist/assets/{html-BCi--7qp.js → html-D5co0BLD.js} +1 -1
  146. package/dist/diff_tool/app/dist/assets/{html-derivative-DYq2AWiD.js → html-derivative-BZaWEmAT.js} +1 -1
  147. package/dist/diff_tool/app/dist/assets/{http-BmLFm2Pm.js → http-Cii5MjJE.js} +1 -1
  148. package/dist/diff_tool/app/dist/assets/{hurl-CT71cK69.js → hurl-Bur-XdJO.js} +1 -1
  149. package/dist/diff_tool/app/dist/assets/index-CZUi_I-p.js +340 -0
  150. package/dist/diff_tool/app/dist/assets/{java-Bm2FCq-d.js → java-DN39wI4w.js} +1 -1
  151. package/dist/diff_tool/app/dist/assets/{javascript-C7oEny21.js → javascript-VUReF1H4.js} +1 -1
  152. package/dist/diff_tool/app/dist/assets/{jinja-igQBS-SS.js → jinja-BcrfV1JB.js} +1 -1
  153. package/dist/diff_tool/app/dist/assets/{jison-BrOUp4rK.js → jison-Bez5Mtmy.js} +1 -1
  154. package/dist/diff_tool/app/dist/assets/{json-DsuR7Nai.js → json-ChV8m0Le.js} +1 -1
  155. package/dist/diff_tool/app/dist/assets/{jsx-BdomFXcA.js → jsx-D0SXNtM0.js} +1 -1
  156. package/dist/diff_tool/app/dist/assets/{julia-DqOG4pbM.js → julia-DvhpcBwG.js} +1 -1
  157. package/dist/diff_tool/app/dist/assets/{just-ZrSTuT0n.js → just-BGwe8S6x.js} +1 -1
  158. package/dist/diff_tool/app/dist/assets/{latex-DbmtZIwN.js → latex-pWSag83P.js} +1 -1
  159. package/dist/diff_tool/app/dist/assets/{liquid-DKnUlRIp.js → liquid-UdnqDjKz.js} +1 -1
  160. package/dist/diff_tool/app/dist/assets/{lua-Cyq3f59a.js → lua-CjDHeHEr.js} +1 -1
  161. package/dist/diff_tool/app/dist/assets/{marko-hmOsFPHQ.js → marko-yLX6iW68.js} +1 -1
  162. package/dist/diff_tool/app/dist/assets/{mdc-BnnQmDC-.js → mdc-BOLj6Oyq.js} +1 -1
  163. package/dist/diff_tool/app/dist/assets/{nginx-C0zLUSna.js → nginx-5r5xPc2T.js} +1 -1
  164. package/dist/diff_tool/app/dist/assets/{nim-Oljl3c5n.js → nim-9exKQYMz.js} +1 -1
  165. package/dist/diff_tool/app/dist/assets/{org-Cp4CA-0c.js → org-B2fpAlbt.js} +1 -1
  166. package/dist/diff_tool/app/dist/assets/{perl-DstDVYmJ.js → perl-DV2fcwyY.js} +1 -1
  167. package/dist/diff_tool/app/dist/assets/{php-Cc3bNZ7J.js → php-D-AthX_E.js} +1 -1
  168. package/dist/diff_tool/app/dist/assets/{pug-B3xDUzl0.js → pug-DuKcQxFj.js} +1 -1
  169. package/dist/diff_tool/app/dist/assets/{qml-B9iDahKk.js → qml-C16b4SYx.js} +1 -1
  170. package/dist/diff_tool/app/dist/assets/{r-B7M5ZSBC.js → r-B1ZldnJf.js} +1 -1
  171. package/dist/diff_tool/app/dist/assets/{razor-BlfV6bjQ.js → razor-TYmslaAB.js} +1 -1
  172. package/dist/diff_tool/app/dist/assets/{regexp-BVT0NBj6.js → regexp-dWCffmDD.js} +1 -1
  173. package/dist/diff_tool/app/dist/assets/{rst-Cq-Mcher.js → rst-DEkLr2YR.js} +1 -1
  174. package/dist/diff_tool/app/dist/assets/{ruby-5uCK_s01.js → ruby-BJnJzr4u.js} +1 -1
  175. package/dist/diff_tool/app/dist/assets/{sas-m4dYluKN.js → sas-DeRsDbUE.js} +1 -1
  176. package/dist/diff_tool/app/dist/assets/{scss-DFiJcBQH.js → scss-SGV_CwKm.js} +1 -1
  177. package/dist/diff_tool/app/dist/assets/{shellscript-DCtSkJJQ.js → shellscript-BI7khmmR.js} +1 -1
  178. package/dist/diff_tool/app/dist/assets/{shellsession-_DntbpLM.js → shellsession-Nupw_Vvw.js} +1 -1
  179. package/dist/diff_tool/app/dist/assets/{soy-Dd1fWsG8.js → soy-B96cBzxv.js} +1 -1
  180. package/dist/diff_tool/app/dist/assets/{sql-Bygp5F-5.js → sql-CsIdKfaO.js} +1 -1
  181. package/dist/diff_tool/app/dist/assets/{stata-CqIA1VQD.js → stata-Dnq48cE6.js} +1 -1
  182. package/dist/diff_tool/app/dist/assets/{surrealql-C2-2C-z3.js → surrealql-D6lw4TiD.js} +1 -1
  183. package/dist/diff_tool/app/dist/assets/{svelte-CrTy7VSb.js → svelte-ChVoq9tB.js} +1 -1
  184. package/dist/diff_tool/app/dist/assets/{templ-B_h9AHFJ.js → templ-Dh1EXuHD.js} +1 -1
  185. package/dist/diff_tool/app/dist/assets/{tex-AwlGuBDG.js → tex-KTYusNFe.js} +1 -1
  186. package/dist/diff_tool/app/dist/assets/{ts-tags--oqU6stH.js → ts-tags-DC2RU1_R.js} +1 -1
  187. package/dist/diff_tool/app/dist/assets/{tsx-Cx-oUPFA.js → tsx-DtIM39Jy.js} +1 -1
  188. package/dist/diff_tool/app/dist/assets/{twig-DMQw3R9O.js → twig-C6D_TA3n.js} +1 -1
  189. package/dist/diff_tool/app/dist/assets/{typescript-BCtu9W7E.js → typescript-BGAE5iuw.js} +1 -1
  190. package/dist/diff_tool/app/dist/assets/{typst-jGrqJHSo.js → typst-nWoGZ22y.js} +1 -1
  191. package/dist/diff_tool/app/dist/assets/{vue-html-DTMalvg7.js → vue-html-prNdIjLu.js} +1 -1
  192. package/dist/diff_tool/app/dist/assets/{vue-GFZcsvXd.js → vue-iyHf-l4z.js} +1 -1
  193. package/dist/diff_tool/app/dist/assets/{vue-vine-BwDeqLrM.js → vue-vine-KSSlnVeg.js} +1 -1
  194. package/dist/diff_tool/app/dist/assets/{xml-CoXyuOzf.js → xml-DdCC83Xd.js} +1 -1
  195. package/dist/diff_tool/app/dist/assets/{xsl-BQFm34CN.js → xsl-DSqZxsez.js} +1 -1
  196. package/dist/diff_tool/app/dist/assets/{yaml-CbO2A_pF.js → yaml-CZcBUWvf.js} +1 -1
  197. package/dist/diff_tool/app/dist/index.html +1 -1
  198. package/dist/diff_tool/http_server.js +2 -9
  199. package/dist/diff_tool/http_server.js.map +1 -1
  200. package/dist/diff_tool/index.js +2 -2
  201. package/dist/diff_tool/index.js.map +1 -1
  202. package/dist/diff_tool/launcher.js +14 -8
  203. package/dist/diff_tool/launcher.js.map +1 -1
  204. package/dist/diff_tool/protocol_client.js +0 -7
  205. package/dist/diff_tool/protocol_client.js.map +1 -1
  206. package/dist/diff_tool/review_state.js +4 -10
  207. package/dist/diff_tool/review_state.js.map +1 -1
  208. package/dist/diff_tool/review_state_persistence.js +12 -7
  209. package/dist/diff_tool/review_state_persistence.js.map +1 -1
  210. package/dist/diff_tool/shared_types.js +0 -48
  211. package/dist/diff_tool/shared_types.js.map +1 -1
  212. package/dist/host/client_tool_broker.js +1 -1
  213. package/dist/host/client_tool_broker.js.map +1 -1
  214. package/dist/host/execution_runtime.js +1 -1
  215. package/dist/host/execution_runtime.js.map +1 -1
  216. package/dist/host/hosted_ephemeral_agent_session.js +1 -1
  217. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
  218. package/dist/host/local_session_host.js +19 -19
  219. package/dist/host/local_session_host.js.map +1 -1
  220. package/dist/host/session_host.js.map +1 -1
  221. package/dist/main.js +2 -15
  222. package/dist/main.js.map +1 -1
  223. package/dist/protocol/index.d.ts +1 -1
  224. package/dist/protocol/index.js.map +1 -1
  225. package/dist/protocol/session_protocol.d.ts +14 -15
  226. package/dist/protocol/session_protocol.js +30 -12
  227. package/dist/protocol/session_protocol.js.map +1 -1
  228. package/dist/sdk/client_tool_command.d.ts +12 -11
  229. package/dist/sdk/client_tool_command.js +8 -8
  230. package/dist/sdk/client_tool_command.js.map +1 -1
  231. package/dist/sdk/code_mode.js +1 -1
  232. package/dist/sdk/code_mode.js.map +1 -1
  233. package/dist/sdk/local_client.js +1 -0
  234. package/dist/sdk/local_client.js.map +1 -1
  235. package/dist/sdk/session.js +1 -1
  236. package/dist/sdk/session.js.map +1 -1
  237. package/dist/sdk/types.d.ts +2 -1
  238. package/dist/store/session_snapshot_migrations.js +32 -1
  239. package/dist/store/session_snapshot_migrations.js.map +1 -1
  240. package/dist/tui/chat_controller/diff_review_service.js +0 -15
  241. package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
  242. package/dist/tui/chat_view.js +8 -2
  243. package/dist/tui/chat_view.js.map +1 -1
  244. package/dist/tui/session_chat_app.js +1 -2
  245. package/dist/tui/session_chat_app.js.map +1 -1
  246. package/dist/tui/session_chat_controller.js +141 -42
  247. package/dist/tui/session_chat_controller.js.map +1 -1
  248. package/dist/tui/ui/custom_editor.js +70 -25
  249. package/dist/tui/ui/custom_editor.js.map +1 -1
  250. package/dist/tui/ui/footer.js +4 -2
  251. package/dist/tui/ui/footer.js.map +1 -1
  252. package/dist/tui/ui/slash_autocomplete.js +6 -9
  253. package/dist/tui/ui/slash_autocomplete.js.map +1 -1
  254. package/dist/tui/ui/subagent_panel.js +1 -12
  255. package/dist/tui/ui/subagent_panel.js.map +1 -1
  256. package/package.json +7 -6
  257. package/dist/core/config/diff_tool.js +0 -51
  258. package/dist/core/config/diff_tool.js.map +0 -1
  259. package/dist/core/subagents/default.js +0 -8
  260. package/dist/core/subagents/default.js.map +0 -1
  261. package/dist/diff_tool/app/dist/assets/index-DyaXBald.js +0 -340
  262. /package/dist/core/static/prompts/{default-subagent-wrapper.md → subagent-wrapper.md} +0 -0
@@ -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":"AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAI7F,MAAM,OAAO,cAAc;IACjB,KAAK,GAAmC,EAAE,CAAC;IAC3C,SAAS,GAAG,CAAC,CAAC;IAEtB,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM;YAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;;YACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,SAAS,IAAI,6BAA6B;gBAAE,MAAM;YAC3D,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAS;YACnC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAChC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,6BAA6B,CAAC,CAAC,CACtE,CAAC;YACF,IAAI,CAAC,SAAS,IAAI,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK;aACd,MAAM,CAAC,CAAC,IAAI,EAAuB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;aAC3D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnC,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,OAIP;QACC,MAAM,KAAK,GAAsC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,CAAC,IAAgC,EAAQ,EAAE;YACxD,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM;gBAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;;gBACrE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,KAAK;oBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,eAAe;YAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,KAAK;aACf,MAAM,CAAC,CAAC,IAAI,EAAuB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;aAC3D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aACxB,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS;YACvC,CAAC,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS;YACvC,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/D,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS;YACzC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAC9B,IAAI,CAAC,MAAM,EACX,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAChD;YACH,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,MAAM,GAAsC,EAAE,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAClC,IAAI,QAAQ,GAAG,KAAK;iBACjB,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;iBAClE,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpB,IAAI,MAAM,IAAI,CAAC,MAAM,IAAI,GAAG,GAAG,OAAO,EAAE,CAAC;gBACvC,QAAQ,IAAI,MAAM,CAAC;gBACnB,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,IAAI,GAAG,GAAG,SAAS,EAAE,CAAC;gBACpD,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAChF,MAAM,GAAG,GAAG,CAAC;QACf,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM;gBAAE,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;;gBAClD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -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":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/code_mode/runtime.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ import { estimateMessageTokens } from "../utils/token.js";
12
12
  import { formatTauUserText, getAutoCompactionMetadataFromMessage, hasAutoCompactionContinuationMetadata, isTauUserMessageHidden, prependTauHiddenSystemMessages, prependTauUserMetadata, stripTauUserDisplayText, stripTauUserMetadata, stripTauUserMetadataFromMessage, } from "../utils/user_metadata.js";
13
13
  const DEFAULT_RETRY_POLICY = { maxRetries: 1, delayMs: 3_000 };
14
14
  const COMPACTION_MAX_ATTEMPTS = 2;
15
+ const AUTO_COMPACTION_RESERVE_TOKENS = 16_384;
16
+ const AUTO_COMPACTION_KEEP_RECENT_TOKENS = 20_000;
15
17
  const DEFAULT_MAX_MODEL_SUBTURNS = 1024;
16
18
  export function createAgentSpec(options) {
17
19
  return {
@@ -22,7 +24,6 @@ export function createAgentSpec(options) {
22
24
  tools: options.tools,
23
25
  streamOptions: structuredClone(options.streamOptions),
24
26
  retryPolicy: { ...DEFAULT_RETRY_POLICY },
25
- compactionPolicy: { ...options.compactionPolicy },
26
27
  maxModelSubturns: DEFAULT_MAX_MODEL_SUBTURNS,
27
28
  };
28
29
  }
@@ -807,7 +808,6 @@ export class AgentRuntime {
807
808
  tools: this.currentSpec.tools,
808
809
  streamOptions: structuredClone(this.currentSpec.streamOptions),
809
810
  retryPolicy: { ...this.currentSpec.retryPolicy },
810
- compactionPolicy: { ...this.currentSpec.compactionPolicy },
811
811
  maxModelSubturns: this.currentSpec.maxModelSubturns,
812
812
  };
813
813
  }
@@ -920,9 +920,8 @@ export class AgentRuntime {
920
920
  }
921
921
  }
922
922
  async runAutoCompaction(signal, turnSettings) {
923
- const settings = turnSettings.compactionPolicy;
924
923
  const preparation = prepareAutoCompaction(this.historyEntries, {
925
- keepRecentTokens: Math.min(settings.keepRecentTokens, this.getAutoCompactionThresholdTokens(settings, turnSettings)),
924
+ keepRecentTokens: Math.min(AUTO_COMPACTION_KEEP_RECENT_TOKENS, this.getAutoCompactionThresholdTokens(turnSettings)),
926
925
  systemPrompt: turnSettings.systemPrompt,
927
926
  });
928
927
  if (!preparation) {
@@ -1005,19 +1004,15 @@ export class AgentRuntime {
1005
1004
  return prependTauHiddenSystemMessages(text, this.getCompactionContinuationSystemMessages?.() ?? []);
1006
1005
  }
1007
1006
  shouldRunAutoCompaction(turnSettings) {
1008
- const settings = turnSettings.compactionPolicy;
1009
- if (!settings.enabled) {
1010
- return false;
1011
- }
1012
- const thresholdTokens = this.getAutoCompactionThresholdTokens(settings, turnSettings);
1007
+ const thresholdTokens = this.getAutoCompactionThresholdTokens(turnSettings);
1013
1008
  if (thresholdTokens <= 0) {
1014
1009
  return false;
1015
1010
  }
1016
1011
  const usageTokens = this.getFreshContextUsageEstimateTokens(turnSettings.modelContextKey);
1017
1012
  return usageTokens !== undefined && usageTokens > thresholdTokens;
1018
1013
  }
1019
- getAutoCompactionThresholdTokens(settings, turnSettings) {
1020
- return (turnSettings.model.model.contextWindow ?? 0) - settings.reserveTokens;
1014
+ getAutoCompactionThresholdTokens(turnSettings) {
1015
+ return (turnSettings.model.model.contextWindow ?? 0) - AUTO_COMPACTION_RESERVE_TOKENS;
1021
1016
  }
1022
1017
  getFreshContextUsageEstimateTokens(modelContextKey) {
1023
1018
  const checkpoint = this.usageCheckpoint;