veryfront 0.1.1239 → 0.1.1241

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 (611) hide show
  1. package/esm/cli/commands/build/command-help.d.ts.map +1 -1
  2. package/esm/cli/commands/build/command-help.js +4 -0
  3. package/esm/cli/commands/build/command.d.ts +3 -1
  4. package/esm/cli/commands/build/command.d.ts.map +1 -1
  5. package/esm/cli/commands/build/command.js +13 -5
  6. package/esm/cli/commands/build/handler.d.ts +17 -0
  7. package/esm/cli/commands/build/handler.d.ts.map +1 -1
  8. package/esm/cli/commands/build/handler.js +188 -9
  9. package/esm/cli/commands/generate/command.d.ts.map +1 -1
  10. package/esm/cli/commands/generate/command.js +40 -0
  11. package/esm/cli/commands/push/command.d.ts.map +1 -1
  12. package/esm/cli/commands/push/command.js +24 -16
  13. package/esm/cli/shared/ensure-content-processor.d.ts +16 -1
  14. package/esm/cli/shared/ensure-content-processor.d.ts.map +1 -1
  15. package/esm/cli/shared/ensure-content-processor.js +39 -5
  16. package/esm/cli/shared/project-creation.d.ts.map +1 -1
  17. package/esm/cli/shared/project-creation.js +29 -1
  18. package/esm/deno.d.ts +14 -5
  19. package/esm/deno.js +23 -7
  20. package/esm/extensions/ext-llm-openai/src/openai-chat-stream.d.ts.map +1 -1
  21. package/esm/extensions/ext-llm-openai/src/openai-chat-stream.js +16 -6
  22. package/esm/extensions/ext-llm-openai/src/openai-provider.d.ts.map +1 -1
  23. package/esm/extensions/ext-llm-openai/src/openai-provider.js +11 -2
  24. package/esm/extensions/ext-llm-openai/src/openai-reasoning-models.d.ts +2 -14
  25. package/esm/extensions/ext-llm-openai/src/openai-reasoning-models.d.ts.map +1 -1
  26. package/esm/extensions/ext-llm-openai/src/openai-reasoning-models.js +1 -72
  27. package/esm/extensions/ext-schema-zod/src/adapter.d.ts.map +1 -1
  28. package/esm/src/agent/ag-ui/browser-aliases.d.ts +164 -0
  29. package/esm/src/agent/ag-ui/browser-aliases.d.ts.map +1 -0
  30. package/esm/src/agent/ag-ui/browser-aliases.js +68 -0
  31. package/esm/src/agent/ag-ui/chat-ui-chunk-encoder.d.ts +35 -0
  32. package/esm/src/agent/ag-ui/chat-ui-chunk-encoder.d.ts.map +1 -0
  33. package/esm/src/agent/ag-ui/{chat-ui-chunk-browser-encoder.js → chat-ui-chunk-encoder.js} +11 -11
  34. package/esm/src/agent/ag-ui/chunk-encoder-bridge.d.ts +8 -6
  35. package/esm/src/agent/ag-ui/chunk-encoder-bridge.d.ts.map +1 -1
  36. package/esm/src/agent/ag-ui/chunk-encoder-bridge.js +5 -4
  37. package/esm/src/agent/ag-ui/chunk-encoder.d.ts +26 -0
  38. package/esm/src/agent/ag-ui/chunk-encoder.d.ts.map +1 -0
  39. package/esm/src/agent/ag-ui/{browser-chunk-encoder.js → chunk-encoder.js} +3 -2
  40. package/esm/src/agent/ag-ui/{browser-encoder.d.ts → encoder.d.ts} +33 -19
  41. package/esm/src/agent/ag-ui/encoder.d.ts.map +1 -0
  42. package/esm/src/agent/ag-ui/{browser-encoder.js → encoder.js} +81 -27
  43. package/esm/src/agent/ag-ui/finalize-tracker.d.ts +15 -0
  44. package/esm/src/agent/ag-ui/finalize-tracker.d.ts.map +1 -0
  45. package/esm/src/agent/ag-ui/{browser-finalize-tracker.js → finalize-tracker.js} +4 -4
  46. package/esm/src/agent/ag-ui/response-stream.d.ts +36 -0
  47. package/esm/src/agent/ag-ui/response-stream.d.ts.map +1 -0
  48. package/esm/src/agent/ag-ui/{browser-response-stream.js → response-stream.js} +6 -3
  49. package/esm/src/agent/ag-ui/runtime-chat-stream-encoder.d.ts +1 -1
  50. package/esm/src/agent/ag-ui/runtime-chat-stream-encoder.d.ts.map +1 -1
  51. package/esm/src/agent/ag-ui/runtime-event-encoder.d.ts +7 -7
  52. package/esm/src/agent/ag-ui/runtime-event-encoder.d.ts.map +1 -1
  53. package/esm/src/agent/ag-ui/runtime-event-encoder.js +4 -4
  54. package/esm/src/agent/ag-ui/runtime-response.d.ts +20 -0
  55. package/esm/src/agent/ag-ui/runtime-response.d.ts.map +1 -0
  56. package/esm/src/agent/ag-ui/runtime-response.js +16 -0
  57. package/esm/src/agent/ag-ui/sse-parser.d.ts +1 -1
  58. package/esm/src/agent/ag-ui/sse-parser.d.ts.map +1 -1
  59. package/esm/src/agent/ag-ui/sse-parser.js +3 -3
  60. package/esm/src/agent/ag-ui/tracked-response.d.ts +11 -0
  61. package/esm/src/agent/ag-ui/tracked-response.d.ts.map +1 -0
  62. package/esm/src/agent/ag-ui/{tracked-browser-response.js → tracked-response.js} +6 -4
  63. package/esm/src/agent/conversation/hosted-lifecycle.d.ts.map +1 -1
  64. package/esm/src/agent/conversation/hosted-lifecycle.js +2 -1
  65. package/esm/src/agent/conversation/lifecycle-run-event-adapter.d.ts.map +1 -1
  66. package/esm/src/agent/conversation/lifecycle-run-event-adapter.js +2 -0
  67. package/esm/src/agent/conversation/private-run-event.d.ts.map +1 -1
  68. package/esm/src/agent/conversation/private-run-event.js +174 -3
  69. package/esm/src/agent/conversation/run-chunk-mirror.d.ts +2 -0
  70. package/esm/src/agent/conversation/run-chunk-mirror.d.ts.map +1 -1
  71. package/esm/src/agent/conversation/run-chunk-mirror.js +13 -6
  72. package/esm/src/agent/conversation/run-events.d.ts +8 -0
  73. package/esm/src/agent/conversation/run-events.d.ts.map +1 -1
  74. package/esm/src/agent/conversation/run-events.js +54 -4
  75. package/esm/src/agent/conversation/run-stream-mirror.d.ts.map +1 -1
  76. package/esm/src/agent/conversation/run-stream-mirror.js +5 -2
  77. package/esm/src/agent/hosted/durable-run-event-sink.d.ts +2 -1
  78. package/esm/src/agent/hosted/durable-run-event-sink.d.ts.map +1 -1
  79. package/esm/src/agent/hosted/durable-run-event-sink.js +9 -7
  80. package/esm/src/agent/hosted/prepared-chat-execution.js +2 -2
  81. package/esm/src/agent/index.d.ts +9 -8
  82. package/esm/src/agent/index.d.ts.map +1 -1
  83. package/esm/src/agent/index.js +9 -8
  84. package/esm/src/agent/memory/memory.d.ts.map +1 -1
  85. package/esm/src/agent/memory/memory.js +7 -6
  86. package/esm/src/agent/react/use-chat/types.d.ts +2 -0
  87. package/esm/src/agent/react/use-chat/types.d.ts.map +1 -1
  88. package/esm/src/agent/react/use-chat/use-chat.js +3 -2
  89. package/esm/src/agent/runtime/ag-ui-contract.d.ts +2 -2
  90. package/esm/src/agent/runtime/ag-ui-contract.d.ts.map +1 -1
  91. package/esm/src/agent/runtime/ag-ui-contract.js +2 -2
  92. package/esm/src/agent/runtime/chat-stream-handler.d.ts.map +1 -1
  93. package/esm/src/agent/runtime/chat-stream-handler.js +34 -4
  94. package/esm/src/agent/runtime/index.d.ts.map +1 -1
  95. package/esm/src/agent/runtime/index.js +15 -6
  96. package/esm/src/agent/streaming/data-stream.d.ts +1 -1
  97. package/esm/src/agent/streaming/data-stream.d.ts.map +1 -1
  98. package/esm/src/agent/streaming/fork-runtime-part-mapper.d.ts +1 -1
  99. package/esm/src/agent/streaming/fork-runtime-part-mapper.d.ts.map +1 -1
  100. package/esm/src/agent/streaming/lifecycle/live-adapter.d.ts.map +1 -1
  101. package/esm/src/agent/streaming/lifecycle/live-adapter.js +2 -0
  102. package/esm/src/agent/streaming/lifecycle/reducer.d.ts.map +1 -1
  103. package/esm/src/agent/streaming/lifecycle/reducer.js +7 -0
  104. package/esm/src/agent/streaming/lifecycle/runtime-provider-adapter.js +4 -0
  105. package/esm/src/build/production-build/templates.d.ts.map +1 -1
  106. package/esm/src/build/production-build/templates.js +1 -1
  107. package/esm/src/cache/request-cache-batcher.d.ts +1 -0
  108. package/esm/src/cache/request-cache-batcher.d.ts.map +1 -1
  109. package/esm/src/cache/request-cache-batcher.js +21 -7
  110. package/esm/src/chat/ag-ui.d.ts +1 -1
  111. package/esm/src/chat/index.d.ts +2 -2
  112. package/esm/src/chat/index.d.ts.map +1 -1
  113. package/esm/src/chat/index.js +1 -1
  114. package/esm/src/config/config-shim.d.ts +1 -1
  115. package/esm/src/config/config-shim.d.ts.map +1 -1
  116. package/esm/src/config/config-shim.js +1 -1
  117. package/esm/src/config/declarative-evaluator-worker-protocol.d.ts.map +1 -1
  118. package/esm/src/config/env.js +1 -1
  119. package/esm/src/config/environment-config.js +1 -1
  120. package/esm/src/config/loader.d.ts.map +1 -1
  121. package/esm/src/config/loader.js +4 -4
  122. package/esm/src/config/schemas/config.schema.d.ts +20 -0
  123. package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
  124. package/esm/src/config/schemas/config.schema.js +27 -0
  125. package/esm/src/config/server-external-packages.d.ts +11 -0
  126. package/esm/src/config/server-external-packages.d.ts.map +1 -0
  127. package/esm/src/config/server-external-packages.js +53 -0
  128. package/esm/src/data/data-fetcher.d.ts.map +1 -1
  129. package/esm/src/data/data-fetcher.js +9 -4
  130. package/esm/src/data/data-result-validation.d.ts +5 -0
  131. package/esm/src/data/data-result-validation.d.ts.map +1 -0
  132. package/esm/src/data/data-result-validation.js +56 -0
  133. package/esm/src/data/helpers.d.ts +5 -5
  134. package/esm/src/data/helpers.d.ts.map +1 -1
  135. package/esm/src/data/helpers.js +22 -68
  136. package/esm/src/data/index.d.ts +1 -1
  137. package/esm/src/data/index.d.ts.map +1 -1
  138. package/esm/src/data/response-metadata.d.ts +23 -0
  139. package/esm/src/data/response-metadata.d.ts.map +1 -0
  140. package/esm/src/data/response-metadata.js +311 -0
  141. package/esm/src/data/schemas/data.schema.d.ts +95 -6
  142. package/esm/src/data/schemas/data.schema.d.ts.map +1 -1
  143. package/esm/src/data/schemas/data.schema.js +57 -3
  144. package/esm/src/data/schemas/index.d.ts +1 -1
  145. package/esm/src/data/schemas/index.d.ts.map +1 -1
  146. package/esm/src/data/schemas/index.js +1 -1
  147. package/esm/src/data/server-data-fetcher.d.ts.map +1 -1
  148. package/esm/src/data/server-data-fetcher.js +5 -5
  149. package/esm/src/data/static-data-fetcher.d.ts +2 -2
  150. package/esm/src/data/static-data-fetcher.d.ts.map +1 -1
  151. package/esm/src/data/static-data-fetcher.js +6 -3
  152. package/esm/src/data/types.d.ts +1 -1
  153. package/esm/src/data/types.d.ts.map +1 -1
  154. package/esm/src/discovery/discovery-engine.d.ts.map +1 -1
  155. package/esm/src/discovery/discovery-engine.js +81 -26
  156. package/esm/src/discovery/handlers/task-handler.d.ts +1 -1
  157. package/esm/src/discovery/handlers/task-handler.d.ts.map +1 -1
  158. package/esm/src/discovery/handlers/task-handler.js +6 -3
  159. package/esm/src/discovery/types.d.ts +6 -4
  160. package/esm/src/discovery/types.d.ts.map +1 -1
  161. package/esm/src/errors/error-registry/runtime.d.ts +2 -0
  162. package/esm/src/errors/error-registry/runtime.d.ts.map +1 -1
  163. package/esm/src/errors/error-registry/runtime.js +8 -0
  164. package/esm/src/errors/error-registry.d.ts +1 -0
  165. package/esm/src/errors/error-registry.d.ts.map +1 -1
  166. package/esm/src/errors/index.d.ts +1 -1
  167. package/esm/src/errors/index.d.ts.map +1 -1
  168. package/esm/src/errors/index.js +1 -1
  169. package/esm/src/errors/user-friendly/error-wrapper.js +1 -1
  170. package/esm/src/errors/veryfront-error.d.ts.map +1 -1
  171. package/esm/src/extensions/index.d.ts +2 -0
  172. package/esm/src/extensions/index.d.ts.map +1 -1
  173. package/esm/src/extensions/index.js +1 -0
  174. package/esm/src/extensions/parser/code-parser.d.ts +9 -0
  175. package/esm/src/extensions/parser/code-parser.d.ts.map +1 -1
  176. package/esm/src/extensions/parser/defaults.d.ts +5 -0
  177. package/esm/src/extensions/parser/defaults.d.ts.map +1 -1
  178. package/esm/src/extensions/parser/defaults.js +23 -11
  179. package/esm/src/fs/index.d.ts +50 -1
  180. package/esm/src/fs/index.d.ts.map +1 -1
  181. package/esm/src/fs/index.js +50 -1
  182. package/esm/src/html/html-injection.d.ts +2 -0
  183. package/esm/src/html/html-injection.d.ts.map +1 -1
  184. package/esm/src/html/html-injection.js +4 -1
  185. package/esm/src/html/html-shell-generator.d.ts.map +1 -1
  186. package/esm/src/html/html-shell-generator.js +11 -3
  187. package/esm/src/html/hydration-script-builder/hydration-runtime.generated.d.ts.map +1 -1
  188. package/esm/src/html/hydration-script-builder/hydration-runtime.generated.js +1 -1
  189. package/esm/src/html/hydration-script-builder/prod-runtime-selection.d.ts +23 -0
  190. package/esm/src/html/hydration-script-builder/prod-runtime-selection.d.ts.map +1 -0
  191. package/esm/src/html/hydration-script-builder/prod-runtime-selection.js +55 -0
  192. package/esm/src/html/hydration-script-builder/prod-scripts.d.ts +2 -0
  193. package/esm/src/html/hydration-script-builder/prod-scripts.d.ts.map +1 -1
  194. package/esm/src/html/hydration-script-builder/prod-scripts.js +12 -3
  195. package/esm/src/html/schemas/html.schema.d.ts +2 -0
  196. package/esm/src/html/schemas/html.schema.d.ts.map +1 -1
  197. package/esm/src/html/schemas/html.schema.js +2 -0
  198. package/esm/src/html/styles-builder/css-hash-cache.d.ts +1 -1
  199. package/esm/src/html/styles-builder/css-hash-cache.d.ts.map +1 -1
  200. package/esm/src/html/styles-builder/css-hash-cache.js +1 -1
  201. package/esm/src/index.client.d.ts +2 -2
  202. package/esm/src/index.client.d.ts.map +1 -1
  203. package/esm/src/index.client.js +3 -1
  204. package/esm/src/index.d.ts +1 -1
  205. package/esm/src/index.d.ts.map +1 -1
  206. package/esm/src/internal-agents/ag-ui-sse.d.ts +7 -7
  207. package/esm/src/internal-agents/ag-ui-sse.d.ts.map +1 -1
  208. package/esm/src/internal-agents/ag-ui-sse.js +17 -9
  209. package/esm/src/internal-agents/control-plane-auth.js +1 -1
  210. package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
  211. package/esm/src/internal-agents/run-stream.js +15 -9
  212. package/esm/src/modules/import-map/loader.d.ts.map +1 -1
  213. package/esm/src/modules/import-map/loader.js +2 -2
  214. package/esm/src/modules/import-map/merger.js +2 -2
  215. package/esm/src/modules/import-map/preloader.js +2 -2
  216. package/esm/src/modules/react-loader/component-loader.d.ts.map +1 -1
  217. package/esm/src/modules/react-loader/component-loader.js +2 -0
  218. package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts +1 -1
  219. package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts.map +1 -1
  220. package/esm/src/modules/react-loader/ssr-module-loader/loader.js +3 -2
  221. package/esm/src/modules/react-loader/ssr-module-loader/ssr-cache-manager.d.ts.map +1 -1
  222. package/esm/src/modules/react-loader/ssr-module-loader/ssr-cache-manager.js +7 -1
  223. package/esm/src/modules/react-loader/ssr-module-loader/types.d.ts +2 -0
  224. package/esm/src/modules/react-loader/ssr-module-loader/types.d.ts.map +1 -1
  225. package/esm/src/modules/react-loader/transformed-module-coordinator.d.ts.map +1 -1
  226. package/esm/src/modules/react-loader/transformed-module-coordinator.js +2 -1
  227. package/esm/src/modules/react-loader/types.d.ts +2 -0
  228. package/esm/src/modules/react-loader/types.d.ts.map +1 -1
  229. package/esm/src/modules/server/module-response-cache.d.ts +1 -0
  230. package/esm/src/modules/server/module-response-cache.d.ts.map +1 -1
  231. package/esm/src/modules/server/module-response-cache.js +5 -0
  232. package/esm/src/modules/server/module-server.d.ts.map +1 -1
  233. package/esm/src/modules/server/module-server.js +4 -0
  234. package/esm/src/modules/server/module-transform.d.ts.map +1 -1
  235. package/esm/src/modules/server/module-transform.js +2 -0
  236. package/esm/src/observability/metrics/config.js +1 -1
  237. package/esm/src/observability/request-profiler.js +1 -1
  238. package/esm/src/observability/telemetry-error.js +2 -2
  239. package/esm/src/observability/tracing/telemetry-env.js +1 -1
  240. package/esm/src/platform/adapters/fs/cache/file-cache.d.ts.map +1 -1
  241. package/esm/src/platform/adapters/fs/cache/file-cache.js +5 -0
  242. package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts +39 -0
  243. package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts.map +1 -1
  244. package/esm/src/platform/adapters/fs/veryfront/adapter.js +209 -40
  245. package/esm/src/platform/adapters/fs/veryfront/file-list-index.d.ts.map +1 -1
  246. package/esm/src/platform/adapters/fs/veryfront/file-list-index.js +0 -14
  247. package/esm/src/platform/adapters/fs/veryfront/read-operations-helpers.d.ts +0 -1
  248. package/esm/src/platform/adapters/fs/veryfront/read-operations-helpers.d.ts.map +1 -1
  249. package/esm/src/platform/adapters/fs/veryfront/read-operations-helpers.js +0 -3
  250. package/esm/src/platform/adapters/fs/veryfront/read-operations.d.ts.map +1 -1
  251. package/esm/src/platform/adapters/fs/veryfront/read-operations.js +1 -4
  252. package/esm/src/platform/adapters/fs/veryfront/request-context.d.ts.map +1 -1
  253. package/esm/src/platform/adapters/fs/veryfront/request-context.js +4 -0
  254. package/esm/src/platform/adapters/fs/veryfront/stat-operations.d.ts.map +1 -1
  255. package/esm/src/platform/adapters/fs/veryfront/stat-operations.js +9 -1
  256. package/esm/src/platform/adapters/fs/veryfront/websocket-manager-helpers.js +1 -1
  257. package/esm/src/platform/adapters/fs/veryfront/websocket-manager.d.ts +2 -1
  258. package/esm/src/platform/adapters/fs/veryfront/websocket-manager.d.ts.map +1 -1
  259. package/esm/src/platform/adapters/fs/veryfront/websocket-manager.js +97 -66
  260. package/esm/src/platform/compat/dns.d.ts +10 -0
  261. package/esm/src/platform/compat/dns.d.ts.map +1 -1
  262. package/esm/src/platform/compat/dns.js +50 -0
  263. package/esm/src/platform/compat/http/pinned-fetch.d.ts +1 -1
  264. package/esm/src/platform/compat/process/lifecycle.d.ts +10 -0
  265. package/esm/src/platform/compat/process/lifecycle.d.ts.map +1 -1
  266. package/esm/src/platform/compat/process/lifecycle.js +23 -0
  267. package/esm/src/platform/compat/process.d.ts +1 -1
  268. package/esm/src/platform/compat/process.d.ts.map +1 -1
  269. package/esm/src/platform/compat/process.js +1 -1
  270. package/esm/src/platform/compat/proxy-topology.js +1 -1
  271. package/esm/src/platform/request-context-access.d.ts +24 -0
  272. package/esm/src/platform/request-context-access.d.ts.map +1 -0
  273. package/esm/src/platform/request-context-access.js +26 -0
  274. package/esm/src/provider/shared/openai-reasoning.d.ts +16 -0
  275. package/esm/src/provider/shared/openai-reasoning.d.ts.map +1 -0
  276. package/esm/src/provider/shared/openai-reasoning.js +73 -0
  277. package/esm/src/provider/types.d.ts +2 -0
  278. package/esm/src/provider/types.d.ts.map +1 -1
  279. package/esm/src/provider/veryfront-cloud/provider.d.ts.map +1 -1
  280. package/esm/src/provider/veryfront-cloud/provider.js +45 -18
  281. package/esm/src/proxy/handler.d.ts +1 -0
  282. package/esm/src/proxy/handler.d.ts.map +1 -1
  283. package/esm/src/proxy/handler.js +17 -4
  284. package/esm/src/proxy/proxy-error-context.d.ts +1 -0
  285. package/esm/src/proxy/proxy-error-context.d.ts.map +1 -1
  286. package/esm/src/proxy/proxy-error-context.js +1 -0
  287. package/esm/src/proxy/request-host.d.ts +3 -0
  288. package/esm/src/proxy/request-host.d.ts.map +1 -1
  289. package/esm/src/proxy/request-host.js +28 -8
  290. package/esm/src/proxy/routing-invalidation-redis.d.ts.map +1 -1
  291. package/esm/src/proxy/routing-invalidation-redis.js +38 -4
  292. package/esm/src/react/components/chat/chat/components/attachments-panel.d.ts +27 -3
  293. package/esm/src/react/components/chat/chat/components/attachments-panel.d.ts.map +1 -1
  294. package/esm/src/react/components/chat/chat/components/attachments-panel.js +29 -7
  295. package/esm/src/react/components/chat/chat/components/sidebar.d.ts +15 -6
  296. package/esm/src/react/components/chat/chat/components/sidebar.d.ts.map +1 -1
  297. package/esm/src/react/components/chat/chat/components/sidebar.js +37 -4
  298. package/esm/src/react/components/chat/chat/components/sidebar.types.d.ts +12 -1
  299. package/esm/src/react/components/chat/chat/components/sidebar.types.d.ts.map +1 -1
  300. package/esm/src/react/components/chat/chat/composition/chat-composer.d.ts +3 -1
  301. package/esm/src/react/components/chat/chat/composition/chat-composer.d.ts.map +1 -1
  302. package/esm/src/react/components/chat/chat/composition/chat-composer.js +17 -6
  303. package/esm/src/react/components/chat/chat/composition/chat-composer.types.d.ts +12 -5
  304. package/esm/src/react/components/chat/chat/composition/chat-composer.types.d.ts.map +1 -1
  305. package/esm/src/react/components/chat/chat/composition/chat-root.d.ts +18 -5
  306. package/esm/src/react/components/chat/chat/composition/chat-root.d.ts.map +1 -1
  307. package/esm/src/react/components/chat/chat/composition/chat-root.js +65 -1
  308. package/esm/src/react/components/chat/chat/composition/use-composer-value.d.ts +6 -3
  309. package/esm/src/react/components/chat/chat/composition/use-composer-value.d.ts.map +1 -1
  310. package/esm/src/react/components/chat/chat/composition/use-composer-value.js +56 -5
  311. package/esm/src/react/components/chat/chat/contexts/chat-context.d.ts +7 -1
  312. package/esm/src/react/components/chat/chat/contexts/chat-context.d.ts.map +1 -1
  313. package/esm/src/react/components/chat/chat/contexts/conversations-context.d.ts +14 -4
  314. package/esm/src/react/components/chat/chat/contexts/conversations-context.d.ts.map +1 -1
  315. package/esm/src/react/components/chat/chat/contexts/conversations-context.js +10 -1
  316. package/esm/src/react/components/chat/chat/index.d.ts +1 -1
  317. package/esm/src/react/components/chat/chat/index.d.ts.map +1 -1
  318. package/esm/src/react/components/chat/chat/persistence/conversation-codec.d.ts.map +1 -1
  319. package/esm/src/react/components/chat/chat.d.ts +1 -1
  320. package/esm/src/react/components/chat/chat.d.ts.map +1 -1
  321. package/esm/src/react/server-render-context.d.ts.map +1 -1
  322. package/esm/src/release-assets/dependency-artifact-builder.d.ts.map +1 -1
  323. package/esm/src/rendering/app-reserved.d.ts +2 -2
  324. package/esm/src/rendering/app-reserved.d.ts.map +1 -1
  325. package/esm/src/rendering/app-reserved.js +4 -3
  326. package/esm/src/rendering/cache/cache-coordinator.d.ts.map +1 -1
  327. package/esm/src/rendering/cache/cache-coordinator.js +1 -0
  328. package/esm/src/rendering/cache/cache-payload.d.ts.map +1 -1
  329. package/esm/src/rendering/cache/cache-payload.js +44 -0
  330. package/esm/src/rendering/component-handling.d.ts +4 -1
  331. package/esm/src/rendering/component-handling.d.ts.map +1 -1
  332. package/esm/src/rendering/component-handling.js +13 -6
  333. package/esm/src/rendering/layouts/layout-applicator.d.ts.map +1 -1
  334. package/esm/src/rendering/layouts/layout-applicator.js +3 -1
  335. package/esm/src/rendering/layouts/layout-collector.d.ts +1 -0
  336. package/esm/src/rendering/layouts/layout-collector.d.ts.map +1 -1
  337. package/esm/src/rendering/layouts/layout-collector.js +201 -4
  338. package/esm/src/rendering/layouts/utils/applicator.d.ts +1 -1
  339. package/esm/src/rendering/layouts/utils/applicator.d.ts.map +1 -1
  340. package/esm/src/rendering/layouts/utils/applicator.js +3 -3
  341. package/esm/src/rendering/layouts/utils/component-loader.d.ts +2 -2
  342. package/esm/src/rendering/layouts/utils/component-loader.d.ts.map +1 -1
  343. package/esm/src/rendering/layouts/utils/component-loader.js +12 -4
  344. package/esm/src/rendering/orchestrator/file-resolver/index.d.ts +3 -1
  345. package/esm/src/rendering/orchestrator/file-resolver/index.d.ts.map +1 -1
  346. package/esm/src/rendering/orchestrator/file-resolver/index.js +13 -5
  347. package/esm/src/rendering/orchestrator/html.d.ts.map +1 -1
  348. package/esm/src/rendering/orchestrator/html.js +26 -10
  349. package/esm/src/rendering/orchestrator/layout.d.ts.map +1 -1
  350. package/esm/src/rendering/orchestrator/layout.js +2 -2
  351. package/esm/src/rendering/orchestrator/module-loader/dependency-resolver.d.ts.map +1 -1
  352. package/esm/src/rendering/orchestrator/module-loader/dependency-resolver.js +20 -2
  353. package/esm/src/rendering/orchestrator/module-loader/index.d.ts +2 -0
  354. package/esm/src/rendering/orchestrator/module-loader/index.d.ts.map +1 -1
  355. package/esm/src/rendering/orchestrator/module-loader/index.js +6 -3
  356. package/esm/src/rendering/orchestrator/module-loader/module-cache-lookup.d.ts +3 -2
  357. package/esm/src/rendering/orchestrator/module-loader/module-cache-lookup.d.ts.map +1 -1
  358. package/esm/src/rendering/orchestrator/module-loader/module-cache-lookup.js +6 -6
  359. package/esm/src/rendering/orchestrator/module-loader/module-persistence.d.ts +1 -0
  360. package/esm/src/rendering/orchestrator/module-loader/module-persistence.d.ts.map +1 -1
  361. package/esm/src/rendering/orchestrator/module-loader/module-persistence.js +2 -2
  362. package/esm/src/rendering/orchestrator/module-loader/module-transform-cache.d.ts +2 -0
  363. package/esm/src/rendering/orchestrator/module-loader/module-transform-cache.d.ts.map +1 -1
  364. package/esm/src/rendering/orchestrator/module-loader/module-transform-cache.js +7 -1
  365. package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
  366. package/esm/src/rendering/orchestrator/pipeline.js +58 -10
  367. package/esm/src/rendering/orchestrator/render-result-assembly.d.ts +3 -0
  368. package/esm/src/rendering/orchestrator/render-result-assembly.d.ts.map +1 -1
  369. package/esm/src/rendering/orchestrator/render-result-assembly.js +3 -1
  370. package/esm/src/rendering/page-renderer.d.ts +2 -0
  371. package/esm/src/rendering/page-renderer.d.ts.map +1 -1
  372. package/esm/src/rendering/page-renderer.js +4 -1
  373. package/esm/src/rendering/page-rendering.d.ts +2 -0
  374. package/esm/src/rendering/page-rendering.d.ts.map +1 -1
  375. package/esm/src/rendering/page-rendering.js +1 -0
  376. package/esm/src/rendering/renderer.d.ts.map +1 -1
  377. package/esm/src/rendering/renderer.js +31 -1
  378. package/esm/src/rendering/script-page-handling.d.ts +2 -0
  379. package/esm/src/rendering/script-page-handling.d.ts.map +1 -1
  380. package/esm/src/rendering/script-page-handling.js +17 -1
  381. package/esm/src/rendering/shared/context-aware-cache.d.ts.map +1 -1
  382. package/esm/src/rendering/shared/context-aware-cache.js +3 -0
  383. package/esm/src/rendering/snippet-renderer.d.ts +10 -0
  384. package/esm/src/rendering/snippet-renderer.d.ts.map +1 -1
  385. package/esm/src/rendering/snippet-renderer.js +40 -18
  386. package/esm/src/rendering/ssr/component-registry.d.ts +1 -1
  387. package/esm/src/rendering/ssr/component-registry.d.ts.map +1 -1
  388. package/esm/src/rendering/ssr/component-registry.js +13 -6
  389. package/esm/src/rendering/ssr-outcome.d.ts +4 -3
  390. package/esm/src/rendering/ssr-outcome.d.ts.map +1 -1
  391. package/esm/src/rendering/ssr-outcome.js +25 -8
  392. package/esm/src/routing/api/handler.d.ts +1 -1
  393. package/esm/src/routing/api/handler.d.ts.map +1 -1
  394. package/esm/src/routing/api/handler.js +6 -1
  395. package/esm/src/runtime/model-call-context.d.ts +37 -2
  396. package/esm/src/runtime/model-call-context.d.ts.map +1 -1
  397. package/esm/src/runtime/model-call-context.js +42 -1
  398. package/esm/src/runtime/runtime-bridge.d.ts.map +1 -1
  399. package/esm/src/runtime/runtime-bridge.js +108 -8
  400. package/esm/src/sandbox/shell-tools.d.ts.map +1 -1
  401. package/esm/src/sandbox/shell-tools.js +16 -6
  402. package/esm/src/schedule/validation.d.ts +9 -1
  403. package/esm/src/schedule/validation.d.ts.map +1 -1
  404. package/esm/src/schedule/validation.js +167 -80
  405. package/esm/src/schemas/json-value.d.ts.map +1 -1
  406. package/esm/src/schemas/json-value.js +81 -37
  407. package/esm/src/security/http/base-handler.js +1 -1
  408. package/esm/src/security/sandbox/project-worker.d.ts +1 -0
  409. package/esm/src/security/sandbox/project-worker.d.ts.map +1 -1
  410. package/esm/src/security/sandbox/project-worker.js +6 -0
  411. package/esm/src/security/sandbox/worker-read-scope.d.ts +20 -0
  412. package/esm/src/security/sandbox/worker-read-scope.d.ts.map +1 -0
  413. package/esm/src/security/sandbox/worker-read-scope.js +127 -0
  414. package/esm/src/security/sandbox/worker-types.d.ts +12 -0
  415. package/esm/src/security/sandbox/worker-types.d.ts.map +1 -1
  416. package/esm/src/server/handlers/dev/dashboard/api.d.ts.map +1 -1
  417. package/esm/src/server/handlers/dev/dashboard/api.js +70 -3
  418. package/esm/src/server/handlers/dev/files/esbuild-plugins.d.ts +5 -0
  419. package/esm/src/server/handlers/dev/files/esbuild-plugins.d.ts.map +1 -1
  420. package/esm/src/server/handlers/dev/files/esbuild-plugins.js +61 -3
  421. package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
  422. package/esm/src/server/handlers/dev/framework-candidates.generated.js +227 -29
  423. package/esm/src/server/handlers/request/api/pages-api-handler.d.ts.map +1 -1
  424. package/esm/src/server/handlers/request/api/pages-api-handler.js +20 -2
  425. package/esm/src/server/handlers/request/module/page-data-endpoint-handler.d.ts.map +1 -1
  426. package/esm/src/server/handlers/request/module/page-data-endpoint-handler.js +32 -15
  427. package/esm/src/server/handlers/request/prod-hydration-module.handler.d.ts.map +1 -1
  428. package/esm/src/server/handlers/request/prod-hydration-module.handler.js +10 -3
  429. package/esm/src/server/handlers/request/project-run-execute.handler.d.ts.map +1 -1
  430. package/esm/src/server/handlers/request/project-run-execute.handler.js +1 -0
  431. package/esm/src/server/handlers/request/snippet.handler.d.ts +6 -0
  432. package/esm/src/server/handlers/request/snippet.handler.d.ts.map +1 -1
  433. package/esm/src/server/handlers/request/snippet.handler.js +8 -1
  434. package/esm/src/server/handlers/request/ssr/error-page-fallback.js +1 -0
  435. package/esm/src/server/handlers/request/ssr/ssr-response-builder.d.ts.map +1 -1
  436. package/esm/src/server/handlers/request/ssr/ssr-response-builder.js +10 -6
  437. package/esm/src/server/handlers/request/ssr/ssr.handler.d.ts.map +1 -1
  438. package/esm/src/server/handlers/request/ssr/ssr.handler.js +22 -10
  439. package/esm/src/server/handlers/request/static.handler.d.ts.map +1 -1
  440. package/esm/src/server/handlers/request/static.handler.js +1 -0
  441. package/esm/src/server/runtime-handler/handler-context-builder.d.ts +2 -0
  442. package/esm/src/server/runtime-handler/handler-context-builder.d.ts.map +1 -1
  443. package/esm/src/server/runtime-handler/handler-context-builder.js +1 -0
  444. package/esm/src/server/runtime-handler/project-runtime-context.d.ts.map +1 -1
  445. package/esm/src/server/runtime-handler/project-runtime-context.js +6 -2
  446. package/esm/src/server/runtime-handler/request-tracker.d.ts.map +1 -1
  447. package/esm/src/server/runtime-handler/request-tracker.js +10 -3
  448. package/esm/src/server/services/rendering/ssr.service.d.ts +5 -0
  449. package/esm/src/server/services/rendering/ssr.service.d.ts.map +1 -1
  450. package/esm/src/server/services/rendering/ssr.service.js +71 -16
  451. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.d.ts.map +1 -1
  452. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +2 -2
  453. package/esm/src/server/services/rsc/orchestrators/handler.d.ts.map +1 -1
  454. package/esm/src/server/services/rsc/orchestrators/handler.js +1 -0
  455. package/esm/src/server/services/rsc/orchestrators/render-handler.d.ts +1 -0
  456. package/esm/src/server/services/rsc/orchestrators/render-handler.d.ts.map +1 -1
  457. package/esm/src/server/services/rsc/orchestrators/render-handler.js +2 -0
  458. package/esm/src/server/services/static/static-file.service.d.ts +4 -1
  459. package/esm/src/server/services/static/static-file.service.d.ts.map +1 -1
  460. package/esm/src/server/services/static/static-file.service.js +48 -22
  461. package/esm/src/server/shared/browser-module-bundler.d.ts.map +1 -1
  462. package/esm/src/server/shared/browser-module-bundler.js +10 -0
  463. package/esm/src/server/utils/request-host.d.ts +6 -0
  464. package/esm/src/server/utils/request-host.d.ts.map +1 -1
  465. package/esm/src/server/utils/request-host.js +42 -1
  466. package/esm/src/skill/tools.d.ts.map +1 -1
  467. package/esm/src/task/definition-snapshot.d.ts +8 -0
  468. package/esm/src/task/definition-snapshot.d.ts.map +1 -0
  469. package/esm/src/task/definition-snapshot.js +154 -0
  470. package/esm/src/task/discovery.d.ts.map +1 -1
  471. package/esm/src/task/discovery.js +47 -21
  472. package/esm/src/task/types.d.ts +3 -0
  473. package/esm/src/task/types.d.ts.map +1 -1
  474. package/esm/src/task/types.js +7 -16
  475. package/esm/src/tool/remote-mcp.d.ts.map +1 -1
  476. package/esm/src/tool/remote-mcp.js +86 -5
  477. package/esm/src/transforms/esm/bundle-recovery.d.ts.map +1 -1
  478. package/esm/src/transforms/esm/bundle-recovery.js +1 -0
  479. package/esm/src/transforms/esm/http-cache-helpers.d.ts +3 -1
  480. package/esm/src/transforms/esm/http-cache-helpers.d.ts.map +1 -1
  481. package/esm/src/transforms/esm/http-cache-helpers.js +18 -2
  482. package/esm/src/transforms/esm/http-cache-wrapper.d.ts.map +1 -1
  483. package/esm/src/transforms/esm/http-cache-wrapper.js +23 -0
  484. package/esm/src/transforms/esm/specifier-resolver.d.ts.map +1 -1
  485. package/esm/src/transforms/esm/specifier-resolver.js +2 -1
  486. package/esm/src/transforms/esm/types.d.ts +2 -0
  487. package/esm/src/transforms/esm/types.d.ts.map +1 -1
  488. package/esm/src/transforms/import-rewriter/commonjs-policy.d.ts +22 -0
  489. package/esm/src/transforms/import-rewriter/commonjs-policy.d.ts.map +1 -0
  490. package/esm/src/transforms/import-rewriter/commonjs-policy.js +75 -0
  491. package/esm/src/transforms/import-rewriter/core.d.ts.map +1 -1
  492. package/esm/src/transforms/import-rewriter/core.js +29 -1
  493. package/esm/src/transforms/import-rewriter/ssr-adapter.d.ts +2 -0
  494. package/esm/src/transforms/import-rewriter/ssr-adapter.d.ts.map +1 -1
  495. package/esm/src/transforms/import-rewriter/ssr-adapter.js +79 -10
  496. package/esm/src/transforms/import-rewriter/strategies/bare-strategy.d.ts.map +1 -1
  497. package/esm/src/transforms/import-rewriter/strategies/bare-strategy.js +14 -4
  498. package/esm/src/transforms/import-rewriter/types.d.ts +2 -0
  499. package/esm/src/transforms/import-rewriter/types.d.ts.map +1 -1
  500. package/esm/src/transforms/import-rewriter/url-builder.d.ts +2 -19
  501. package/esm/src/transforms/import-rewriter/url-builder.d.ts.map +1 -1
  502. package/esm/src/transforms/import-rewriter/url-builder.js +2 -67
  503. package/esm/src/transforms/mdx/esm-module-loader/import-transformer.d.ts +3 -2
  504. package/esm/src/transforms/mdx/esm-module-loader/import-transformer.d.ts.map +1 -1
  505. package/esm/src/transforms/mdx/esm-module-loader/import-transformer.js +39 -8
  506. package/esm/src/transforms/mdx/esm-module-loader/jsx/runtime-loader.d.ts.map +1 -1
  507. package/esm/src/transforms/mdx/esm-module-loader/jsx/runtime-loader.js +1 -1
  508. package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.d.ts.map +1 -1
  509. package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.js +1 -0
  510. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.d.ts +3 -3
  511. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.d.ts.map +1 -1
  512. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/cache-keys.js +14 -6
  513. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/distributed-cache.d.ts +1 -1
  514. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/distributed-cache.d.ts.map +1 -1
  515. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/distributed-cache.js +2 -1
  516. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.d.ts +1 -0
  517. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.d.ts.map +1 -1
  518. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.js +1 -1
  519. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts +1 -0
  520. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts.map +1 -1
  521. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.js +6 -3
  522. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/module-cache.d.ts +1 -1
  523. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/module-cache.d.ts.map +1 -1
  524. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/module-cache.js +2 -2
  525. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/persistence.d.ts +1 -0
  526. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/persistence.d.ts.map +1 -1
  527. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/persistence.js +1 -1
  528. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/source-transform.d.ts +1 -0
  529. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/source-transform.d.ts.map +1 -1
  530. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/source-transform.js +2 -0
  531. package/esm/src/transforms/mdx/esm-module-loader/module-writer.d.ts +2 -2
  532. package/esm/src/transforms/mdx/esm-module-loader/module-writer.d.ts.map +1 -1
  533. package/esm/src/transforms/mdx/esm-module-loader/module-writer.js +15 -7
  534. package/esm/src/transforms/mdx/esm-module-loader/types.d.ts +4 -0
  535. package/esm/src/transforms/mdx/esm-module-loader/types.d.ts.map +1 -1
  536. package/esm/src/transforms/mdx/index.d.ts +1 -0
  537. package/esm/src/transforms/mdx/index.d.ts.map +1 -1
  538. package/esm/src/transforms/mdx/index.js +2 -1
  539. package/esm/src/transforms/pipeline/cache-identity.d.ts +1 -0
  540. package/esm/src/transforms/pipeline/cache-identity.d.ts.map +1 -1
  541. package/esm/src/transforms/pipeline/cache-identity.js +15 -0
  542. package/esm/src/transforms/pipeline/context.d.ts.map +1 -1
  543. package/esm/src/transforms/pipeline/context.js +2 -0
  544. package/esm/src/transforms/pipeline/index.d.ts.map +1 -1
  545. package/esm/src/transforms/pipeline/index.js +1 -0
  546. package/esm/src/transforms/pipeline/stages/resolve-imports.d.ts.map +1 -1
  547. package/esm/src/transforms/pipeline/stages/resolve-imports.js +1 -0
  548. package/esm/src/transforms/pipeline/stages/ssr-http-cache.d.ts.map +1 -1
  549. package/esm/src/transforms/pipeline/stages/ssr-http-cache.js +1 -0
  550. package/esm/src/transforms/pipeline/types.d.ts +4 -0
  551. package/esm/src/transforms/pipeline/types.d.ts.map +1 -1
  552. package/esm/src/transforms/shared/esm-sh-specifier.d.ts +18 -0
  553. package/esm/src/transforms/shared/esm-sh-specifier.d.ts.map +1 -0
  554. package/esm/src/transforms/shared/esm-sh-specifier.js +253 -0
  555. package/esm/src/transforms/shared/package-specifier.d.ts.map +1 -1
  556. package/esm/src/transforms/shared/package-specifier.js +9 -2
  557. package/esm/src/transforms/shared/server-only-packages.d.ts +25 -1
  558. package/esm/src/transforms/shared/server-only-packages.d.ts.map +1 -1
  559. package/esm/src/transforms/shared/server-only-packages.js +176 -4
  560. package/esm/src/types/entities/getEntityInfo.d.ts.map +1 -1
  561. package/esm/src/types/index.d.ts +5 -0
  562. package/esm/src/types/index.d.ts.map +1 -1
  563. package/esm/src/types/server.d.ts +6 -0
  564. package/esm/src/types/server.d.ts.map +1 -1
  565. package/esm/src/utils/env-loader.d.ts.map +1 -1
  566. package/esm/src/utils/env-loader.js +2 -1
  567. package/esm/src/utils/feature-flags.js +1 -1
  568. package/esm/src/utils/lru-wrapper.js +2 -2
  569. package/esm/src/utils/memory/profiler.d.ts +20 -0
  570. package/esm/src/utils/memory/profiler.d.ts.map +1 -1
  571. package/esm/src/utils/memory/profiler.js +43 -5
  572. package/esm/src/utils/perf-timer.js +1 -1
  573. package/esm/src/utils/redirect-policy.d.ts +18 -0
  574. package/esm/src/utils/redirect-policy.d.ts.map +1 -0
  575. package/esm/src/utils/redirect-policy.js +92 -0
  576. package/esm/src/utils/redis-client.d.ts.map +1 -1
  577. package/esm/src/utils/redis-client.js +6 -3
  578. package/esm/src/utils/version-constant.d.ts +1 -1
  579. package/esm/src/utils/version-constant.js +1 -1
  580. package/esm/src/workflow/claude-code/tool.d.ts +27 -27
  581. package/esm/src/workflow/claude-code/tool.d.ts.map +1 -1
  582. package/esm/src/workflow/claude-code/wire-protocol.d.ts.map +1 -1
  583. package/esm/src/workflow/dsl/workflow.d.ts +3 -0
  584. package/esm/src/workflow/dsl/workflow.d.ts.map +1 -1
  585. package/esm/src/workflow/dsl/workflow.js +2 -1
  586. package/esm/src/workflow/executor/workflow-definition-snapshot.d.ts.map +1 -1
  587. package/esm/src/workflow/executor/workflow-definition-snapshot.js +88 -39
  588. package/esm/src/workflow/registry.d.ts +4 -1
  589. package/esm/src/workflow/registry.d.ts.map +1 -1
  590. package/esm/src/workflow/registry.js +10 -8
  591. package/esm/src/workflow/types.d.ts +3 -0
  592. package/esm/src/workflow/types.d.ts.map +1 -1
  593. package/esm/templates/index.d.ts.map +1 -1
  594. package/esm/templates/index.js +7 -0
  595. package/esm/templates/manifest.generated.d.ts.map +1 -1
  596. package/esm/templates/manifest.generated.js +1 -1
  597. package/package.json +16 -9
  598. package/esm/src/agent/ag-ui/browser-chunk-encoder.d.ts +0 -24
  599. package/esm/src/agent/ag-ui/browser-chunk-encoder.d.ts.map +0 -1
  600. package/esm/src/agent/ag-ui/browser-encoder.d.ts.map +0 -1
  601. package/esm/src/agent/ag-ui/browser-finalize-tracker.d.ts +0 -15
  602. package/esm/src/agent/ag-ui/browser-finalize-tracker.d.ts.map +0 -1
  603. package/esm/src/agent/ag-ui/browser-response-stream.d.ts +0 -33
  604. package/esm/src/agent/ag-ui/browser-response-stream.d.ts.map +0 -1
  605. package/esm/src/agent/ag-ui/chat-ui-chunk-browser-encoder.d.ts +0 -35
  606. package/esm/src/agent/ag-ui/chat-ui-chunk-browser-encoder.d.ts.map +0 -1
  607. package/esm/src/agent/ag-ui/runtime-browser-response.d.ts +0 -20
  608. package/esm/src/agent/ag-ui/runtime-browser-response.d.ts.map +0 -1
  609. package/esm/src/agent/ag-ui/runtime-browser-response.js +0 -16
  610. package/esm/src/agent/ag-ui/tracked-browser-response.d.ts +0 -11
  611. package/esm/src/agent/ag-ui/tracked-browser-response.d.ts.map +0 -1
