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
@@ -115,9 +115,9 @@ export interface AttachmentsPanelItemProps {
115
115
  className?: string;
116
116
  /**
117
117
  * Compose the row from the `AttachmentsPanel.Item.*` leaves (`.Icon` /
118
- * `.Preview` / `.Remove`), the `AttachmentPill.*` parts (e.g. `.Label`), or
119
- * your own text read from `useAttachmentPill()`. Omit for the default card
120
- * (media + label + overflow menu).
118
+ * `.Preview` / `.Name` / `.Size` / `.Remove`), the `AttachmentPill.*` parts
119
+ * (e.g. `.Label`), or your own text read from `useAttachmentPill()`. Omit for
120
+ * the default card (media + label + overflow menu).
121
121
  */
122
122
  children?: React.ReactNode;
123
123
  /** React 19: ref is a regular prop (threaded to the underlying `AttachmentPill`). */
@@ -151,6 +151,28 @@ declare function AttachmentsPanelItemPreview({ className, ref, ...props }: React
151
151
  declare namespace AttachmentsPanelItemPreview {
152
152
  var displayName: string;
153
153
  }
154
+ /**
155
+ * `AttachmentsPanel.Item.Name` — the file-name line. Deliberately plain text:
156
+ * unlike `AttachmentPill.Label`, it does not wrap the name in a shimmer while
157
+ * the attachment uploads. Compose `AttachmentPill.Label` for that treatment.
158
+ */
159
+ declare function AttachmentsPanelItemName({ className, ref, ...props }: React.HTMLAttributes<HTMLParagraphElement> & {
160
+ ref?: React.Ref<HTMLParagraphElement>;
161
+ }): React.JSX.Element;
162
+ declare namespace AttachmentsPanelItemName {
163
+ var displayName: string;
164
+ }
165
+ /**
166
+ * `AttachmentsPanel.Item.Size` — the human-formatted byte label (`formatSize`).
167
+ * Renders nothing when the file has no size. Always the faint secondary color;
168
+ * the error/destructive state line stays with `AttachmentPill.Label`.
169
+ */
170
+ declare function AttachmentsPanelItemSize({ className, ref, ...props }: React.HTMLAttributes<HTMLParagraphElement> & {
171
+ ref?: React.Ref<HTMLParagraphElement>;
172
+ }): React.JSX.Element | null;
173
+ declare namespace AttachmentsPanelItemSize {
174
+ var displayName: string;
175
+ }
154
176
  /** Props for `AttachmentsPanel.Item.Remove`. */
155
177
  export interface AttachmentsPanelItemRemoveProps {
156
178
  className?: string;
@@ -233,6 +255,8 @@ export declare const AttachmentsPanel: typeof AttachmentsPanelRoot & {
233
255
  Item: typeof AttachmentsPanelItem & {
234
256
  Icon: typeof AttachmentsPanelItemIcon;
235
257
  Preview: typeof AttachmentsPanelItemPreview;
258
+ Name: typeof AttachmentsPanelItemName;
259
+ Size: typeof AttachmentsPanelItemSize;
236
260
  Remove: typeof AttachmentsPanelItemRemove;
237
261
  };
238
262
  Loading: typeof AttachmentsPanelLoading;
@@ -1 +1 @@
1
- {"version":3,"file":"attachments-panel.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/attachments-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsB/B,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,EAAE,EAAE,MAAM,CAAC;IACX,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAYD,kEAAkE;AAClE,MAAM,WAAW,4BAA4B;IAC3C,wDAAwD;IACxD,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,mFAAmF;IACnF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0EAA0E;IAC1E,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AASD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,oCAA6B,CAAC;AAE9D,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,uFAAuF;IACvF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,iBAAS,oBAAoB,CAC3B,EACE,OAAY,EACZ,OAAe,EACf,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,GACJ,EAAE,qBAAqB,GACvB,KAAK,CAAC,YAAY,CA6DpB;kBAzEQ,oBAAoB;;;AA4E7B,0EAA0E;AAC1E,MAAM,WAAW,2BAA4B,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,iBAAS,sBAAsB,CAC7B,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,2BAA2B,GAClE,KAAK,CAAC,GAAG,CAAC,OAAO,CA8BnB;kBAhCQ,sBAAsB;;;AAmC/B,4EAA4E;AAC5E,MAAM,WAAW,yBAA0B,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,iBAAS,oBAAoB,CAC3B,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,yBAAyB,GAChE,KAAK,CAAC,GAAG,CAAC,OAAO,CAYnB;kBAdQ,oBAAoB;;;AAiB7B,iFAAiF;AACjF,MAAM,WAAW,yBAAyB;IACxC,0CAA0C;IAC1C,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qFAAqF;IACrF,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED;;;;;;GAMG;AACH,iBAAS,oBAAoB,CAC3B,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,yBAAyB,GACjE,KAAK,CAAC,GAAG,CAAC,OAAO,CAcnB;kBAhBQ,oBAAoB;;;AAyC7B,gEAAgE;AAChE,iBAAS,wBAAwB,CAC/B,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EACxB,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GACpC;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;CAAE,GACtC,KAAK,CAAC,GAAG,CAAC,OAAO,CAEnB;kBANQ,wBAAwB;;;AASjC;;;GAGG;AACH,iBAAS,2BAA2B,CAClC,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EACxB,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GACpC;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;CAAE,GACtC,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAI1B;kBARQ,2BAA2B;;;AAmBpC,gDAAgD;AAChD,MAAM,WAAW,+BAA+B;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;oEACgE;IAChE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,oFAAoF;IACpF,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,gEAAgE;IAChE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,iBAAS,0BAA0B,CACjC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,+BAA+B,GAClE,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAkB1B;kBApBQ,0BAA0B;;;AAgFnC,4EAA4E;AAC5E,MAAM,WAAW,4BAA6B,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACxF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,iBAAS,uBAAuB,CAC9B,EAAE,SAAS,EAAE,KAAS,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,4BAA4B,GACpE,KAAK,CAAC,GAAG,CAAC,OAAO,CAyBnB;kBA3BQ,uBAAuB;;;AA8BhC,+DAA+D;AAC/D,MAAM,WAAW,0BAA2B,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACtF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,gFAAgF;AAChF,iBAAS,qBAAqB,CAC5B,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,0BAA0B,GACjE,KAAK,CAAC,GAAG,CAAC,OAAO,CA+BnB;kBAjCQ,qBAAqB;;;AAoC9B,sEAAsE;AACtE,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gEAAgE;IAChE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;CACpC;AAED,8EAA8E;AAC9E,iBAAS,sBAAsB,CAC7B,EAAE,OAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,2BAA2B,GACpF,KAAK,CAAC,GAAG,CAAC,OAAO,CA6BnB;kBA/BQ,sBAAsB;;;AAkC/B;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;CAQ3B,CAAC"}
1
+ {"version":3,"file":"attachments-panel.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/attachments-panel.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { FileTextIcon, MoreHorizontalIcon, PaperclipIcon, TrashIcon, XIcon, } fr
5
5
  import { Button } from "../../../ui/button.js";
6
6
  import { Skeleton } from "../../../ui/skeleton.js";
7
7
  import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "../../../ui/dropdown-menu.js";
8
- import { AttachmentPill, useAttachmentPill } from "./attachment-pill.js";
8
+ import { AttachmentPill, formatSize, useAttachmentPill } from "./attachment-pill.js";
9
9
  import { createStrictContext } from "../../../create-strict-context.js";
10
10
  import { isSafeUploadUrl, openSafeUploadUrl } from "../upload-url.js";
11
11
  const [AttachmentsPanelContext, useAttachmentsPanelContext] = createStrictContext("useAttachmentsPanel", "an AttachmentsPanel");
@@ -119,12 +119,10 @@ function AttachmentsPanelItemMedia({ className }) {
119
119
  : React.createElement(AttachmentPill.Icon, { className: className });
120
120
  }
121
121
  // ---------------------------------------------------------------------------
122
- // AttachmentsPanel.Item.* — the row leaves that carry attachment-domain logic:
123
- // `.Icon` / `.Preview` (derived pill state) and `.Remove` (bound to the panel's
124
- // `onRemoveUpload`). Each reads the item's file from the enclosing
125
- // `AttachmentPill` context. Plain text (name / size) has no such logic — read it
126
- // from `useAttachmentPill()` / `useAttachments()` and render your own, or use
127
- // `AttachmentPill.Label`. Use these inside an `AttachmentsPanel.Item`.
122
+ // AttachmentsPanel.Item.* — the row leaves: `.Icon` / `.Preview` (derived pill
123
+ // state), `.Name` / `.Size` (the file's text lines), and `.Remove` (bound to
124
+ // the panel's `onRemoveUpload`). Each reads the item's file from the enclosing
125
+ // `AttachmentPill` context. Use these inside an `AttachmentsPanel.Item`.
128
126
  // ---------------------------------------------------------------------------
129
127
  /** `AttachmentsPanel.Item.Icon` — the file-type icon square. */
130
128
  function AttachmentsPanelItemIcon({ className, ref, ...props }) {
@@ -142,6 +140,28 @@ function AttachmentsPanelItemPreview({ className, ref, ...props }) {
142
140
  return React.createElement(AttachmentPill.Thumbnail, { ref: ref, className: className, ...props });
143
141
  }
144
142
  AttachmentsPanelItemPreview.displayName = "AttachmentsPanel.Item.Preview";
143
+ /**
144
+ * `AttachmentsPanel.Item.Name` — the file-name line. Deliberately plain text:
145
+ * unlike `AttachmentPill.Label`, it does not wrap the name in a shimmer while
146
+ * the attachment uploads. Compose `AttachmentPill.Label` for that treatment.
147
+ */
148
+ function AttachmentsPanelItemName({ className, ref, ...props }) {
149
+ const { attachment } = useAttachmentPill();
150
+ return (React.createElement("p", { ref: ref, className: cn("truncate text-sm font-medium leading-tight", className), ...props }, attachment.name || "Attachment"));
151
+ }
152
+ AttachmentsPanelItemName.displayName = "AttachmentsPanel.Item.Name";
153
+ /**
154
+ * `AttachmentsPanel.Item.Size` — the human-formatted byte label (`formatSize`).
155
+ * Renders nothing when the file has no size. Always the faint secondary color;
156
+ * the error/destructive state line stays with `AttachmentPill.Label`.
157
+ */
158
+ function AttachmentsPanelItemSize({ className, ref, ...props }) {
159
+ const { attachment } = useAttachmentPill();
160
+ if (attachment.size == null)
161
+ return null;
162
+ return (React.createElement("p", { ref: ref, className: cn("truncate text-xs leading-tight text-[var(--faint)]", className), ...props }, formatSize(attachment.size)));
163
+ }
164
+ AttachmentsPanelItemSize.displayName = "AttachmentsPanel.Item.Size";
145
165
  /**
146
166
  * `AttachmentsPanel.Item.Remove` — the delete control, wired to the panel's
147
167
  * `onRemoveUpload` for this item. Renders nothing when no remove handler is set.
@@ -158,6 +178,8 @@ AttachmentsPanelItemRemove.displayName = "AttachmentsPanel.Item.Remove";
158
178
  const AttachmentsPanelItemCompound = Object.assign(AttachmentsPanelItem, {
159
179
  Icon: AttachmentsPanelItemIcon,
160
180
  Preview: AttachmentsPanelItemPreview,
181
+ Name: AttachmentsPanelItemName,
182
+ Size: AttachmentsPanelItemSize,
161
183
  Remove: AttachmentsPanelItemRemove,
162
184
  });
163
185
  AttachmentsPanelItem.displayName = "AttachmentsPanel.Item";
@@ -38,8 +38,8 @@
38
38
  * @module react/components/chat/chat/components/sidebar
39
39
  */
40
40
  import * as React from "react";
41
- import type { ChatSidebarEmptyProps, ChatSidebarGroupProps, ChatSidebarItemActionProps, ChatSidebarItemContextValue, ChatSidebarItemMenuProps, ChatSidebarItemProps, ChatSidebarListProps, ChatSidebarNewButtonProps, ChatSidebarProps, ChatSidebarRootProps } from "./sidebar.types.js";
42
- export type { ChatSidebarEmptyProps, ChatSidebarGroupProps, ChatSidebarItemActionProps, ChatSidebarItemContextValue, ChatSidebarItemMenuProps, ChatSidebarItemProps, ChatSidebarItemRenderOptions, ChatSidebarListProps, ChatSidebarNewButtonProps, ChatSidebarProps, ChatSidebarRootProps, } from "./sidebar.types.js";
41
+ import type { ChatSidebarEmptyProps, ChatSidebarGroupProps, ChatSidebarItemActionProps, ChatSidebarItemContextValue, ChatSidebarItemMenuProps, ChatSidebarItemProps, ChatSidebarItemTitleProps, ChatSidebarListProps, ChatSidebarNewButtonProps, ChatSidebarProps, ChatSidebarRootProps } from "./sidebar.types.js";
42
+ export type { ChatSidebarEmptyProps, ChatSidebarGroupProps, ChatSidebarItemActionProps, ChatSidebarItemContextValue, ChatSidebarItemMenuProps, ChatSidebarItemProps, ChatSidebarItemRenderOptions, ChatSidebarItemTitleProps, ChatSidebarListProps, ChatSidebarNewButtonProps, ChatSidebarProps, ChatSidebarRootProps, } from "./sidebar.types.js";
43
43
  /** Context provider + outer rail container for the compound sidebar. */
44
44
  export declare function ChatSidebarRoot(props: ChatSidebarRootProps): React.ReactElement | null;
45
45
  export declare namespace ChatSidebarRoot {
@@ -65,9 +65,17 @@ export declare namespace ChatSidebarNewButton {
65
65
  */
66
66
  export declare const useChatSidebarItem: () => ChatSidebarItemContextValue;
67
67
  /**
68
- * A single conversation row — select on click, rename/delete via a "…" menu.
69
- * The menu is a composable compound: pass a `<ChatSidebar.Item.Menu>` child to
70
- * add or reorder entries without re-implementing the row.
68
+ * The row's label: the conversation title (or custom children). Use it inside
69
+ * an `<ChatSidebar.Item>` to compose the row body and skip its default title.
70
+ */
71
+ export declare function ChatSidebarItemTitle({ children, className, ref, ...props }: ChatSidebarItemTitleProps): React.ReactElement;
72
+ export declare namespace ChatSidebarItemTitle {
73
+ var displayName: string;
74
+ }
75
+ /**
76
+ * A single conversation row with selection, rename, and delete behavior.
77
+ * A `<ChatSidebar.Item.Menu>` fills the action slot. A Title child composes the
78
+ * row label, with fragment-grouped leaves treated as direct children.
71
79
  */
72
80
  export declare function ChatSidebarItem({ conversation, className, children, ref, }: ChatSidebarItemProps): React.ReactElement;
73
81
  export declare namespace ChatSidebarItem {
@@ -113,8 +121,9 @@ declare function ChatSidebarBase(props: ChatSidebarProps): React.ReactElement |
113
121
  declare namespace ChatSidebarBase {
114
122
  var displayName: string;
115
123
  }
116
- /** `ChatSidebar.Item` compound — the row plus its composable menu leaves. */
124
+ /** `ChatSidebar.Item` compound: the row plus its composable label and menu leaves. */
117
125
  export type ChatSidebarItemComponent = typeof ChatSidebarItem & {
126
+ Title: typeof ChatSidebarItemTitle;
118
127
  Menu: typeof ChatSidebarItemMenu;
119
128
  Rename: typeof ChatSidebarItemRename;
120
129
  Delete: typeof ChatSidebarItemDelete;
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/sidebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/sidebar.tsx"],"names":[],"mappings":"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"}
@@ -169,9 +169,30 @@ const [ChatSidebarItemContext, useChatSidebarItemStrict] = createStrictContext("
169
169
  */
170
170
  export const useChatSidebarItem = useChatSidebarItemStrict;
171
171
  /**
172
- * A single conversation row — select on click, rename/delete via a "…" menu.
173
- * The menu is a composable compound: pass a `<ChatSidebar.Item.Menu>` child to
174
- * add or reorder entries without re-implementing the row.
172
+ * The row's label: the conversation title (or custom children). Use it inside
173
+ * an `<ChatSidebar.Item>` to compose the row body and skip its default title.
174
+ */
175
+ export function ChatSidebarItemTitle({ children, className, ref, ...props }) {
176
+ const { conversation } = useChatSidebarItem();
177
+ return (React.createElement("span", { ...props, ref: ref, className: cn("block min-w-0 flex-1 truncate text-[13px] leading-snug", className) }, children ?? conversation.title));
178
+ }
179
+ ChatSidebarItemTitle.displayName = "ChatSidebar.Item.Title";
180
+ function flattenItemParts(children, parentKey = "") {
181
+ return React.Children.toArray(children).flatMap((child) => {
182
+ if (!React.isValidElement(child))
183
+ return child;
184
+ const childKey = String(child.key);
185
+ const itemKey = `${parentKey}${childKey.length}:${childKey}`;
186
+ if (child.type !== React.Fragment)
187
+ return React.cloneElement(child, { key: itemKey });
188
+ const props = child.props;
189
+ return flattenItemParts(props.children, itemKey);
190
+ });
191
+ }
192
+ /**
193
+ * A single conversation row with selection, rename, and delete behavior.
194
+ * A `<ChatSidebar.Item.Menu>` fills the action slot. A Title child composes the
195
+ * row label, with fragment-grouped leaves treated as direct children.
175
196
  */
176
197
  export function ChatSidebarItem({ conversation, className, children, ref, }) {
177
198
  const { activeId, onSelect, onDelete, onRename } = useChatSidebarContext();
@@ -204,8 +225,19 @@ export function ChatSidebarItem({ conversation, className, children, ref, }) {
204
225
  if (editing) {
205
226
  return (React.createElement(ChatSidebarRenameEditor, { ref: ref, className: className, value: editValue, onChange: setEditValue, onCommit: commitRename, onCancel: () => setEditing(false) }));
206
227
  }
228
+ // A Title child moves children into the row body; otherwise they compose the action slot.
229
+ // Transparent fragments keep title and menu partitioning consistent without duplication.
230
+ const parts = flattenItemParts(children);
231
+ const composesTitle = parts.some((part) => React.isValidElement(part) && part.type === ChatSidebarItemTitle);
232
+ const menuParts = parts.filter((part) => React.isValidElement(part) && part.type === ChatSidebarItemMenu);
233
+ const bodyParts = parts.filter((part) => !menuParts.includes(part));
207
234
  return (React.createElement(ChatSidebarItemContext.Provider, { value: itemContext },
208
- React.createElement(ListItem, { ref: ref, title: conversation.title, active: isActive || menuOpen, className: className, onActivate: () => onSelect(conversation.id), primaryActionProps: { "aria-current": isActive ? "page" : undefined }, action: children ?? React.createElement(ChatSidebarItemMenu, null) })));
235
+ React.createElement(ListItem, { ref: ref, title: composesTitle ? undefined : conversation.title, active: isActive || menuOpen, className: className, onActivate: () => onSelect(conversation.id), primaryActionProps: {
236
+ "aria-current": isActive ? "page" : undefined,
237
+ className: composesTitle ? "flex items-center gap-1" : undefined,
238
+ }, action: composesTitle
239
+ ? (menuParts.length > 0 ? menuParts : React.createElement(ChatSidebarItemMenu, null))
240
+ : children ?? React.createElement(ChatSidebarItemMenu, null) }, composesTitle ? bodyParts : undefined)));
209
241
  }
210
242
  ChatSidebarItem.displayName = "ChatSidebar.Item";
211
243
  /** The row's `…` dropdown. Reads row state from {@link useChatSidebarItem}. */
@@ -323,6 +355,7 @@ function ChatSidebarBase(props) {
323
355
  }
324
356
  ChatSidebarBase.displayName = "ChatSidebar";
325
357
  const ChatSidebarItemCompound = Object.assign(ChatSidebarItem, {
358
+ Title: ChatSidebarItemTitle,
326
359
  Menu: ChatSidebarItemMenu,
327
360
  Rename: ChatSidebarItemRename,
328
361
  Delete: ChatSidebarItemDelete,
@@ -80,12 +80,23 @@ export interface ChatSidebarItemProps {
80
80
  className?: string;
81
81
  /**
82
82
  * Compose the row's action slot, typically a `<ChatSidebar.Item.Menu>`.
83
- * Omit for the default `…` rename/delete menu.
83
+ * When the children include a `<ChatSidebar.Item.Title>`, they compose the
84
+ * row's label body instead; a sibling `<ChatSidebar.Item.Menu>` still fills
85
+ * the action slot when it is direct or grouped in a fragment (the default
86
+ * `…` menu is used when none is given). Omit for the default title + `…`
87
+ * rename/delete menu.
84
88
  */
85
89
  children?: React.ReactNode;
86
90
  /** React 19: ref is attached to the current row root in display and rename modes. */
87
91
  ref?: React.Ref<HTMLDivElement>;
88
92
  }
93
+ /** Props for {@link ChatSidebarItemTitle}. */
94
+ export interface ChatSidebarItemTitleProps extends React.HTMLAttributes<HTMLSpanElement> {
95
+ /** Override the label. Defaults to the conversation title. */
96
+ children?: React.ReactNode;
97
+ /** React 19: ref is a regular prop. */
98
+ ref?: React.Ref<HTMLSpanElement>;
99
+ }
89
100
  /** Props for {@link ChatSidebarItemMenu}. */
90
101
  export interface ChatSidebarItemMenuProps {
91
102
  /** Override the trigger glyph. */
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.types.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/sidebar.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.types.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/sidebar.types.ts"],"names":[],"mappings":"AAAA,gIAAgI;AAChI,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,yFAAyF;AACzF,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,4EAA4E;AAC5E,MAAM,WAAW,uBAAuB;IACtC,4EAA4E;IAC5E,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACtC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,2FAA2F;IAC3F,UAAU,CAAC,EAAE,CACX,YAAY,EAAE,mBAAmB,EACjC,IAAI,EAAE,4BAA4B,KAC/B,KAAK,CAAC,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,CACX,YAAY,EAAE,mBAAmB,EACjC,IAAI,EAAE,4BAA4B,KAC/B,KAAK,CAAC,SAAS,CAAC;CACtB;AAED,iDAAiD;AACjD,MAAM,WAAW,oBAAqB,SAAQ,uBAAuB;IACnE,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,sDAAsD;AACtD,MAAM,WAAW,yBAAyB;IACxC,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,6BAA6B;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,mBAAmB,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,gCAAgC;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,6DAA6D;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qFAAqF;IACrF,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,8CAA8C;AAC9C,MAAM,WAAW,yBAA0B,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IACtF,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;CAClC;AAED,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC,kCAAkC;IAClC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,+EAA+E;AAC/E,MAAM,WAAW,0BAA0B;IACzC,gCAAgC;IAChC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,2EAA2E;IAC3E,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;CACpC;AAED,kDAAkD;AAClD,MAAM,WAAW,qBAAqB;IACpC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,kDAAkD;AAClD,MAAM,WAAW,qBAAsB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACjF,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,iDAAiD;AACjD,MAAM,WAAW,oBAAqB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAChF;;;;OAIG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC;AAED,wDAAwD;AACxD,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC;CAAG"}
@@ -41,7 +41,9 @@ export declare namespace ChatInputToolbar {
41
41
  * `ChatInput.Root` — the provider shell for a fully custom composer. Supplies
42
42
  * `ChatInputContext` from props and renders your children, so you arrange
43
43
  * `ChatInput.Field` + the toolbar sub-parts yourself (like `Message.Root`). The
44
- * default `<ChatInput>` is exactly this Root plus the standard body.
44
+ * default `<ChatInput>` is exactly this Root plus the standard body. Omitted
45
+ * props fall back to the surrounding `ChatContext` (`<Chat.Root chat={…}>`),
46
+ * so a propless Root wires itself to the shared session; explicit props win.
45
47
  */
46
48
  export declare function ChatInputRoot({ className, children, ref, ...state }: ChatInputRootProps): React.ReactElement;
47
49
  export declare namespace ChatInputRoot {
@@ -1 +1 @@
1
- {"version":3,"file":"chat-composer.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/composition/chat-composer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,mBAAmB,0BAA0B,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AAM1F,iCAAiC;AACjC,wBAAgB,cAAc,CAC5B,EAAE,WAAiC,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,GACnF,KAAK,CAAC,YAAY,CAqBpB;AAED,yDAAyD;AACzD,wBAAgB,cAAc,CAC5B,EAAE,SAAS,EAAE,EAAE,mBAAmB,GACjC,KAAK,CAAC,YAAY,GAAG,IAAI,CAa3B;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAC7B,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,oBAAoB,GAChE,KAAK,CAAC,YAAY,GAAG,IAAI,CAmB3B;yBArBe,eAAe;;;AAwB/B;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,GAC5D,KAAK,CAAC,YAAY,CAWpB;yBAbe,gBAAgB;;;AAoBhC;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,GACzD,KAAK,CAAC,YAAY,CAepB;yBAjBe,aAAa;;;AAoB7B,2BAA2B;AAC3B,iBAAS,aAAa,CACpB,EACE,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAiB,EACjB,WAAiC,EACjC,KAAK,EACL,IAAI,EACJ,OAAO,EACP,WAAmB,EACnB,UAAU,EACV,MAAM,EACN,KAAK,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,MAAM,EACN,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,QAAQ,EACR,GAAG,GACJ,EAAE,cAAc,GAChB,KAAK,CAAC,YAAY,CA0HpB;kBAtJQ,aAAa;;;AAyJtB;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;CAWpB,CAAC"}
1
+ {"version":3,"file":"chat-composer.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/composition/chat-composer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,mBAAmB,0BAA0B,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AAM1F,iCAAiC;AACjC,wBAAgB,cAAc,CAC5B,EAAE,WAAiC,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,GACnF,KAAK,CAAC,YAAY,CAqBpB;AAED,yDAAyD;AACzD,wBAAgB,cAAc,CAC5B,EAAE,SAAS,EAAE,EAAE,mBAAmB,GACjC,KAAK,CAAC,YAAY,GAAG,IAAI,CAa3B;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAC7B,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,oBAAoB,GAChE,KAAK,CAAC,YAAY,GAAG,IAAI,CAmB3B;yBArBe,eAAe;;;AAwB/B;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,GAC5D,KAAK,CAAC,YAAY,CAWpB;yBAbe,gBAAgB;;;AAoBhC;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,GACzD,KAAK,CAAC,YAAY,CAepB;yBAjBe,aAAa;;;AAoB7B,2BAA2B;AAC3B,iBAAS,aAAa,CACpB,EACE,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EAIR,SAAS,EACT,WAAiC,EACjC,KAAK,EACL,IAAI,EACJ,OAAO,EACP,WAAmB,EACnB,UAAU,EACV,MAAM,EACN,KAAK,EACL,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,MAAM,EACN,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,QAAQ,EACR,GAAG,GACJ,EAAE,cAAc,GAChB,KAAK,CAAC,YAAY,CA+HpB;kBA9JQ,aAAa;;;AAiKtB;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;CAWpB,CAAC"}
@@ -71,11 +71,13 @@ ChatInputToolbar.displayName = "ChatInput.Toolbar";
71
71
  * `ChatInput.Root` — the provider shell for a fully custom composer. Supplies
72
72
  * `ChatInputContext` from props and renders your children, so you arrange
73
73
  * `ChatInput.Field` + the toolbar sub-parts yourself (like `Message.Root`). The
74
- * default `<ChatInput>` is exactly this Root plus the standard body.
74
+ * default `<ChatInput>` is exactly this Root plus the standard body. Omitted
75
+ * props fall back to the surrounding `ChatContext` (`<Chat.Root chat={…}>`),
76
+ * so a propless Root wires itself to the shared session; explicit props win.
75
77
  */
76
78
  export function ChatInputRoot({ className, children, ref, ...state }) {
77
79
  const baseCtxValue = useComposerValue(state);
78
- const { contextValue, fileInput } = useChatInputAttachmentPicker(baseCtxValue, state.onAttach, state.attachAccept);
80
+ const { contextValue, fileInput } = useChatInputAttachmentPicker(baseCtxValue, baseCtxValue.onAttach, state.attachAccept);
79
81
  return (React.createElement(ChatInputContextProvider, { value: contextValue },
80
82
  React.createElement("div", { ref: ref, className: cn("flex-shrink-0 pb-6 pt-2", className) },
81
83
  fileInput,
@@ -83,7 +85,11 @@ export function ChatInputRoot({ className, children, ref, ...state }) {
83
85
  }
84
86
  ChatInputRoot.displayName = "ChatInput.Root";
85
87
  /** Render the composer. */
86
- function ChatInputBase({ input, onChange, setInput, onSubmit, isLoading = false, placeholder = "Type a message...", theme, stop, onVoice, isListening = false, transcript, models, model, onModelChange, toolbarStart, onAttach, onSelectAttachment, onDrop, attachAccept, attachments, onRemoveAttachment, onAttachClick, className, children, ref, }) {
88
+ function ChatInputBase({ input, onChange, setInput, onSubmit,
89
+ // No `= false` default: an omitted `isLoading` must stay `undefined` so
90
+ // `useComposerValue` can inherit the surrounding session's loading state
91
+ // (a default would always win over the context and hide Stop mid-turn).
92
+ isLoading, placeholder = "Type a message...", theme, stop, onVoice, isListening = false, transcript, models, model, onModelChange, toolbarStart, onAttach, onSelectAttachment, onDrop, attachAccept, attachments, onRemoveAttachment, onAttachClick, className, children, ref, }) {
87
93
  {
88
94
  // Return focus to the editor after attaching (menu pick or drop) so the
89
95
  // user can keep typing without clicking back into the field.
@@ -98,7 +104,6 @@ function ChatInputBase({ input, onChange, setInput, onSubmit, isLoading = false,
98
104
  }
99
105
  : undefined, [focusField]);
100
106
  const handleAttach = withFocus(onAttach);
101
- const { isDragActive, onDragEnter, onDragLeave, onDragOver, onDrop: onFileDrop, } = useDropZone(withFocus(onDrop ?? onAttach));
102
107
  const baseCtxValue = useComposerValue({
103
108
  input,
104
109
  onChange,
@@ -118,7 +123,13 @@ function ChatInputBase({ input, onChange, setInput, onSubmit, isLoading = false,
118
123
  attachments,
119
124
  onRemoveAttachment,
120
125
  });
121
- const { contextValue, fileInput } = useChatInputAttachmentPicker(baseCtxValue, handleAttach, attachAccept);
126
+ // Attach + drop fall back to the context-resolved handler (like
127
+ // `ChatInput.Root`), so a propless composer inside `<Chat.Root chat={…}>`
128
+ // keeps a working picker and drop zone. Both explicit and inherited
129
+ // handlers restore field focus after a selection.
130
+ const resolvedAttach = handleAttach ?? withFocus(baseCtxValue.onAttach);
131
+ const { isDragActive, onDragEnter, onDragLeave, onDragOver, onDrop: onFileDrop, } = useDropZone(withFocus(onDrop) ?? resolvedAttach);
132
+ const { contextValue, fileInput } = useChatInputAttachmentPicker(baseCtxValue, resolvedAttach, attachAccept);
122
133
  return (React.createElement(ChatInputContextProvider, { value: contextValue },
123
134
  React.createElement("div", { ref: ref, className: cn("flex-shrink-0 pb-6", className) },
124
135
  fileInput,
@@ -127,7 +138,7 @@ function ChatInputBase({ input, onChange, setInput, onSubmit, isLoading = false,
127
138
  React.createElement(ChatInputForm, { onSubmit: contextValue.onSubmit },
128
139
  React.createElement("div", { onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragOver: onDragOver, onDrop: onFileDrop, ref: fieldContainerRef, className: cn("relative overflow-hidden rounded-[var(--radius-lg)] border border-transparent bg-[var(--secondary)] px-3 py-2 shadow-sm transition-all md:px-4 md:py-3", isDragActive && "border-dashed border-[var(--edge-medium)]") },
129
140
  React.createElement(DropZoneOverlay, { visible: isDragActive }),
130
- attachments && attachments.length > 0 && (React.createElement("div", { className: "mb-2.5 flex flex-wrap items-center gap-2" }, attachments.map((file) => (React.createElement(AttachmentPill, { key: file.id, attachment: file, onRemove: onRemoveAttachment, className: "w-[200px]" }))))),
141
+ contextValue.attachments.length > 0 && (React.createElement("div", { className: "mb-2.5 flex flex-wrap items-center gap-2" }, contextValue.attachments.map((file) => (React.createElement(AttachmentPill, { key: file.id, attachment: file, onRemove: contextValue.onRemoveAttachment, className: "w-[200px]" }))))),
131
142
  React.createElement(ChatInputField, { placeholder: placeholder, className: theme?.input }),
132
143
  React.createElement("div", { className: "mt-2.5 flex min-h-[44px] items-center justify-between gap-1.5 md:gap-2" },
133
144
  React.createElement("div", { className: "flex min-w-0 items-center gap-1.5 md:gap-2" },
@@ -105,12 +105,19 @@ export interface ChatInputToolbarProps extends React.HTMLAttributes<HTMLDivEleme
105
105
  /** React 19: ref is a regular prop. */
106
106
  ref?: React.Ref<HTMLDivElement>;
107
107
  }
108
- /** Props accepted by `ChatInput`. */
108
+ /**
109
+ * Props accepted by `ChatInput`.
110
+ *
111
+ * Every prop is optional: omitted state falls back to the surrounding
112
+ * `ChatContext` (`<Chat.Root chat={…}>`), so a propless `<ChatInput />` wires
113
+ * itself to the shared session. Explicit props always win, and a standalone
114
+ * composer outside a `<Chat.Root>` still supplies its own `input`/`onChange`.
115
+ */
109
116
  export interface ChatInputProps {
110
- /** Current text value of the composer input (controlled). */
111
- input: string;
112
- /** Fired as the user edits the input. */
113
- onChange: (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
117
+ /** Current text value of the composer input (controlled). Falls back to `ChatContext.input`. */
118
+ input?: string;
119
+ /** Fired as the user edits the input. Falls back to `ChatContext.setInput`. */
120
+ onChange?: (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
114
121
  /**
115
122
  * Update the controlled input value for headless consumers. The preset wires
116
123
  * this automatically. Direct consumers must provide it before calling
@@ -1 +1 @@
1
- {"version":3,"file":"chat-composer.types.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/composition/chat-composer.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-composer.types.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/composition/chat-composer.types.ts"],"names":[],"mappings":"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"}
@@ -7,26 +7,39 @@
7
7
  * @module react/components/chat/composition/chat-root
8
8
  */
9
9
  import * as React from "react";
10
- import type { ChatMessage, ChatStatus } from "../../../../../agent/react/index.js";
10
+ import type { ChatMessage, ChatStatus, UseChatResult } from "../../../../../agent/react/index.js";
11
11
  import type { ChatTheme } from "../../theme.js";
12
12
  import type { ModelOption } from "../../model-selector.js";
13
13
  import type { AttachmentInfo } from "../components/attachment-pill.js";
14
14
  import type { FeedbackValue } from "../components/message-feedback.js";
15
15
  import type { Source } from "../components/sources.js";
16
16
  import type { BranchInfo } from "../../../../../agent/react/index.js";
17
- /** Props accepted by chat root. */
17
+ /**
18
+ * Props accepted by chat root.
19
+ *
20
+ * Supply either `chat` (a `useChat()` session) or the flat props
21
+ * (`messages`, `input`, `onSubmit`, …). Both are optional so the two modes can
22
+ * mix, but a `<Chat.Root>` given neither renders an empty chat whose
23
+ * `setInput`/`onSubmit` are inert no-ops.
24
+ */
18
25
  export interface ChatRootProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
19
26
  children: React.ReactNode;
20
27
  /** React 19: ref is a regular prop. */
21
28
  ref?: React.Ref<HTMLDivElement>;
22
- messages: ChatMessage[];
29
+ /**
30
+ * Drive the chat surface from a `useChat()` session you own:
31
+ * `<Chat.Root chat={useChat()}>`. Folds the session state into the shared
32
+ * context; the flat props below stay as an explicit override path.
33
+ */
34
+ chat?: UseChatResult;
35
+ messages?: ChatMessage[];
23
36
  isLoading?: boolean;
24
37
  /** Streaming lifecycle of the current turn (`useChat().status`). */
25
38
  status?: ChatStatus;
26
39
  /** Id of the assistant message currently streaming (`useChat().streamingMessageId`). */
27
40
  streamingMessageId?: string | null;
28
41
  error?: Error | null;
29
- input: string;
42
+ input?: string;
30
43
  setInput?: (value: string) => void;
31
44
  onSubmit?: (e?: React.FormEvent) => void | Promise<void>;
32
45
  onStop?: () => void;
@@ -50,7 +63,7 @@ export interface ChatRootProps extends Omit<React.HTMLAttributes<HTMLDivElement>
50
63
  maxHeight?: string;
51
64
  }
52
65
  /** Render chat root. */
53
- export declare function ChatRoot({ children, messages, isLoading, status, streamingMessageId, error, input, setInput, onSubmit, onStop, onReload, model, models, onModelChange, agent, attachments, onAttach, onRemoveAttachment, editMessage, getBranches, switchBranch, onFeedback, onSourceClick, theme: userTheme, maxHeight, className, style, ref, ...containerProps }: ChatRootProps): React.ReactElement;
66
+ export declare function ChatRoot({ children, chat, messages: messagesProp, isLoading: isLoadingProp, status: statusProp, streamingMessageId: streamingMessageIdProp, error: errorProp, input: inputProp, setInput: setInputProp, onSubmit: onSubmitProp, onStop: onStopProp, onReload: onReloadProp, model: modelProp, models, onModelChange: onModelChangeProp, agent, attachments, onAttach, onRemoveAttachment, editMessage: editMessageProp, getBranches: getBranchesProp, switchBranch: switchBranchProp, onFeedback, onSourceClick, theme: userTheme, maxHeight, className, style, ref, ...containerProps }: ChatRootProps): React.ReactElement;
54
67
  export declare namespace ChatRoot {
55
68
  var displayName: string;
56
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat-root.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/composition/chat-root.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-root.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/composition/chat-root.tsx"],"names":[],"mappings":"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"}
@@ -11,8 +11,69 @@ import { ChatContainer } from "../../../../primitives/index.js";
11
11
  import { useDocumentNonce } from "../../../ui/csp-nonce.js";
12
12
  import { cn, defaultChatTheme, generateTokenCSS, mergeThemes, UI_SCOPE_ATTRS, } from "../../theme.js";
13
13
  import { ChatContextProvider } from "../contexts/chat-context.js";
14
+ import { attachmentsToFileParts, hasPendingAttachments } from "../chat-attachments.js";
14
15
  /** Render chat root. */
15
- export function ChatRoot({ children, messages, isLoading = false, status, streamingMessageId, error = null, input, setInput, onSubmit, onStop, onReload, model, models = [], onModelChange, agent, attachments = [], onAttach, onRemoveAttachment, editMessage, getBranches, switchBranch, onFeedback, onSourceClick, theme: userTheme, maxHeight = "100%", className, style, ref, ...containerProps }) {
16
+ export function ChatRoot({ children, chat, messages: messagesProp, isLoading: isLoadingProp, status: statusProp, streamingMessageId: streamingMessageIdProp, error: errorProp, input: inputProp, setInput: setInputProp, onSubmit: onSubmitProp, onStop: onStopProp, onReload: onReloadProp, model: modelProp, models = [], onModelChange: onModelChangeProp, agent, attachments = [], onAttach, onRemoveAttachment, editMessage: editMessageProp, getBranches: getBranchesProp, switchBranch: switchBranchProp, onFeedback, onSourceClick, theme: userTheme, maxHeight = "100%", className, style, ref, ...containerProps }) {
17
+ // `chat` folds the session's flat state into the context; each explicit flat
18
+ // prop wins over the session value (issue #69's override path).
19
+ const messages = messagesProp ?? chat?.messages ?? [];
20
+ const isLoading = isLoadingProp ?? chat?.isLoading ?? false;
21
+ const status = statusProp ?? chat?.status;
22
+ // Nullable props compare against `undefined`, not nullish: `error={null}` and
23
+ // `streamingMessageId={null}` are explicit overrides that clear the session
24
+ // value, so `??` would wrongly restore it from `chat`.
25
+ const streamingMessageId = streamingMessageIdProp !== undefined
26
+ ? streamingMessageIdProp
27
+ : chat?.streamingMessageId;
28
+ const error = errorProp !== undefined ? errorProp : (chat?.error ?? null);
29
+ const input = inputProp ?? chat?.input ?? "";
30
+ const setInput = setInputProp ?? chat?.setInput;
31
+ const model = modelProp ?? chat?.model;
32
+ const hasFlatSubmitState = inputProp !== undefined || setInputProp !== undefined ||
33
+ isLoadingProp !== undefined || modelProp !== undefined;
34
+ const submitSession = React.useCallback((e) => {
35
+ if (!chat)
36
+ return;
37
+ if (hasPendingAttachments(attachments)) {
38
+ e?.preventDefault();
39
+ return;
40
+ }
41
+ const files = attachmentsToFileParts(attachments);
42
+ if (files.length === 0 && !hasFlatSubmitState)
43
+ return chat.handleSubmit(e);
44
+ e?.preventDefault();
45
+ if (isLoading)
46
+ return;
47
+ const text = input.trim();
48
+ if (!text && files.length === 0)
49
+ return;
50
+ setInput?.("");
51
+ for (const attachment of attachments) {
52
+ if (attachment.url)
53
+ onRemoveAttachment?.(attachment.id);
54
+ }
55
+ return chat.sendMessage({
56
+ text,
57
+ ...(files.length > 0 ? { files } : {}),
58
+ ...(model !== undefined ? { model } : {}),
59
+ });
60
+ }, [
61
+ attachments,
62
+ chat,
63
+ hasFlatSubmitState,
64
+ input,
65
+ isLoading,
66
+ model,
67
+ onRemoveAttachment,
68
+ setInput,
69
+ ]);
70
+ const onSubmit = onSubmitProp ?? (chat ? submitSession : undefined);
71
+ const onStop = onStopProp ?? chat?.stop;
72
+ const onReload = onReloadProp ?? chat?.reload;
73
+ const onModelChange = onModelChangeProp ?? chat?.setModel;
74
+ const editMessage = editMessageProp ?? chat?.editMessage;
75
+ const getBranches = getBranchesProp ?? chat?.getBranches;
76
+ const switchBranch = switchBranchProp ?? chat?.switchBranch;
16
77
  const theme = React.useMemo(() => mergeThemes(defaultChatTheme, userTheme), [userTheme]);
17
78
  const nonce = useDocumentNonce();
18
79
  const tokenCSS = React.useMemo(() => generateTokenCSS(), []);
@@ -33,6 +94,7 @@ export function ChatRoot({ children, messages, isLoading = false, status, stream
33
94
  input,
34
95
  setInput: setInput ?? (() => { }),
35
96
  onSubmit: onSubmit ?? (() => { }),
97
+ sendMessage: onSubmitProp === undefined ? chat?.sendMessage : undefined,
36
98
  onStop,
37
99
  onReload,
38
100
  model,
@@ -60,6 +122,8 @@ export function ChatRoot({ children, messages, isLoading = false, status, stream
60
122
  input,
61
123
  setInput,
62
124
  onSubmit,
125
+ chat?.sendMessage,
126
+ onSubmitProp,
63
127
  onStop,
64
128
  onReload,
65
129
  model,