@@ -0,0 +1,35 @@
1
+ import type { ChatMessageMetadata, ChatUiMessageChunk } from "../../chat/protocol.js";
2
+ import type { AgUiChunkEncoder } from "./chunk-encoder.js";
3
+ import { type AgUiEncoderStateOptions, type AgUiRunFinishedMetadata, type AgUiRuntimeStreamEvent } from "./encoder.js";
4
+ import { type CreateAgUiTrackedResponseInput } from "./tracked-response.js";
5
+ /** Public API contract for AG-UI chat UI chunk encoder. */
6
+ export type AgUiChatUiChunkEncoder = Pick<AgUiChunkEncoder<ChatUiMessageChunk<ChatMessageMetadata>>, "encode" | "finalize" | "timingState">;
7
+ /** Options accepted by create AG-UI chat UI chunk encoder. */
8
+ export interface CreateAgUiChatUiChunkEncoderOptions {
9
+ /**
10
+ * Timing clocks forwarded verbatim to the encoder state. A single object so
11
+ * that adding a clock is one edit in `AgUiEncoderStateOptions`, not a
12
+ * sweep through every wrapper that happens to sit in between.
13
+ */
14
+ timing?: AgUiEncoderStateOptions;
15
+ modelId?: string;
16
+ resolveProvider?: (modelId: string) => string | undefined;
17
+ }
18
+ /** Input payload for create AG-UI chat UI tracked response. */
19
+ export interface CreateAgUiChatUiTrackedResponseInput extends Omit<CreateAgUiTrackedResponseInput<ChatUiMessageChunk<ChatMessageMetadata>>, "chunkEncoder" | "finalizeTracker"> {
20
+ modelId: string;
21
+ resolveProvider?: CreateAgUiChatUiChunkEncoderOptions["resolveProvider"];
22
+ }
23
+ /** Return AG-UI chat UI message metadata from chunk. */
24
+ export declare function getAgUiChatUiMessageMetadataFromChunk(chunk: ChatUiMessageChunk<ChatMessageMetadata>): ChatMessageMetadata | undefined;
25
+ /** Return AG-UI chat UI message usage metadata. */
26
+ export declare function getAgUiChatUiMessageUsageMetadata(messageMetadata: ChatMessageMetadata | undefined): Pick<AgUiRunFinishedMetadata, "inputTokens" | "outputTokens" | "totalTokens" | "cachedInputTokens" | "cacheCreationInputTokens" | "cacheReadInputTokens" | "reasoningTokens">;
27
+ /** Return AG-UI chat UI message chunk metadata. */
28
+ export declare function getAgUiChatUiMessageChunkMetadata(chunk: ChatUiMessageChunk<ChatMessageMetadata>, options?: Pick<CreateAgUiChatUiChunkEncoderOptions, "resolveProvider">): Partial<AgUiRunFinishedMetadata> | null;
29
+ /** Event emitted for normalize chat UI message chunk to AG-UI runtime. */
30
+ export declare function normalizeChatUiMessageChunkToAgUiRuntimeEvent(chunk: ChatUiMessageChunk<ChatMessageMetadata>): AgUiRuntimeStreamEvent;
31
+ /** Create AG-UI chat UI chunk encoder. */
32
+ export declare function createAgUiChatUiChunkEncoder(options?: CreateAgUiChatUiChunkEncoderOptions): AgUiChatUiChunkEncoder;
33
+ /** Response payload for create AG-UI chat UI tracked response. */
34
+ export declare function createAgUiChatUiTrackedResponse(input: CreateAgUiChatUiTrackedResponseInput): Response;
35
+ //# sourceMappingURL=chat-ui-chunk-encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-ui-chunk-encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/chat-ui-chunk-encoder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,uBAAuB,CAAC;AAE/B,2DAA2D;AAC3D,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,gBAAgB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,EACzD,QAAQ,GAAG,UAAU,GAAG,aAAa,CACtC,CAAC;AAEF,8DAA8D;AAC9D,MAAM,WAAW,mCAAmC;IAClD;;;;OAIG;IACH,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC3D;AAED,+DAA+D;AAC/D,MAAM,WAAW,oCAAqC,SACpD,IAAI,CACF,8BAA8B,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,EACvE,cAAc,GAAG,iBAAiB,CACnC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,mCAAmC,CAAC,iBAAiB,CAAC,CAAC;CAC1E;AAED,wDAAwD;AACxD,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,GAC7C,mBAAmB,GAAG,SAAS,CAUjC;AAED,mDAAmD;AACnD,wBAAgB,iCAAiC,CAC/C,eAAe,EAAE,mBAAmB,GAAG,SAAS,GAC/C,IAAI,CACL,uBAAuB,EACrB,aAAa,GACb,cAAc,GACd,aAAa,GACb,mBAAmB,GACnB,0BAA0B,GAC1B,sBAAsB,GACtB,iBAAiB,CACpB,CAmBA;AA6CD,mDAAmD;AACnD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC9C,OAAO,GAAE,IAAI,CAAC,mCAAmC,EAAE,iBAAiB,CAAM,GACzE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAkFzC;AAED,0EAA0E;AAC1E,wBAAgB,6CAA6C,CAC3D,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,GAC7C,sBAAsB,CA+BxB;AAED,0CAA0C;AAC1C,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,mCAAwC,GAChD,sBAAsB,CAcxB;AAED,kEAAkE;AAClE,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,oCAAoC,GAC1C,QAAQ,CAkBV"}
@@ -1,7 +1,7 @@
1
1
  import { tryGetVeryfrontCloudProviderFromModelId } from "../../provider/veryfront-cloud/model-catalog.js";
2
- import { createAgUiBrowserFinalizeTracker } from "./browser-finalize-tracker.js";
3
- import { createAgUiBrowserChunkEncoder } from "./browser-chunk-encoder.js";
4
- import { createAgUiTrackedBrowserResponse, } from "./tracked-browser-response.js";
2
+ import { createAgUiFinalizeTracker } from "./finalize-tracker.js";
3
+ import { createAgUiChunkEncoder } from "./chunk-encoder.js";
4
+ import { createAgUiTrackedResponse, } from "./tracked-response.js";
5
5
  /** Return AG-UI chat UI message metadata from chunk. */
6
6
  export function getAgUiChatUiMessageMetadataFromChunk(chunk) {
7
7
  if (chunk.type === "start" || chunk.type === "finish") {
@@ -161,12 +161,12 @@ export function normalizeChatUiMessageChunkToAgUiRuntimeEvent(chunk) {
161
161
  };
162
162
  }
163
163
  }
164
- /** Create AG-UI chat UI chunk browser encoder. */
165
- export function createAgUiChatUiChunkBrowserEncoder(options = {}) {
164
+ /** Create AG-UI chat UI chunk encoder. */
165
+ export function createAgUiChatUiChunkEncoder(options = {}) {
166
166
  const provider = options.modelId
167
167
  ? (options.resolveProvider ?? tryGetVeryfrontCloudProviderFromModelId)(options.modelId)
168
168
  : undefined;
169
- return createAgUiBrowserChunkEncoder({
169
+ return createAgUiChunkEncoder({
170
170
  initialMetadata: {
171
171
  ...(provider ? { provider } : {}),
172
172
  ...(options.modelId ? { model: options.modelId } : {}),
@@ -176,16 +176,16 @@ export function createAgUiChatUiChunkBrowserEncoder(options = {}) {
176
176
  ...(options.timing === undefined ? {} : { timing: options.timing }),
177
177
  });
178
178
  }
179
- /** Response payload for create AG-UI chat UI tracked browser. */
180
- export function createAgUiChatUiTrackedBrowserResponse(input) {
181
- const finalizeTracker = createAgUiBrowserFinalizeTracker({
179
+ /** Response payload for create AG-UI chat UI tracked response. */
180
+ export function createAgUiChatUiTrackedResponse(input) {
181
+ const finalizeTracker = createAgUiFinalizeTracker({
182
182
  getMetadataFromChunk: (chunk) => getAgUiChatUiMessageChunkMetadata(chunk, {
183
183
  resolveProvider: input.resolveProvider,
184
184
  }),
185
185
  });
186
- return createAgUiTrackedBrowserResponse({
186
+ return createAgUiTrackedResponse({
187
187
  ...input,
188
- chunkEncoder: createAgUiChatUiChunkBrowserEncoder({
188
+ chunkEncoder: createAgUiChatUiChunkEncoder({
189
189
  modelId: input.modelId,
190
190
  resolveProvider: input.resolveProvider,
191
191
  }),
@@ -1,20 +1,22 @@
1
- import { type AgUiBrowserEncodedEvent, type AgUiBrowserEncoderState, type AgUiBrowserEncoderStateOptions, type AgUiRuntimeStreamEvent } from "./browser-encoder.js";
1
+ import { type AgUiEncodedEvent, type AgUiEncoderState, type AgUiEncoderStateOptions, type AgUiRuntimeStreamEvent } from "./encoder.js";
2
2
  import type { AgentResponse } from "../types.js";
3
3
  /** Public API contract for AG-UI chunk encoder bridge. */
4
4
  export interface AgUiChunkEncoderBridge<TChunk> {
5
- encode: (chunk: TChunk) => AgUiBrowserEncodedEvent[];
6
- finalize: (response: AgentResponse | null) => AgUiBrowserEncodedEvent[];
7
- state: AgUiBrowserEncoderState;
5
+ encode: (chunk: TChunk) => AgUiEncodedEvent[];
6
+ finalize: (response: AgentResponse | null) => AgUiEncodedEvent[];
7
+ state: AgUiEncoderState;
8
+ /** Timing anchor consumed by the response composition root. */
9
+ timingState: AgUiEncoderState;
8
10
  }
9
11
  /** Options accepted by create AG-UI chunk encoder bridge. */
10
12
  export interface CreateAgUiChunkEncoderBridgeOptions<TChunk> {
11
13
  getRuntimeEvents: (chunk: TChunk) => readonly AgUiRuntimeStreamEvent[];
12
14
  /**
13
15
  * Timing clocks forwarded verbatim to the encoder state. A single object so
14
- * that adding a clock is one edit in `AgUiBrowserEncoderStateOptions`, not a
16
+ * that adding a clock is one edit in `AgUiEncoderStateOptions`, not a
15
17
  * sweep through every wrapper that happens to sit in between.
16
18
  */
17
- timing?: AgUiBrowserEncoderStateOptions;
19
+ timing?: AgUiEncoderStateOptions;
18
20
  }
19
21
  /** Create AG-UI chunk encoder bridge. */
20
22
  export declare function createAgUiChunkEncoderBridge<TChunk>(options: CreateAgUiChunkEncoderBridgeOptions<TChunk>): AgUiChunkEncoderBridge<TChunk>;
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-encoder-bridge.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/chunk-encoder-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,sBAAsB,EAI5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,0DAA0D;AAC1D,MAAM,WAAW,sBAAsB,CAAC,MAAM;IAC5C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,uBAAuB,EAAE,CAAC;IACrD,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,KAAK,uBAAuB,EAAE,CAAC;IACxE,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,6DAA6D;AAC7D,MAAM,WAAW,mCAAmC,CAAC,MAAM;IACzD,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,sBAAsB,EAAE,CAAC;IACvE;;;;OAIG;IACH,MAAM,CAAC,EAAE,8BAA8B,CAAC;CACzC;AAED,yCAAyC;AACzC,wBAAgB,4BAA4B,CAAC,MAAM,EACjD,OAAO,EAAE,mCAAmC,CAAC,MAAM,CAAC,GACnD,sBAAsB,CAAC,MAAM,CAAC,CAWhC"}
1
+ {"version":3,"file":"chunk-encoder-bridge.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/chunk-encoder-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAI5B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,0DAA0D;AAC1D,MAAM,WAAW,sBAAsB,CAAC,MAAM;IAC5C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,KAAK,gBAAgB,EAAE,CAAC;IACjE,KAAK,EAAE,gBAAgB,CAAC;IACxB,+DAA+D;IAC/D,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED,6DAA6D;AAC7D,MAAM,WAAW,mCAAmC,CAAC,MAAM;IACzD,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,sBAAsB,EAAE,CAAC;IACvE;;;;OAIG;IACH,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC;AAED,yCAAyC;AACzC,wBAAgB,4BAA4B,CAAC,MAAM,EACjD,OAAO,EAAE,mCAAmC,CAAC,MAAM,CAAC,GACnD,sBAAsB,CAAC,MAAM,CAAC,CAYhC"}
@@ -1,10 +1,11 @@
1
- import { createAgUiBrowserEncoderState, finalizeAgUiBrowserEvents, mapRuntimeStreamEventToAgUiBrowserEvents, } from "./browser-encoder.js";
1
+ import { createAgUiEncoderState, finalizeAgUiEvents, mapRuntimeStreamEventToAgUiEvents, } from "./encoder.js";
2
2
  /** Create AG-UI chunk encoder bridge. */
3
3
  export function createAgUiChunkEncoderBridge(options) {
4
- const state = createAgUiBrowserEncoderState(options.timing ?? {});
4
+ const state = createAgUiEncoderState(options.timing ?? {});
5
5
  return {
6
6
  state,
7
- encode: (chunk) => options.getRuntimeEvents(chunk).flatMap((event) => mapRuntimeStreamEventToAgUiBrowserEvents(state, event)),
8
- finalize: (response) => finalizeAgUiBrowserEvents(state, response),
7
+ timingState: state,
8
+ encode: (chunk) => options.getRuntimeEvents(chunk).flatMap((event) => mapRuntimeStreamEventToAgUiEvents(state, event)),
9
+ finalize: (response) => finalizeAgUiEvents(state, response),
9
10
  };
10
11
  }
@@ -0,0 +1,26 @@
1
+ import { type AgUiEncoderStateOptions } from "./encoder.js";
2
+ import type { AgUiEncodedEvent, AgUiEncoderState, AgUiRunFinishedMetadata, AgUiRuntimeStreamEvent } from "./encoder.js";
3
+ import type { AgentResponse } from "../types.js";
4
+ /** Public API contract for AG-UI chunk encoder. */
5
+ export interface AgUiChunkEncoder<TChunk> {
6
+ state: AgUiEncoderState;
7
+ /** Optional timing anchor consumed by the response composition root. */
8
+ timingState?: AgUiEncoderState;
9
+ encode: (chunk: TChunk) => AgUiEncodedEvent[];
10
+ finalize: (response: AgentResponse | null) => AgUiEncodedEvent[];
11
+ }
12
+ /** Options accepted by create AG-UI chunk encoder. */
13
+ export interface CreateAgUiChunkEncoderOptions<TChunk> {
14
+ /**
15
+ * Timing clocks forwarded verbatim to the encoder state. A single object so
16
+ * that adding a clock is one edit in `AgUiEncoderStateOptions`, not a
17
+ * sweep through every wrapper that happens to sit in between.
18
+ */
19
+ timing?: AgUiEncoderStateOptions;
20
+ getRuntimeEvents: (chunk: TChunk) => readonly AgUiRuntimeStreamEvent[];
21
+ getMetadataFromChunk?: (chunk: TChunk) => Partial<AgUiRunFinishedMetadata> | null | undefined;
22
+ initialMetadata?: Partial<AgUiRunFinishedMetadata>;
23
+ }
24
+ /** Create AG-UI chunk encoder. */
25
+ export declare function createAgUiChunkEncoder<TChunk>(options: CreateAgUiChunkEncoderOptions<TChunk>): AgUiChunkEncoder<TChunk>;
26
+ //# sourceMappingURL=chunk-encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/chunk-encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAKtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,mDAAmD;AACnD,MAAM,WAAW,gBAAgB,CAAC,MAAM;IACtC,KAAK,EAAE,gBAAgB,CAAC;IACxB,wEAAwE;IACxE,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,KAAK,gBAAgB,EAAE,CAAC;CAClE;AAED,sDAAsD;AACtD,MAAM,WAAW,6BAA6B,CAAC,MAAM;IACnD;;;;OAIG;IACH,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,sBAAsB,EAAE,CAAC;IACvE,oBAAoB,CAAC,EAAE,CACrB,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACzD,eAAe,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACpD;AAkED,kCAAkC;AAClC,wBAAgB,sBAAsB,CAAC,MAAM,EAC3C,OAAO,EAAE,6BAA6B,CAAC,MAAM,CAAC,GAC7C,gBAAgB,CAAC,MAAM,CAAC,CAe1B"}
@@ -68,14 +68,15 @@ function mergeMetadata(target, metadata) {
68
68
  if (typeof metadata.finishReason === "string")
69
69
  target.finishReason = metadata.finishReason;
70
70
  }
71
- /** Create AG-UI browser chunk encoder. */
72
- export function createAgUiBrowserChunkEncoder(options) {
71
+ /** Create AG-UI chunk encoder. */
72
+ export function createAgUiChunkEncoder(options) {
73
73
  const runtimeEventEncoder = createAgUiRuntimeEventEncoder({
74
74
  initialMetadata: options.initialMetadata,
75
75
  ...(options.timing === undefined ? {} : { timing: options.timing }),
76
76
  });
77
77
  return {
78
78
  state: runtimeEventEncoder.state,
79
+ timingState: runtimeEventEncoder.state,
79
80
  encode: (chunk) => {
80
81
  mergeMetadata(runtimeEventEncoder.state.metadata, options.getMetadataFromChunk?.(chunk));
81
82
  return options.getRuntimeEvents(chunk).flatMap((event) => runtimeEventEncoder.encode(event));
@@ -3,8 +3,8 @@ import type { AgentResponse } from "../types.js";
3
3
  export type AgUiRuntimeStreamEvent = Record<string, unknown> & {
4
4
  type: string;
5
5
  };
6
- /** Public API contract for AG-UI browser run finished metadata. */
7
- export interface AgUiBrowserRunFinishedMetadata {
6
+ /** Public API contract for AG-UI run finished metadata. */
7
+ export interface AgUiRunFinishedMetadata {
8
8
  provider?: string;
9
9
  model?: string;
10
10
  inputTokens?: number;
@@ -30,8 +30,8 @@ export interface AgUiBrowserRunFinishedMetadata {
30
30
  finishReason?: string;
31
31
  usageCaptureStatus?: "complete" | "partial" | "missing";
32
32
  }
33
- /** State for AG-UI browser encoder. */
34
- export interface AgUiBrowserEncoderState {
33
+ /** State for AG-UI encoder. */
34
+ export interface AgUiEncoderState {
35
35
  messageId: string | null;
36
36
  textOpen: boolean;
37
37
  activeTextContentId: string | null;
@@ -45,12 +45,24 @@ export interface AgUiBrowserEncoderState {
45
45
  activeStepName: string | null;
46
46
  stepCount: number;
47
47
  streamedToolInputIds: Set<string>;
48
+ /**
49
+ * Tool calls whose `ToolCallStart` has been emitted but not yet closed with
50
+ * a `ToolCallEnd`. Distinct from `streamedToolInputIds`, which tracks
51
+ * whether any args were streamed, not whether the call is still open.
52
+ *
53
+ * Optional, and populated lazily, so a state object built against the shape
54
+ * this type had before the tracker existed stays valid — the same reason
55
+ * `reasoningSpanIndex` above is optional. This type is re-exported from
56
+ * `veryfront/agent`, so a required field would crash existing callers on the
57
+ * first `tool-input-start`.
58
+ */
59
+ openToolCallIds?: Set<string>;
48
60
  sawVisibleOutput: boolean;
49
61
  sawTerminalError: boolean;
50
- metadata: AgUiBrowserRunFinishedMetadata;
62
+ metadata: AgUiRunFinishedMetadata;
51
63
  /**
52
64
  * Clock for `elapsedMs`, and the run-relative anchor it measures from. Absent
53
- * only when a caller opts out; see `createAgUiBrowserEncoderState`.
65
+ * only when a caller opts out; see `createAgUiEncoderState`.
54
66
  */
55
67
  nowMs?: () => number;
56
68
  startedMs?: number;
@@ -63,8 +75,8 @@ export interface AgUiBrowserEncoderState {
63
75
  */
64
76
  epochMs?: () => number;
65
77
  }
66
- /** Options for create AG-UI browser encoder state. */
67
- export interface AgUiBrowserEncoderStateOptions {
78
+ /** Options for create AG-UI encoder state. */
79
+ export interface AgUiEncoderStateOptions {
68
80
  /**
69
81
  * Clock used to stamp `elapsedMs`. Defaults to `performance.now`. Pass null
70
82
  * to omit the stamp, which keeps exact-payload assertions deterministic.
@@ -75,18 +87,20 @@ export interface AgUiBrowserEncoderStateOptions {
75
87
  * `Date.now`. Pass null to omit the stamp.
76
88
  */
77
89
  epochMs?: (() => number) | null;
90
+ startedMs?: number;
78
91
  }
79
- /** Event emitted for AG-UI browser encoded. */
80
- export interface AgUiBrowserEncodedEvent {
92
+ /** Event emitted for AG-UI encoded. */
93
+ export interface AgUiEncodedEvent {
81
94
  event: string;
82
95
  payload: Record<string, unknown>;
83
96
  }
84
- /** State for create AG-UI browser encoder. */
85
- export declare function createAgUiBrowserEncoderState(options?: AgUiBrowserEncoderStateOptions): AgUiBrowserEncoderState;
86
- /** Response payload for build AG-UI browser finalize. */
87
- export declare function buildAgUiBrowserFinalizeResponse(metadata: AgUiBrowserRunFinishedMetadata): AgentResponse | null;
88
- /** Map runtime stream event to AG-UI browser events. */
89
- export declare function mapRuntimeStreamEventToAgUiBrowserEvents(state: AgUiBrowserEncoderState, event: AgUiRuntimeStreamEvent): AgUiBrowserEncodedEvent[];
90
- /** Finalize AG-UI browser events helper. */
91
- export declare function finalizeAgUiBrowserEvents(state: AgUiBrowserEncoderState, response: AgentResponse | null): AgUiBrowserEncodedEvent[];
92
- //# sourceMappingURL=browser-encoder.d.ts.map
97
+ /** State for create AG-UI encoder. */
98
+ export declare function createAgUiEncoderState(options?: AgUiEncoderStateOptions): AgUiEncoderState;
99
+ /** Response payload for build AG-UI finalize. */
100
+ export declare function buildAgUiFinalizeResponse(metadata: AgUiRunFinishedMetadata): AgentResponse | null;
101
+ /** Map runtime stream event to AG-UI events. */
102
+ export declare function mapRuntimeStreamEventToAgUiEvents(state: AgUiEncoderState, event: AgUiRuntimeStreamEvent): AgUiEncodedEvent[];
103
+ export declare function stampAgUiEventTiming(state: AgUiEncoderState, events: AgUiEncodedEvent[]): AgUiEncodedEvent[];
104
+ /** Finalize AG-UI events helper. */
105
+ export declare function finalizeAgUiEvents(state: AgUiEncoderState, response: AgentResponse | null): AgUiEncodedEvent[];
106
+ //# sourceMappingURL=encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/encoder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,8CAA8C;AAC9C,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,2DAA2D;AAC3D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;CACzD;AAED,+BAA+B;AAC/B,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,uBAAuB,CAAC;IAClC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;CACxB;AAED,8CAA8C;AAC9C,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,sCAAsC;AACtC,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,uBAA4B,GACpC,gBAAgB,CAuBlB;AA6SD,iDAAiD;AACjD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,uBAAuB,GAChC,aAAa,GAAG,IAAI,CA+HtB;AAuJD,gDAAgD;AAChD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,sBAAsB,GAC5B,gBAAgB,EAAE,CAKpB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,gBAAgB,EAAE,GACzB,gBAAgB,EAAE,CAyCpB;AAgQD,oCAAoC;AACpC,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,aAAa,GAAG,IAAI,GAC7B,gBAAgB,EAAE,CAEpB"}
@@ -1,13 +1,13 @@
1
1
  import * as dntShim from "../../../_dnt.shims.js";
2
- /** State for create AG-UI browser encoder. */
3
- export function createAgUiBrowserEncoderState(options = {}) {
2
+ /** State for create AG-UI encoder. */
3
+ export function createAgUiEncoderState(options = {}) {
4
4
  // Clocked by default. This state is built at three separate composition
5
5
  // roots, so an opt-in clock only has to be forgotten once to lose elapsedMs
6
6
  // for every run -- which is exactly what happened twice before.
7
7
  const nowMs = options.nowMs === null ? undefined : options.nowMs ?? (() => performance.now());
8
8
  const epochMs = options.epochMs === null ? undefined : options.epochMs ?? (() => Date.now());
9
9
  return {
10
- ...(nowMs ? { nowMs, startedMs: nowMs() } : {}),
10
+ ...(nowMs ? { nowMs, startedMs: options.startedMs ?? nowMs() } : {}),
11
11
  ...(epochMs ? { epochMs } : {}),
12
12
  messageId: null,
13
13
  textOpen: false,
@@ -18,6 +18,7 @@ export function createAgUiBrowserEncoderState(options = {}) {
18
18
  activeStepName: null,
19
19
  stepCount: 0,
20
20
  streamedToolInputIds: new Set(),
21
+ openToolCallIds: new Set(),
21
22
  sawVisibleOutput: false,
22
23
  sawTerminalError: false,
23
24
  metadata: {},
@@ -270,8 +271,8 @@ function applyResponseMetadata(state, response) {
270
271
  state.metadata.usageCaptureStatus = usageCaptureStatus;
271
272
  }
272
273
  }
273
- /** Response payload for build AG-UI browser finalize. */
274
- export function buildAgUiBrowserFinalizeResponse(metadata) {
274
+ /** Response payload for build AG-UI finalize. */
275
+ export function buildAgUiFinalizeResponse(metadata) {
275
276
  const responseMetadata = {};
276
277
  if (typeof metadata.finishReason === "string" && metadata.finishReason.length > 0) {
277
278
  responseMetadata.finishReason = metadata.finishReason;
@@ -396,6 +397,19 @@ export function buildAgUiBrowserFinalizeResponse(metadata) {
396
397
  ...(Object.keys(responseMetadata).length > 0 ? { metadata: responseMetadata } : {}),
397
398
  };
398
399
  }
400
+ /**
401
+ * Emit the `ToolCallEnd` for a call whose input never reached a terminal
402
+ * input event. Returns nothing when the call was already closed, so a normal
403
+ * tool failure does not produce a second end.
404
+ */
405
+ function closeOpenToolInput(state, toolCallId) {
406
+ if (typeof toolCallId !== "string" || toolCallId.length === 0)
407
+ return [];
408
+ if (state.openToolCallIds?.delete(toolCallId) !== true)
409
+ return [];
410
+ state.streamedToolInputIds.delete(toolCallId);
411
+ return [{ event: "ToolCallEnd", payload: { toolCallId } }];
412
+ }
399
413
  function completeToolInput(state, event) {
400
414
  const toolCallId = typeof event.toolCallId === "string" ? event.toolCallId : "";
401
415
  const events = [];
@@ -410,6 +424,7 @@ function completeToolInput(state, event) {
410
424
  }
411
425
  if (toolCallId.length > 0) {
412
426
  state.streamedToolInputIds.delete(toolCallId);
427
+ state.openToolCallIds?.delete(toolCallId);
413
428
  }
414
429
  events.push({
415
430
  event: "ToolCallEnd",
@@ -485,11 +500,11 @@ function closeOpenReasoningEvent(state) {
485
500
  payload: { messageId },
486
501
  }];
487
502
  }
488
- /** Map runtime stream event to AG-UI browser events. */
489
- export function mapRuntimeStreamEventToAgUiBrowserEvents(state, event) {
490
- return stampTiming(state, mapRuntimeStreamEventToAgUiBrowserEventsUnstamped(state, event));
503
+ /** Map runtime stream event to AG-UI events. */
504
+ export function mapRuntimeStreamEventToAgUiEvents(state, event) {
505
+ return stampAgUiEventTiming(state, mapRuntimeStreamEventToAgUiEventsUnstamped(state, event));
491
506
  }
492
- function stampTiming(state, events) {
507
+ export function stampAgUiEventTiming(state, events) {
493
508
  if (events.length === 0) {
494
509
  return events;
495
510
  }
@@ -500,19 +515,49 @@ function stampTiming(state, events) {
500
515
  // wall-clock traces and logs, and turns ingest lag into `created_at -
501
516
  // emittedAt`. Both are stamped because wall clocks can step backwards and
502
517
  // the monotonic reading cannot.
503
- const timing = {};
504
- if (state.nowMs && state.startedMs !== undefined) {
505
- timing.elapsedMs = Math.max(0, Math.round(state.nowMs() - state.startedMs));
518
+ for (const { payload } of events) {
519
+ if (Object.hasOwn(payload, "elapsedMs"))
520
+ assertValidElapsedMs(payload.elapsedMs);
521
+ if (Object.hasOwn(payload, "emittedAt"))
522
+ assertValidEmittedAt(payload.emittedAt);
523
+ }
524
+ const needsElapsedMs = events.some(({ payload }) => !Object.hasOwn(payload, "elapsedMs"));
525
+ const needsEmittedAt = events.some(({ payload }) => !Object.hasOwn(payload, "emittedAt"));
526
+ const elapsedMs = needsElapsedMs && state.nowMs && state.startedMs !== undefined
527
+ ? Math.max(0, Math.round(state.nowMs() - state.startedMs))
528
+ : undefined;
529
+ const emittedAt = needsEmittedAt && state.epochMs ? Math.round(state.epochMs()) : undefined;
530
+ if (elapsedMs !== undefined)
531
+ assertValidElapsedMs(elapsedMs);
532
+ if (emittedAt !== undefined)
533
+ assertValidEmittedAt(emittedAt);
534
+ if (elapsedMs === undefined && emittedAt === undefined) {
535
+ return events;
506
536
  }
507
- if (state.epochMs) {
508
- timing.emittedAt = Math.round(state.epochMs());
537
+ return events.map((entry) => ({
538
+ ...entry,
539
+ payload: {
540
+ ...entry.payload,
541
+ ...(elapsedMs !== undefined && !Object.hasOwn(entry.payload, "elapsedMs")
542
+ ? { elapsedMs }
543
+ : {}),
544
+ ...(emittedAt !== undefined && !Object.hasOwn(entry.payload, "emittedAt")
545
+ ? { emittedAt }
546
+ : {}),
547
+ },
548
+ }));
549
+ }
550
+ function assertValidElapsedMs(value) {
551
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
552
+ throw new TypeError("elapsedMs must be a finite non-negative number");
509
553
  }
510
- if (Object.keys(timing).length === 0) {
511
- return events;
554
+ }
555
+ function assertValidEmittedAt(value) {
556
+ if (typeof value !== "number" || !Number.isInteger(value) || value < 0) {
557
+ throw new TypeError("emittedAt must be a non-negative integer");
512
558
  }
513
- return events.map((entry) => ({ ...entry, payload: { ...entry.payload, ...timing } }));
514
559
  }
515
- function mapRuntimeStreamEventToAgUiBrowserEventsUnstamped(state, event) {
560
+ function mapRuntimeStreamEventToAgUiEventsUnstamped(state, event) {
516
561
  if (event.type.startsWith("data-")) {
517
562
  const name = event.type.slice("data-".length);
518
563
  if (name.length === 0) {
@@ -596,6 +641,9 @@ function mapRuntimeStreamEventToAgUiBrowserEventsUnstamped(state, event) {
596
641
  ...closeOpenReasoningEvent(state),
597
642
  ];
598
643
  state.sawVisibleOutput = true;
644
+ if (typeof event.toolCallId === "string" && event.toolCallId.length > 0) {
645
+ (state.openToolCallIds ??= new Set()).add(event.toolCallId);
646
+ }
599
647
  events.push({
600
648
  event: "ToolCallStart",
601
649
  payload: {
@@ -623,15 +671,11 @@ function mapRuntimeStreamEventToAgUiBrowserEventsUnstamped(state, event) {
623
671
  ];
624
672
  case "tool-input-available": {
625
673
  state.sawVisibleOutput = true;
626
- const events = [
674
+ return [
627
675
  ...closeOpenTextEvent(state),
628
676
  ...closeOpenReasoningEvent(state),
629
677
  ...completeToolInput(state, event),
630
678
  ];
631
- if (event.providerExecuted === true) {
632
- events.push(createToolResultEvent(event.toolCallId, null));
633
- }
634
- return events;
635
679
  }
636
680
  case "tool-input-error": {
637
681
  state.sawVisibleOutput = true;
@@ -653,6 +697,8 @@ function mapRuntimeStreamEventToAgUiBrowserEventsUnstamped(state, event) {
653
697
  return events;
654
698
  }
655
699
  case "tool-output-available":
700
+ if (event.preliminary === true)
701
+ return [];
656
702
  state.sawVisibleOutput = true;
657
703
  return [
658
704
  ...closeOpenTextEvent(state),
@@ -664,6 +710,14 @@ function mapRuntimeStreamEventToAgUiBrowserEventsUnstamped(state, event) {
664
710
  return [
665
711
  ...closeOpenTextEvent(state),
666
712
  ...closeOpenReasoningEvent(state),
713
+ // A truncated local tool call terminalizes as `tool-input-start`
714
+ // (plus any partial deltas) and then straight to this event, so the
715
+ // input is still open. `tool-input-available` and `tool-input-error`
716
+ // close it via `completeToolInput`; this branch has to close it too,
717
+ // or the client is left with ToolCallStart and ToolCallResult and no
718
+ // ToolCallEnd. No synthetic args are emitted: the model never
719
+ // committed any, and inventing `{}` would claim it did.
720
+ ...closeOpenToolInput(state, event.toolCallId),
667
721
  createToolResultEvent(event.toolCallId, { error: event.errorText }, true),
668
722
  ];
669
723
  case "tool-output-denied":
@@ -709,11 +763,11 @@ function mapRuntimeStreamEventToAgUiBrowserEventsUnstamped(state, event) {
709
763
  return [];
710
764
  }
711
765
  }
712
- /** Finalize AG-UI browser events helper. */
713
- export function finalizeAgUiBrowserEvents(state, response) {
714
- return stampTiming(state, finalizeAgUiBrowserEventsUnstamped(state, response));
766
+ /** Finalize AG-UI events helper. */
767
+ export function finalizeAgUiEvents(state, response) {
768
+ return stampAgUiEventTiming(state, finalizeAgUiEventsUnstamped(state, response));
715
769
  }
716
- function finalizeAgUiBrowserEventsUnstamped(state, response) {
770
+ function finalizeAgUiEventsUnstamped(state, response) {
717
771
  applyResponseMetadata(state, response);
718
772
  if (state.sawTerminalError) {
719
773
  return [];
@@ -0,0 +1,15 @@
1
+ import { type AgUiEncodedEvent, type AgUiRunFinishedMetadata } from "./encoder.js";
2
+ import type { AgentResponse } from "../types.js";
3
+ /** Public API contract for AG-UI finalize tracker. */
4
+ export interface AgUiFinalizeTracker<TChunk> {
5
+ observeChunk: (chunk: TChunk) => void;
6
+ observeEncodedEvents: (events: readonly AgUiEncodedEvent[]) => void;
7
+ getFinalResponse: () => AgentResponse | null;
8
+ }
9
+ /** Options accepted by create AG-UI finalize tracker. */
10
+ export interface CreateAgUiFinalizeTrackerOptions<TChunk> {
11
+ getMetadataFromChunk: (chunk: TChunk) => Partial<AgUiRunFinishedMetadata> | null | undefined;
12
+ }
13
+ /** Create AG-UI finalize tracker. */
14
+ export declare function createAgUiFinalizeTracker<TChunk>(options: CreateAgUiFinalizeTrackerOptions<TChunk>): AgUiFinalizeTracker<TChunk>;
15
+ //# sourceMappingURL=finalize-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalize-tracker.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/finalize-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAE7B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,sDAAsD;AACtD,MAAM,WAAW,mBAAmB,CAAC,MAAM;IACzC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,oBAAoB,EAAE,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,KAAK,IAAI,CAAC;IACpE,gBAAgB,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;CAC9C;AAED,yDAAyD;AACzD,MAAM,WAAW,gCAAgC,CAAC,MAAM;IACtD,oBAAoB,EAAE,CACpB,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1D;AAED,qCAAqC;AACrC,wBAAgB,yBAAyB,CAAC,MAAM,EAC9C,OAAO,EAAE,gCAAgC,CAAC,MAAM,CAAC,GAChD,mBAAmB,CAAC,MAAM,CAAC,CAoG7B"}
@@ -1,6 +1,6 @@
1
- import { buildAgUiBrowserFinalizeResponse, } from "./browser-encoder.js";
2
- /** Create AG-UI browser finalize tracker. */
3
- export function createAgUiBrowserFinalizeTracker(options) {
1
+ import { buildAgUiFinalizeResponse, } from "./encoder.js";
2
+ /** Create AG-UI finalize tracker. */
3
+ export function createAgUiFinalizeTracker(options) {
4
4
  let sawRunError = false;
5
5
  const metadata = {};
6
6
  return {
@@ -94,7 +94,7 @@ export function createAgUiBrowserFinalizeTracker(options) {
94
94
  if (sawRunError) {
95
95
  return null;
96
96
  }
97
- return buildAgUiBrowserFinalizeResponse(metadata);
97
+ return buildAgUiFinalizeResponse(metadata);
98
98
  },
99
99
  };
100
100
  }
@@ -0,0 +1,36 @@
1
+ import type { AgentResponse } from "../types.js";
2
+ import type { AgUiSseEvent } from "./host-support.js";
3
+ import { type AgUiEncoderState } from "./encoder.js";
4
+ /** State for AG-UI response request. */
5
+ export interface AgUiResponseRequestState {
6
+ runId?: string;
7
+ threadId?: string;
8
+ state?: unknown;
9
+ messages: unknown[];
10
+ }
11
+ /** Public API contract for AG-UI response execution. */
12
+ export interface AgUiResponseExecution<TChunk> {
13
+ agentUIStream: AsyncIterable<TChunk>;
14
+ fail: (error: unknown) => Promise<void>;
15
+ waitForFinish: () => Promise<void>;
16
+ }
17
+ /** Public API contract for AG-UI response encoder. */
18
+ export interface AgUiResponseEncoder<TChunk> {
19
+ encode: (chunk: TChunk) => AgUiSseEvent[];
20
+ finalize: (response: AgentResponse | null) => AgUiSseEvent[];
21
+ /** Shared timing anchor for bootstrap, chunk, and final events. */
22
+ timingState?: AgUiEncoderState;
23
+ }
24
+ /** Input payload for create AG-UI response stream. */
25
+ export interface CreateAgUiResponseStreamInput<TChunk, TState> {
26
+ agUiInput: AgUiResponseRequestState;
27
+ agentId: string;
28
+ execution: AgUiResponseExecution<TChunk>;
29
+ encoder: AgUiResponseEncoder<TChunk>;
30
+ initialState: TState;
31
+ onChunk?: (state: TState, chunk: TChunk) => void;
32
+ getFinalResponse?: (state: TState) => AgentResponse | null;
33
+ }
34
+ /** Create AG-UI response stream. */
35
+ export declare function createAgUiResponseStream<TChunk, TState>(input: CreateAgUiResponseStreamInput<TChunk, TState>): ReadableStream<Uint8Array>;
36
+ //# sourceMappingURL=response-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-stream.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/response-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,KAAK,gBAAgB,EAAgD,MAAM,cAAc,CAAC;AAkBnG,wCAAwC;AACxC,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,wDAAwD;AACxD,MAAM,WAAW,qBAAqB,CAAC,MAAM;IAC3C,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB,CAAC,MAAM;IACzC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;IAC1C,QAAQ,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,KAAK,YAAY,EAAE,CAAC;IAC7D,mEAAmE;IACnE,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,sDAAsD;AACtD,MAAM,WAAW,6BAA6B,CAAC,MAAM,EAAE,MAAM;IAC3D,SAAS,EAAE,wBAAwB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,aAAa,GAAG,IAAI,CAAC;CAC5D;AAUD,oCAAoC;AACpC,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EACrD,KAAK,EAAE,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC,GACnD,cAAc,CAAC,UAAU,CAAC,CAuH5B"}
@@ -1,3 +1,4 @@
1
+ import { createAgUiEncoderState, stampAgUiEventTiming } from "./encoder.js";
1
2
  const encoder = new TextEncoder();
2
3
  function formatAgUiSseEventWithId(event, eventId) {
3
4
  const idLine = eventId === null ? "" : `id: ${eventId}\n`;
@@ -12,18 +13,20 @@ function isRecord(value) {
12
13
  function normalizeSnapshot(snapshot) {
13
14
  return isRecord(snapshot) ? snapshot : {};
14
15
  }
15
- /** Create AG-UI browser response stream. */
16
- export function createAgUiBrowserResponseStream(input) {
16
+ /** Create AG-UI response stream. */
17
+ export function createAgUiResponseStream(input) {
17
18
  let streamClosed = false;
18
19
  let nextEventId = 1;
19
20
  return new ReadableStream({
20
21
  start(controller) {
22
+ const timingState = input.encoder.timingState ?? createAgUiEncoderState();
21
23
  const writeEvent = (event) => {
22
24
  if (streamClosed) {
23
25
  return false;
24
26
  }
25
27
  try {
26
- controller.enqueue(formatAgUiSseEventWithId(event, nextEventId));
28
+ const [timed] = stampAgUiEventTiming(timingState, [event]);
29
+ controller.enqueue(formatAgUiSseEventWithId(timed ?? event, nextEventId));
27
30
  nextEventId += 1;
28
31
  return true;
29
32
  }
@@ -1,4 +1,4 @@
1
- import type { AgUiRuntimeStreamEvent } from "./browser-encoder.js";
1
+ import type { AgUiRuntimeStreamEvent } from "./encoder.js";
2
2
  import type { ChatFinishReason, ChatStreamEvent } from "../../chat/protocol.js";
3
3
  /** Usage metadata captured from an AG-UI runtime finish event. */
4
4
  export type AgUiRuntimeChatStreamUsage = {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-chat-stream-encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/runtime-chat-stream-encoder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGhF,kEAAkE;AAClE,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,kBAAkB,EAAE;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACpC,kBAAkB,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;CACzD,CAAC;AAEF,mDAAmD;AACnD,MAAM,WAAW,iCAAiC;IAChD,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,UAAU,EAAE,0BAA0B,GAAG,IAAI,CAAC;CAC/C;AAED,iEAAiE;AACjE,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,iCAAiC,CAAC;IACzC,MAAM,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,eAAe,EAAE,CAAC;CAC9D;AAED,oEAAoE;AACpE,MAAM,WAAW,yCAAyC;IACxD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACtC;AAmMD,gDAAgD;AAChD,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,yCAAyC,GACjD,4BAA4B,CA+U9B"}
1
+ {"version":3,"file":"runtime-chat-stream-encoder.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/ag-ui/runtime-chat-stream-encoder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGhF,kEAAkE;AAClE,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,kBAAkB,EAAE;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACpC,kBAAkB,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;CACzD,CAAC;AAEF,mDAAmD;AACnD,MAAM,WAAW,iCAAiC;IAChD,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,UAAU,EAAE,0BAA0B,GAAG,IAAI,CAAC;CAC/C;AAED,iEAAiE;AACjE,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,iCAAiC,CAAC;IACzC,MAAM,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,eAAe,EAAE,CAAC;CAC9D;AAED,oEAAoE;AACpE,MAAM,WAAW,yCAAyC;IACxD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACtC;AAmMD,gDAAgD;AAChD,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,yCAAyC,GACjD,4BAA4B,CA+U9B"}