veryfront 0.1.47 → 0.1.49

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 (813) hide show
  1. package/esm/cli/app/components/inline-input.d.ts +1 -4
  2. package/esm/cli/app/components/inline-input.d.ts.map +1 -1
  3. package/esm/cli/app/components/inline-input.js +1 -1
  4. package/esm/cli/app/components/list-select.d.ts +0 -8
  5. package/esm/cli/app/components/list-select.d.ts.map +1 -1
  6. package/esm/cli/app/components/list-select.js +0 -13
  7. package/esm/cli/app/operations/project-creation.d.ts +2 -14
  8. package/esm/cli/app/operations/project-creation.d.ts.map +1 -1
  9. package/esm/cli/app/operations/project-creation.js +3 -68
  10. package/esm/cli/app/shell.js +2 -2
  11. package/esm/cli/app/utils.d.ts +1 -2
  12. package/esm/cli/app/utils.d.ts.map +1 -1
  13. package/esm/cli/app/utils.js +1 -17
  14. package/esm/cli/app/views/dashboard.d.ts +0 -4
  15. package/esm/cli/app/views/dashboard.d.ts.map +1 -1
  16. package/esm/cli/app/views/dashboard.js +0 -15
  17. package/esm/cli/app/views/startup.d.ts +0 -4
  18. package/esm/cli/app/views/startup.d.ts.map +1 -1
  19. package/esm/cli/app/views/startup.js +0 -7
  20. package/esm/cli/auth/login.d.ts.map +1 -1
  21. package/esm/cli/auth/login.js +1 -2
  22. package/esm/cli/auth/token-store.js +1 -1
  23. package/esm/cli/auth/utils.d.ts +2 -1
  24. package/esm/cli/auth/utils.d.ts.map +1 -1
  25. package/esm/cli/commands/build/handler.d.ts +1 -1
  26. package/esm/cli/commands/generate/integration-generator.js +1 -1
  27. package/esm/cli/commands/init/catalog.js +3 -3
  28. package/esm/cli/commands/init/command-help.js +2 -2
  29. package/esm/cli/commands/init/config-generator.d.ts.map +1 -1
  30. package/esm/cli/commands/init/config-generator.js +8 -0
  31. package/esm/cli/commands/init/types.d.ts +1 -1
  32. package/esm/cli/commands/init/types.d.ts.map +1 -1
  33. package/esm/cli/commands/install/types.d.ts +2 -2
  34. package/esm/cli/commands/merge/command.d.ts +1 -1
  35. package/esm/cli/help/formatters.d.ts +1 -1
  36. package/esm/cli/help/formatters.d.ts.map +1 -1
  37. package/esm/cli/help/formatters.js +8 -4
  38. package/esm/cli/help/main-help.d.ts.map +1 -1
  39. package/esm/cli/help/main-help.js +2 -2
  40. package/esm/cli/help/tips.js +1 -1
  41. package/esm/cli/mcp/remote-file-tools.js +1 -1
  42. package/esm/cli/mcp/server.d.ts +0 -1
  43. package/esm/cli/mcp/server.d.ts.map +1 -1
  44. package/esm/cli/mcp/server.js +2 -5
  45. package/esm/cli/mcp/tools/catalog-tools.d.ts +3 -3
  46. package/esm/cli/mcp/tools/catalog-tools.js +3 -3
  47. package/esm/cli/mcp/tools/dev-tools.d.ts +1 -1
  48. package/esm/cli/mcp/tools/dev-tools.d.ts.map +1 -1
  49. package/esm/cli/mcp/tools/dev-tools.js +1 -2
  50. package/esm/cli/mcp/tools/scaffold-tools.d.ts +2 -2
  51. package/esm/cli/mcp/tools.d.ts +1 -2
  52. package/esm/cli/mcp/tools.d.ts.map +1 -1
  53. package/esm/cli/mcp/tools.js +1 -2
  54. package/esm/cli/shared/reserve-slug.d.ts.map +1 -1
  55. package/esm/cli/shared/reserve-slug.js +1 -3
  56. package/esm/cli/sync/ignore.d.ts +1 -1
  57. package/esm/cli/sync/ignore.d.ts.map +1 -1
  58. package/esm/cli/sync/ignore.js +22 -18
  59. package/esm/cli/templates/index.js +2 -2
  60. package/esm/cli/templates/manifest.d.ts +10 -8
  61. package/esm/cli/templates/manifest.js +15 -13
  62. package/esm/cli/templates/types.d.ts +1 -1
  63. package/esm/cli/templates/types.d.ts.map +1 -1
  64. package/esm/cli/ui/colors.d.ts +0 -1
  65. package/esm/cli/ui/colors.d.ts.map +1 -1
  66. package/esm/cli/ui/colors.js +0 -10
  67. package/esm/cli/ui/dot-matrix.d.ts.map +1 -1
  68. package/esm/cli/ui/dot-matrix.js +2 -5
  69. package/esm/cli/ui/tui.js +2 -3
  70. package/esm/cli/utils/index.js +1 -2
  71. package/esm/cli/utils/package-manager.d.ts.map +1 -1
  72. package/esm/cli/utils/package-manager.js +3 -4
  73. package/esm/deno.d.ts +10 -0
  74. package/esm/deno.js +30 -20
  75. package/esm/src/agent/chat-handler.d.ts +22 -0
  76. package/esm/src/agent/chat-handler.d.ts.map +1 -1
  77. package/esm/src/agent/chat-handler.js +88 -28
  78. package/esm/src/agent/factory.d.ts +0 -8
  79. package/esm/src/agent/factory.d.ts.map +1 -1
  80. package/esm/src/agent/factory.js +50 -1
  81. package/esm/src/agent/index.d.ts +17 -2
  82. package/esm/src/agent/index.d.ts.map +1 -1
  83. package/esm/src/agent/index.js +17 -2
  84. package/esm/src/agent/memory/memory.d.ts +2 -2
  85. package/esm/src/agent/memory/memory.d.ts.map +1 -1
  86. package/esm/src/agent/memory/memory.js +0 -1
  87. package/esm/src/agent/react/index.d.ts +1 -1
  88. package/esm/src/agent/react/index.d.ts.map +1 -1
  89. package/esm/src/agent/react/use-chat/index.d.ts +1 -1
  90. package/esm/src/agent/react/use-chat/index.d.ts.map +1 -1
  91. package/esm/src/agent/react/use-chat/streaming/handler.d.ts.map +1 -1
  92. package/esm/src/agent/react/use-chat/streaming/handler.js +42 -4
  93. package/esm/src/agent/react/use-chat/streaming/parts-builder.d.ts +2 -2
  94. package/esm/src/agent/react/use-chat/streaming/parts-builder.d.ts.map +1 -1
  95. package/esm/src/agent/react/use-chat/streaming/parts-builder.js +14 -1
  96. package/esm/src/agent/react/use-chat/streaming/types.d.ts +5 -0
  97. package/esm/src/agent/react/use-chat/streaming/types.d.ts.map +1 -1
  98. package/esm/src/agent/react/use-chat/types.d.ts +23 -1
  99. package/esm/src/agent/react/use-chat/types.d.ts.map +1 -1
  100. package/esm/src/agent/react/use-chat/use-chat.d.ts +15 -1
  101. package/esm/src/agent/react/use-chat/use-chat.d.ts.map +1 -1
  102. package/esm/src/agent/react/use-chat/use-chat.js +187 -35
  103. package/esm/src/agent/runtime/index.d.ts +18 -0
  104. package/esm/src/agent/runtime/index.d.ts.map +1 -1
  105. package/esm/src/agent/runtime/index.js +167 -36
  106. package/esm/src/agent/runtime/tool-helpers.d.ts +6 -1
  107. package/esm/src/agent/runtime/tool-helpers.d.ts.map +1 -1
  108. package/esm/src/agent/runtime/tool-helpers.js +10 -1
  109. package/esm/src/agent/schemas/agent.schema.d.ts +4 -4
  110. package/esm/src/agent/types.d.ts +10 -0
  111. package/esm/src/agent/types.d.ts.map +1 -1
  112. package/esm/src/ai/registry-manager.d.ts.map +1 -1
  113. package/esm/src/ai/registry-manager.js +2 -1
  114. package/esm/src/build/bundler/code-splitter/manifest-builder.d.ts +0 -2
  115. package/esm/src/build/bundler/code-splitter/manifest-builder.d.ts.map +1 -1
  116. package/esm/src/build/bundler/code-splitter/manifest-builder.js +1 -1
  117. package/esm/src/build/compiler/mdx-compiler/validator.d.ts.map +1 -1
  118. package/esm/src/build/compiler/mdx-compiler/validator.js +2 -3
  119. package/esm/src/build/compiler/mdx-to-js.d.ts +0 -2
  120. package/esm/src/build/compiler/mdx-to-js.d.ts.map +1 -1
  121. package/esm/src/build/compiler/mdx-to-js.js +0 -81
  122. package/esm/src/build/index.d.ts +0 -6
  123. package/esm/src/build/index.d.ts.map +1 -1
  124. package/esm/src/build/index.js +0 -1
  125. package/esm/src/build/production-build/build/route-collector.d.ts.map +1 -1
  126. package/esm/src/build/production-build/build/route-collector.js +2 -3
  127. package/esm/src/build/production-build/client-runtime.d.ts +7 -3
  128. package/esm/src/build/production-build/client-runtime.d.ts.map +1 -1
  129. package/esm/src/build/production-build/client-runtime.js +9 -9
  130. package/esm/src/build/production-build/templates.d.ts +5 -9
  131. package/esm/src/build/production-build/templates.d.ts.map +1 -1
  132. package/esm/src/build/production-build/templates.js +6 -18
  133. package/esm/src/build/vendor-cache.d.ts.map +1 -1
  134. package/esm/src/build/vendor-cache.js +0 -5
  135. package/esm/src/cache/tokenizing-gateway.d.ts +0 -2
  136. package/esm/src/cache/tokenizing-gateway.d.ts.map +1 -1
  137. package/esm/src/cache/tokenizing-gateway.js +1 -3
  138. package/esm/src/chat/index.d.ts +33 -24
  139. package/esm/src/chat/index.d.ts.map +1 -1
  140. package/esm/src/chat/index.js +40 -26
  141. package/esm/src/config/define-config.d.ts.map +1 -1
  142. package/esm/src/config/define-config.js +28 -25
  143. package/esm/src/config/loader.d.ts.map +1 -1
  144. package/esm/src/config/loader.js +10 -7
  145. package/esm/src/config/schemas/config.schema.d.ts +58 -12
  146. package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
  147. package/esm/src/config/schemas/config.schema.js +12 -0
  148. package/esm/src/data/data-fetcher.d.ts +1 -2
  149. package/esm/src/data/data-fetcher.d.ts.map +1 -1
  150. package/esm/src/data/data-fetcher.js +14 -15
  151. package/esm/src/data/server-data-fetcher.d.ts +0 -3
  152. package/esm/src/data/server-data-fetcher.d.ts.map +1 -1
  153. package/esm/src/data/server-data-fetcher.js +1 -8
  154. package/esm/src/data/static-data-fetcher.d.ts +1 -3
  155. package/esm/src/data/static-data-fetcher.d.ts.map +1 -1
  156. package/esm/src/data/static-data-fetcher.js +1 -3
  157. package/esm/src/discovery/discovery-engine.d.ts.map +1 -1
  158. package/esm/src/discovery/discovery-engine.js +19 -1
  159. package/esm/src/discovery/discovery-utils.d.ts +0 -4
  160. package/esm/src/discovery/discovery-utils.d.ts.map +1 -1
  161. package/esm/src/discovery/discovery-utils.js +0 -6
  162. package/esm/src/discovery/file-discovery.d.ts +3 -1
  163. package/esm/src/discovery/file-discovery.d.ts.map +1 -1
  164. package/esm/src/discovery/file-discovery.js +3 -8
  165. package/esm/src/discovery/handlers/index.d.ts +1 -0
  166. package/esm/src/discovery/handlers/index.d.ts.map +1 -1
  167. package/esm/src/discovery/handlers/index.js +1 -0
  168. package/esm/src/discovery/handlers/skill-handler.d.ts +26 -0
  169. package/esm/src/discovery/handlers/skill-handler.d.ts.map +1 -0
  170. package/esm/src/discovery/handlers/skill-handler.js +87 -0
  171. package/esm/src/discovery/handlers/task-handler.d.ts.map +1 -1
  172. package/esm/src/discovery/handlers/task-handler.js +1 -5
  173. package/esm/src/discovery/transpiler.d.ts.map +1 -1
  174. package/esm/src/discovery/transpiler.js +7 -2
  175. package/esm/src/discovery/types.d.ts +3 -0
  176. package/esm/src/discovery/types.d.ts.map +1 -1
  177. package/esm/src/embedding/chunk.d.ts +18 -0
  178. package/esm/src/embedding/chunk.d.ts.map +1 -0
  179. package/esm/src/embedding/chunk.js +48 -0
  180. package/esm/src/embedding/embedding.d.ts +23 -0
  181. package/esm/src/embedding/embedding.d.ts.map +1 -0
  182. package/esm/src/embedding/embedding.js +54 -0
  183. package/esm/src/embedding/index.d.ts +29 -0
  184. package/esm/src/embedding/index.d.ts.map +1 -0
  185. package/esm/src/embedding/index.js +26 -0
  186. package/esm/src/embedding/react/use-uploads.d.ts +31 -0
  187. package/esm/src/embedding/react/use-uploads.d.ts.map +1 -0
  188. package/esm/src/embedding/react/use-uploads.js +71 -0
  189. package/esm/src/embedding/resolve.d.ts +27 -0
  190. package/esm/src/embedding/resolve.d.ts.map +1 -0
  191. package/esm/src/embedding/resolve.js +94 -0
  192. package/esm/src/embedding/types.d.ts +90 -0
  193. package/esm/src/embedding/types.d.ts.map +1 -0
  194. package/esm/src/embedding/types.js +1 -0
  195. package/esm/src/embedding/upload-handler.d.ts +43 -0
  196. package/esm/src/embedding/upload-handler.d.ts.map +1 -0
  197. package/esm/src/embedding/upload-handler.js +144 -0
  198. package/esm/src/embedding/upload-loader.d.ts +14 -0
  199. package/esm/src/embedding/upload-loader.d.ts.map +1 -0
  200. package/esm/src/embedding/upload-loader.js +70 -0
  201. package/esm/src/embedding/upload-store.d.ts +27 -0
  202. package/esm/src/embedding/upload-store.d.ts.map +1 -0
  203. package/esm/src/embedding/upload-store.js +244 -0
  204. package/esm/src/embedding/vector-store.d.ts +33 -0
  205. package/esm/src/embedding/vector-store.d.ts.map +1 -0
  206. package/esm/src/embedding/vector-store.js +215 -0
  207. package/esm/src/errors/error-registry.d.ts +2 -1
  208. package/esm/src/errors/error-registry.d.ts.map +1 -1
  209. package/esm/src/errors/http-error.d.ts +1 -2
  210. package/esm/src/errors/http-error.d.ts.map +1 -1
  211. package/esm/src/errors/http-error.js +2 -2
  212. package/esm/src/errors/middleware/cli-error-boundary.d.ts.map +1 -1
  213. package/esm/src/errors/middleware/cli-error-boundary.js +13 -2
  214. package/esm/src/errors/middleware/wrap-unknown.d.ts +0 -7
  215. package/esm/src/errors/middleware/wrap-unknown.d.ts.map +1 -1
  216. package/esm/src/errors/middleware/wrap-unknown.js +0 -9
  217. package/esm/src/errors/veryfront-error.d.ts +0 -3
  218. package/esm/src/errors/veryfront-error.d.ts.map +1 -1
  219. package/esm/src/errors/veryfront-error.js +0 -5
  220. package/esm/src/html/schemas/html.schema.d.ts +2 -2
  221. package/esm/src/html/styles-builder/css-hash-cache.d.ts.map +1 -1
  222. package/esm/src/html/styles-builder/css-hash-cache.js +1 -2
  223. package/esm/src/html/styles-builder/plugin-loader.d.ts.map +1 -1
  224. package/esm/src/html/styles-builder/plugin-loader.js +50 -21
  225. package/esm/src/html/styles-builder/tailwind-compiler-cache.d.ts.map +1 -1
  226. package/esm/src/html/styles-builder/tailwind-compiler-cache.js +12 -4
  227. package/esm/src/html/utils.d.ts +0 -7
  228. package/esm/src/html/utils.d.ts.map +1 -1
  229. package/esm/src/html/utils.js +0 -25
  230. package/esm/src/modules/component-registry/registry.d.ts +0 -3
  231. package/esm/src/modules/component-registry/registry.d.ts.map +1 -1
  232. package/esm/src/modules/component-registry/registry.js +0 -3
  233. package/esm/src/modules/import-map/default-import-map.d.ts.map +1 -1
  234. package/esm/src/modules/import-map/default-import-map.js +8 -0
  235. package/esm/src/modules/react-loader/component-loader.d.ts.map +1 -1
  236. package/esm/src/modules/react-loader/component-loader.js +1 -0
  237. package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts.map +1 -1
  238. package/esm/src/modules/react-loader/ssr-module-loader/loader.js +10 -1
  239. package/esm/src/modules/react-loader/ssr-module-loader/types.d.ts +2 -0
  240. package/esm/src/modules/react-loader/ssr-module-loader/types.d.ts.map +1 -1
  241. package/esm/src/modules/react-loader/types.d.ts +2 -0
  242. package/esm/src/modules/react-loader/types.d.ts.map +1 -1
  243. package/esm/src/modules/server/module-server.d.ts +2 -0
  244. package/esm/src/modules/server/module-server.d.ts.map +1 -1
  245. package/esm/src/modules/server/module-server.js +2 -1
  246. package/esm/src/oauth/handlers/callback-handler.d.ts +2 -0
  247. package/esm/src/oauth/handlers/callback-handler.d.ts.map +1 -1
  248. package/esm/src/oauth/handlers/callback-handler.js +10 -4
  249. package/esm/src/oauth/providers/common.d.ts.map +1 -1
  250. package/esm/src/oauth/providers/common.js +0 -23
  251. package/esm/src/observability/auto-instrument/react-instrumentation.js +2 -1
  252. package/esm/src/observability/instruments/instruments-factory.d.ts +1 -1
  253. package/esm/src/observability/instruments/instruments-factory.d.ts.map +1 -1
  254. package/esm/src/observability/instruments/instruments-factory.js +5 -4
  255. package/esm/src/observability/metrics/config.js +5 -4
  256. package/esm/src/observability/metrics/manager.js +1 -1
  257. package/esm/src/observability/tracing/span-operations.d.ts.map +1 -1
  258. package/esm/src/observability/tracing/span-operations.js +14 -8
  259. package/esm/src/platform/compat/console/node.d.ts +0 -1
  260. package/esm/src/platform/compat/console/node.d.ts.map +1 -1
  261. package/esm/src/platform/compat/console/node.js +4 -11
  262. package/esm/src/platform/compat/fs.d.ts.map +1 -1
  263. package/esm/src/platform/compat/fs.js +4 -2
  264. package/esm/src/platform/compat/opaque-deps.d.ts +18 -2
  265. package/esm/src/platform/compat/opaque-deps.d.ts.map +1 -1
  266. package/esm/src/platform/compat/opaque-deps.js +19 -0
  267. package/esm/src/platform/compat/path/basic-operations.d.ts.map +1 -1
  268. package/esm/src/platform/compat/path/basic-operations.js +17 -10
  269. package/esm/src/platform/compat/path/resolution.d.ts.map +1 -1
  270. package/esm/src/platform/compat/path/resolution.js +65 -20
  271. package/esm/src/platform/compat/path/url-conversion.d.ts.map +1 -1
  272. package/esm/src/platform/compat/path/url-conversion.js +3 -2
  273. package/esm/src/platform/compat/process.d.ts +2 -14
  274. package/esm/src/platform/compat/process.d.ts.map +1 -1
  275. package/esm/src/platform/compat/process.js +92 -70
  276. package/esm/src/provider/index.d.ts +1 -1
  277. package/esm/src/provider/index.d.ts.map +1 -1
  278. package/esm/src/provider/index.js +1 -1
  279. package/esm/src/provider/local/ai-sdk-adapter.d.ts.map +1 -1
  280. package/esm/src/provider/local/ai-sdk-adapter.js +18 -18
  281. package/esm/src/provider/local/env.d.ts.map +1 -1
  282. package/esm/src/provider/local/env.js +2 -1
  283. package/esm/src/provider/local/local-embedding-adapter.d.ts +19 -0
  284. package/esm/src/provider/local/local-embedding-adapter.d.ts.map +1 -0
  285. package/esm/src/provider/local/local-embedding-adapter.js +32 -0
  286. package/esm/src/provider/local/local-embedding-engine.d.ts +17 -0
  287. package/esm/src/provider/local/local-embedding-engine.d.ts.map +1 -0
  288. package/esm/src/provider/local/local-embedding-engine.js +63 -0
  289. package/esm/src/provider/local/local-engine.d.ts +7 -0
  290. package/esm/src/provider/local/local-engine.d.ts.map +1 -1
  291. package/esm/src/provider/local/local-engine.js +1 -1
  292. package/esm/src/provider/local/model-catalog.d.ts +10 -1
  293. package/esm/src/provider/local/model-catalog.d.ts.map +1 -1
  294. package/esm/src/provider/local/model-catalog.js +61 -0
  295. package/esm/src/provider/model-registry.d.ts +10 -0
  296. package/esm/src/provider/model-registry.d.ts.map +1 -1
  297. package/esm/src/provider/model-registry.js +43 -0
  298. package/esm/src/proxy/retry.d.ts +3 -3
  299. package/esm/src/proxy/retry.d.ts.map +1 -1
  300. package/esm/src/proxy/retry.js +0 -7
  301. package/esm/src/proxy/tracing.d.ts +1 -5
  302. package/esm/src/proxy/tracing.d.ts.map +1 -1
  303. package/esm/src/proxy/tracing.js +1 -7
  304. package/esm/src/react/components/ai/agent-card.js +13 -13
  305. package/esm/src/react/components/ai/chat/components/animations.d.ts +5 -0
  306. package/esm/src/react/components/ai/chat/components/animations.d.ts.map +1 -1
  307. package/esm/src/react/components/ai/chat/components/animations.js +13 -1
  308. package/esm/src/react/components/ai/chat/components/attachment-pill.d.ts +15 -0
  309. package/esm/src/react/components/ai/chat/components/attachment-pill.d.ts.map +1 -0
  310. package/esm/src/react/components/ai/chat/components/attachment-pill.js +40 -0
  311. package/esm/src/react/components/ai/chat/components/branch-picker.d.ts +9 -0
  312. package/esm/src/react/components/ai/chat/components/branch-picker.d.ts.map +1 -0
  313. package/esm/src/react/components/ai/chat/components/branch-picker.js +17 -0
  314. package/esm/src/react/components/ai/chat/components/code-block.d.ts +8 -0
  315. package/esm/src/react/components/ai/chat/components/code-block.d.ts.map +1 -0
  316. package/esm/src/react/components/ai/chat/components/code-block.js +38 -0
  317. package/esm/src/react/components/ai/chat/components/drop-zone.d.ts +7 -0
  318. package/esm/src/react/components/ai/chat/components/drop-zone.d.ts.map +1 -0
  319. package/esm/src/react/components/ai/chat/components/drop-zone.js +14 -0
  320. package/esm/src/react/components/ai/chat/components/empty-state.d.ts.map +1 -1
  321. package/esm/src/react/components/ai/chat/components/empty-state.js +10 -8
  322. package/esm/src/react/components/ai/chat/components/inference-badge.js +1 -1
  323. package/esm/src/react/components/ai/chat/components/inline-citation.d.ts +10 -0
  324. package/esm/src/react/components/ai/chat/components/inline-citation.d.ts.map +1 -0
  325. package/esm/src/react/components/ai/chat/components/inline-citation.js +59 -0
  326. package/esm/src/react/components/ai/chat/components/message-actions.d.ts +3 -2
  327. package/esm/src/react/components/ai/chat/components/message-actions.d.ts.map +1 -1
  328. package/esm/src/react/components/ai/chat/components/message-actions.js +10 -10
  329. package/esm/src/react/components/ai/chat/components/message-edit-form.d.ts +8 -0
  330. package/esm/src/react/components/ai/chat/components/message-edit-form.d.ts.map +1 -0
  331. package/esm/src/react/components/ai/chat/components/message-edit-form.js +46 -0
  332. package/esm/src/react/components/ai/chat/components/message-feedback.d.ts +9 -0
  333. package/esm/src/react/components/ai/chat/components/message-feedback.d.ts.map +1 -0
  334. package/esm/src/react/components/ai/chat/components/message-feedback.js +19 -0
  335. package/esm/src/react/components/ai/chat/components/quick-actions.d.ts +14 -0
  336. package/esm/src/react/components/ai/chat/components/quick-actions.d.ts.map +1 -0
  337. package/esm/src/react/components/ai/chat/components/quick-actions.js +7 -0
  338. package/esm/src/react/components/ai/chat/components/reasoning.d.ts +3 -4
  339. package/esm/src/react/components/ai/chat/components/reasoning.d.ts.map +1 -1
  340. package/esm/src/react/components/ai/chat/components/reasoning.js +11 -6
  341. package/esm/src/react/components/ai/chat/components/sidebar.d.ts +14 -0
  342. package/esm/src/react/components/ai/chat/components/sidebar.d.ts.map +1 -0
  343. package/esm/src/react/components/ai/chat/components/sidebar.js +92 -0
  344. package/esm/src/react/components/ai/chat/components/skill-badge.d.ts +12 -0
  345. package/esm/src/react/components/ai/chat/components/skill-badge.d.ts.map +1 -0
  346. package/esm/src/react/components/ai/chat/components/skill-badge.js +34 -0
  347. package/esm/src/react/components/ai/chat/components/sources.d.ts +13 -0
  348. package/esm/src/react/components/ai/chat/components/sources.d.ts.map +1 -0
  349. package/esm/src/react/components/ai/chat/components/sources.js +28 -0
  350. package/esm/src/react/components/ai/chat/components/step-indicator.d.ts +8 -0
  351. package/esm/src/react/components/ai/chat/components/step-indicator.d.ts.map +1 -0
  352. package/esm/src/react/components/ai/chat/components/step-indicator.js +15 -0
  353. package/esm/src/react/components/ai/chat/components/tab-switcher.d.ts +16 -0
  354. package/esm/src/react/components/ai/chat/components/tab-switcher.d.ts.map +1 -0
  355. package/esm/src/react/components/ai/chat/components/tab-switcher.js +28 -0
  356. package/esm/src/react/components/ai/chat/components/tool-ui.d.ts.map +1 -1
  357. package/esm/src/react/components/ai/chat/components/tool-ui.js +23 -21
  358. package/esm/src/react/components/ai/chat/components/upgrade-cta.d.ts.map +1 -1
  359. package/esm/src/react/components/ai/chat/components/upgrade-cta.js +3 -3
  360. package/esm/src/react/components/ai/chat/components/uploads-panel.d.ts +16 -0
  361. package/esm/src/react/components/ai/chat/components/uploads-panel.d.ts.map +1 -0
  362. package/esm/src/react/components/ai/chat/components/uploads-panel.js +46 -0
  363. package/esm/src/react/components/ai/chat/composition/api.d.ts +10 -5
  364. package/esm/src/react/components/ai/chat/composition/api.d.ts.map +1 -1
  365. package/esm/src/react/components/ai/chat/composition/api.js +12 -20
  366. package/esm/src/react/components/ai/chat/composition/chat-composer.d.ts +35 -0
  367. package/esm/src/react/components/ai/chat/composition/chat-composer.d.ts.map +1 -0
  368. package/esm/src/react/components/ai/chat/composition/chat-composer.js +53 -0
  369. package/esm/src/react/components/ai/chat/composition/chat-empty.d.ts +20 -0
  370. package/esm/src/react/components/ai/chat/composition/chat-empty.d.ts.map +1 -0
  371. package/esm/src/react/components/ai/chat/composition/chat-empty.js +23 -0
  372. package/esm/src/react/components/ai/chat/composition/chat-if.d.ts +14 -0
  373. package/esm/src/react/components/ai/chat/composition/chat-if.d.ts.map +1 -0
  374. package/esm/src/react/components/ai/chat/composition/chat-if.js +11 -0
  375. package/esm/src/react/components/ai/chat/composition/chat-message-list.d.ts +36 -0
  376. package/esm/src/react/components/ai/chat/composition/chat-message-list.d.ts.map +1 -0
  377. package/esm/src/react/components/ai/chat/composition/chat-message-list.js +113 -0
  378. package/esm/src/react/components/ai/chat/composition/chat-root.d.ts +43 -0
  379. package/esm/src/react/components/ai/chat/composition/chat-root.d.ts.map +1 -0
  380. package/esm/src/react/components/ai/chat/composition/chat-root.js +78 -0
  381. package/esm/src/react/components/ai/chat/composition/error-banner.d.ts +12 -0
  382. package/esm/src/react/components/ai/chat/composition/error-banner.d.ts.map +1 -0
  383. package/esm/src/react/components/ai/chat/composition/error-banner.js +17 -0
  384. package/esm/src/react/components/ai/chat/composition/message.d.ts +54 -0
  385. package/esm/src/react/components/ai/chat/composition/message.d.ts.map +1 -0
  386. package/esm/src/react/components/ai/chat/composition/message.js +175 -0
  387. package/esm/src/react/components/ai/chat/composition/model-avatar.d.ts +14 -0
  388. package/esm/src/react/components/ai/chat/composition/model-avatar.d.ts.map +1 -0
  389. package/esm/src/react/components/ai/chat/composition/model-avatar.js +60 -0
  390. package/esm/src/react/components/ai/chat/contexts/chat-context.d.ts +45 -0
  391. package/esm/src/react/components/ai/chat/contexts/chat-context.d.ts.map +1 -0
  392. package/esm/src/react/components/ai/chat/contexts/chat-context.js +20 -0
  393. package/esm/src/react/components/ai/chat/contexts/composer-context.d.ts +34 -0
  394. package/esm/src/react/components/ai/chat/contexts/composer-context.d.ts.map +1 -0
  395. package/esm/src/react/components/ai/chat/contexts/composer-context.js +21 -0
  396. package/esm/src/react/components/ai/chat/contexts/index.d.ts +13 -0
  397. package/esm/src/react/components/ai/chat/contexts/index.d.ts.map +1 -0
  398. package/esm/src/react/components/ai/chat/contexts/index.js +12 -0
  399. package/esm/src/react/components/ai/chat/contexts/message-context.d.ts +30 -0
  400. package/esm/src/react/components/ai/chat/contexts/message-context.d.ts.map +1 -0
  401. package/esm/src/react/components/ai/chat/contexts/message-context.js +21 -0
  402. package/esm/src/react/components/ai/chat/contexts/thread-list-context.d.ts +23 -0
  403. package/esm/src/react/components/ai/chat/contexts/thread-list-context.d.ts.map +1 -0
  404. package/esm/src/react/components/ai/chat/contexts/thread-list-context.js +21 -0
  405. package/esm/src/react/components/ai/chat/hooks/use-threads.d.ts +24 -0
  406. package/esm/src/react/components/ai/chat/hooks/use-threads.d.ts.map +1 -0
  407. package/esm/src/react/components/ai/chat/hooks/use-threads.js +151 -0
  408. package/esm/src/react/components/ai/chat/index.d.ts +102 -17
  409. package/esm/src/react/components/ai/chat/index.d.ts.map +1 -1
  410. package/esm/src/react/components/ai/chat/index.js +164 -95
  411. package/esm/src/react/components/ai/chat/utils/export.d.ts +10 -0
  412. package/esm/src/react/components/ai/chat/utils/export.d.ts.map +1 -0
  413. package/esm/src/react/components/ai/chat/utils/export.js +64 -0
  414. package/esm/src/react/components/ai/chat/utils/message-parts.d.ts +12 -0
  415. package/esm/src/react/components/ai/chat/utils/message-parts.d.ts.map +1 -1
  416. package/esm/src/react/components/ai/chat/utils/message-parts.js +55 -0
  417. package/esm/src/react/components/ai/chat-with-sidebar.d.ts +98 -0
  418. package/esm/src/react/components/ai/chat-with-sidebar.d.ts.map +1 -0
  419. package/esm/src/react/components/ai/chat-with-sidebar.js +165 -0
  420. package/esm/src/react/components/ai/chat.d.ts +10 -1
  421. package/esm/src/react/components/ai/chat.d.ts.map +1 -1
  422. package/esm/src/react/components/ai/chat.js +25 -1
  423. package/esm/src/react/components/ai/error-boundary.js +6 -6
  424. package/esm/src/react/components/ai/icons/index.d.ts +9 -0
  425. package/esm/src/react/components/ai/icons/index.d.ts.map +1 -1
  426. package/esm/src/react/components/ai/icons/index.js +82 -0
  427. package/esm/src/react/components/ai/markdown.d.ts.map +1 -1
  428. package/esm/src/react/components/ai/markdown.js +12 -12
  429. package/esm/src/react/components/ai/model-selector.d.ts +10 -2
  430. package/esm/src/react/components/ai/model-selector.d.ts.map +1 -1
  431. package/esm/src/react/components/ai/model-selector.js +138 -4
  432. package/esm/src/react/components/ai/theme.d.ts +96 -13
  433. package/esm/src/react/components/ai/theme.d.ts.map +1 -1
  434. package/esm/src/react/components/ai/theme.js +177 -21
  435. package/esm/src/react/primitives/input-box.d.ts.map +1 -1
  436. package/esm/src/react/primitives/input-box.js +16 -3
  437. package/esm/src/rendering/cache/index.d.ts +1 -5
  438. package/esm/src/rendering/cache/index.d.ts.map +1 -1
  439. package/esm/src/rendering/cache/index.js +1 -5
  440. package/esm/src/rendering/component-handling.d.ts +2 -0
  441. package/esm/src/rendering/component-handling.d.ts.map +1 -1
  442. package/esm/src/rendering/component-handling.js +7 -9
  443. package/esm/src/rendering/orchestrator/pipeline.d.ts +11 -2
  444. package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
  445. package/esm/src/rendering/page-renderer.d.ts.map +1 -1
  446. package/esm/src/rendering/page-renderer.js +1 -0
  447. package/esm/src/rendering/shared/context-aware-cache.d.ts.map +1 -1
  448. package/esm/src/rendering/shared/context-aware-cache.js +0 -4
  449. package/esm/src/repositories/schemas/index.d.ts +1 -1
  450. package/esm/src/repositories/schemas/index.d.ts.map +1 -1
  451. package/esm/src/repositories/schemas/index.js +1 -1
  452. package/esm/src/repositories/schemas/repository.schema.d.ts +0 -11
  453. package/esm/src/repositories/schemas/repository.schema.d.ts.map +1 -1
  454. package/esm/src/repositories/schemas/repository.schema.js +0 -13
  455. package/esm/src/repositories/types.d.ts +1 -1
  456. package/esm/src/repositories/types.d.ts.map +1 -1
  457. package/esm/src/routing/api/module-loader/esbuild-plugin.d.ts.map +1 -1
  458. package/esm/src/routing/api/module-loader/esbuild-plugin.js +11 -24
  459. package/esm/src/routing/api/module-loader/loader.d.ts +1 -0
  460. package/esm/src/routing/api/module-loader/loader.d.ts.map +1 -1
  461. package/esm/src/routing/api/module-loader/loader.js +347 -27
  462. package/esm/src/routing/api/openapi/path-utils.d.ts +0 -19
  463. package/esm/src/routing/api/openapi/path-utils.d.ts.map +1 -1
  464. package/esm/src/routing/api/openapi/path-utils.js +0 -34
  465. package/esm/src/routing/api/openapi/spec-generator.d.ts.map +1 -1
  466. package/esm/src/routing/api/openapi/spec-generator.js +1 -19
  467. package/esm/src/routing/api/openapi/types.d.ts +1 -0
  468. package/esm/src/routing/api/openapi/types.d.ts.map +1 -1
  469. package/esm/src/routing/api/openapi/types.js +18 -0
  470. package/esm/src/sandbox/sandbox.d.ts +1 -0
  471. package/esm/src/sandbox/sandbox.d.ts.map +1 -1
  472. package/esm/src/sandbox/sandbox.js +7 -8
  473. package/esm/src/security/http/cors/constants.d.ts +0 -2
  474. package/esm/src/security/http/cors/constants.d.ts.map +1 -1
  475. package/esm/src/security/http/cors/constants.js +0 -2
  476. package/esm/src/security/http/response/index.d.ts +3 -4
  477. package/esm/src/security/http/response/index.d.ts.map +1 -1
  478. package/esm/src/security/http/response/index.js +2 -3
  479. package/esm/src/server/context/enriched-context.d.ts +0 -8
  480. package/esm/src/server/context/enriched-context.d.ts.map +1 -1
  481. package/esm/src/server/context/enriched-context.js +1 -12
  482. package/esm/src/server/dev-server/server.d.ts.map +1 -1
  483. package/esm/src/server/dev-server/server.js +11 -4
  484. package/esm/src/server/dev-ui/manifest.d.ts +20 -20
  485. package/esm/src/server/dev-ui/manifest.js +20 -20
  486. package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts +9 -0
  487. package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -0
  488. package/esm/src/server/handlers/dev/framework-candidates.generated.js +5187 -0
  489. package/esm/src/server/handlers/dev/styles-candidate-scanner.d.ts.map +1 -1
  490. package/esm/src/server/handlers/dev/styles-candidate-scanner.js +3 -190
  491. package/esm/src/server/handlers/request/module/module-server-handler.d.ts.map +1 -1
  492. package/esm/src/server/handlers/request/module/module-server-handler.js +1 -0
  493. package/esm/src/server/runtime-handler/index.d.ts.map +1 -1
  494. package/esm/src/server/runtime-handler/index.js +14 -24
  495. package/esm/src/server/shared/renderer/memory/pressure.d.ts +0 -7
  496. package/esm/src/server/shared/renderer/memory/pressure.d.ts.map +1 -1
  497. package/esm/src/server/shared/renderer/memory/pressure.js +1 -13
  498. package/esm/src/server/utils/domain-lookup.d.ts +0 -4
  499. package/esm/src/server/utils/domain-lookup.d.ts.map +1 -1
  500. package/esm/src/server/utils/domain-lookup.js +0 -3
  501. package/esm/src/skill/allowed-tools.d.ts +54 -0
  502. package/esm/src/skill/allowed-tools.d.ts.map +1 -0
  503. package/esm/src/skill/allowed-tools.js +87 -0
  504. package/esm/src/skill/executor.d.ts +28 -0
  505. package/esm/src/skill/executor.d.ts.map +1 -0
  506. package/esm/src/skill/executor.js +187 -0
  507. package/esm/src/skill/index.d.ts +19 -0
  508. package/esm/src/skill/index.d.ts.map +1 -0
  509. package/esm/src/skill/index.js +24 -0
  510. package/esm/src/skill/parser.d.ts +30 -0
  511. package/esm/src/skill/parser.d.ts.map +1 -0
  512. package/esm/src/skill/parser.js +162 -0
  513. package/esm/src/skill/path-safety.d.ts +22 -0
  514. package/esm/src/skill/path-safety.d.ts.map +1 -0
  515. package/esm/src/skill/path-safety.js +156 -0
  516. package/esm/src/skill/prompt-augmentation.d.ts +19 -0
  517. package/esm/src/skill/prompt-augmentation.d.ts.map +1 -0
  518. package/esm/src/skill/prompt-augmentation.js +36 -0
  519. package/esm/src/skill/registry.d.ts +25 -0
  520. package/esm/src/skill/registry.d.ts.map +1 -0
  521. package/esm/src/skill/registry.js +42 -0
  522. package/esm/src/skill/tools.d.ts +27 -0
  523. package/esm/src/skill/tools.d.ts.map +1 -0
  524. package/esm/src/skill/tools.js +149 -0
  525. package/esm/src/skill/types.d.ts +85 -0
  526. package/esm/src/skill/types.d.ts.map +1 -0
  527. package/esm/src/skill/types.js +27 -0
  528. package/esm/src/studio/bridge/bridge-bundle.generated.d.ts +1 -1
  529. package/esm/src/studio/bridge/bridge-bundle.generated.d.ts.map +1 -1
  530. package/esm/src/studio/bridge/bridge-bundle.generated.js +1 -1
  531. package/esm/src/studio/element-selector-injector.d.ts +0 -2
  532. package/esm/src/studio/element-selector-injector.d.ts.map +1 -1
  533. package/esm/src/task/runner.d.ts +6 -0
  534. package/esm/src/task/runner.d.ts.map +1 -1
  535. package/esm/src/task/runner.js +8 -8
  536. package/esm/src/tool/factory.js +31 -39
  537. package/esm/src/transforms/esm/http-cache-helpers.d.ts +0 -8
  538. package/esm/src/transforms/esm/http-cache-helpers.d.ts.map +1 -1
  539. package/esm/src/transforms/esm/http-cache-helpers.js +0 -20
  540. package/esm/src/transforms/esm/path-resolver.d.ts +0 -14
  541. package/esm/src/transforms/esm/path-resolver.d.ts.map +1 -1
  542. package/esm/src/transforms/esm/path-resolver.js +1 -92
  543. package/esm/src/transforms/esm/source-url-embed.d.ts +0 -14
  544. package/esm/src/transforms/esm/source-url-embed.d.ts.map +1 -1
  545. package/esm/src/transforms/esm/source-url-embed.js +0 -47
  546. package/esm/src/transforms/esm/transform-cache.d.ts.map +1 -1
  547. package/esm/src/transforms/esm/transform-cache.js +2 -6
  548. package/esm/src/transforms/mdx/index.d.ts +0 -1
  549. package/esm/src/transforms/mdx/index.d.ts.map +1 -1
  550. package/esm/src/transforms/mdx/index.js +0 -4
  551. package/esm/src/transforms/pipeline/context.d.ts +0 -1
  552. package/esm/src/transforms/pipeline/context.d.ts.map +1 -1
  553. package/esm/src/transforms/pipeline/context.js +0 -1
  554. package/esm/src/transforms/pipeline/index.d.ts +1 -2
  555. package/esm/src/transforms/pipeline/index.d.ts.map +1 -1
  556. package/esm/src/transforms/pipeline/index.js +0 -3
  557. package/esm/src/transforms/pipeline/stages/ssr-http-cache.d.ts.map +1 -1
  558. package/esm/src/transforms/pipeline/stages/ssr-http-cache.js +0 -1
  559. package/esm/src/transforms/plugins/rehype-node-positions.d.ts.map +1 -1
  560. package/esm/src/transforms/plugins/rehype-node-positions.js +1 -0
  561. package/esm/src/types/entities/getEntityInfo.js +1 -1
  562. package/esm/src/types/index.d.ts +2 -13
  563. package/esm/src/types/index.d.ts.map +1 -1
  564. package/esm/src/types/server.d.ts +2 -1
  565. package/esm/src/types/server.d.ts.map +1 -1
  566. package/esm/src/utils/cache-file-ops.d.ts +1 -1
  567. package/esm/src/utils/cache-file-ops.d.ts.map +1 -1
  568. package/esm/src/utils/cache-file-ops.js +5 -6
  569. package/esm/src/utils/lru-wrapper.d.ts.map +1 -1
  570. package/esm/src/utils/lru-wrapper.js +2 -4
  571. package/esm/src/workflow/claude-code/event-publisher.d.ts +0 -4
  572. package/esm/src/workflow/claude-code/event-publisher.d.ts.map +1 -1
  573. package/esm/src/workflow/claude-code/event-publisher.js +2 -6
  574. package/esm/src/workflow/executor/workflow-executor.d.ts.map +1 -1
  575. package/esm/src/workflow/executor/workflow-executor.js +6 -1
  576. package/esm/src/workflow/react/use-workflow-list.d.ts.map +1 -1
  577. package/esm/src/workflow/react/use-workflow-list.js +2 -1
  578. package/esm/src/workflow/schemas/workflow.schema.d.ts +8 -8
  579. package/package.json +10 -3
  580. package/src/cli/app/components/inline-input.ts +0 -5
  581. package/src/cli/app/components/list-select.ts +0 -21
  582. package/src/cli/app/operations/project-creation.ts +4 -109
  583. package/src/cli/app/shell.ts +2 -2
  584. package/src/cli/app/utils.ts +0 -22
  585. package/src/cli/app/views/dashboard.ts +0 -17
  586. package/src/cli/app/views/startup.ts +0 -13
  587. package/src/cli/auth/login.ts +1 -2
  588. package/src/cli/auth/token-store.ts +1 -1
  589. package/src/cli/auth/utils.ts +2 -1
  590. package/src/cli/commands/generate/integration-generator.ts +1 -1
  591. package/src/cli/commands/init/catalog.ts +3 -3
  592. package/src/cli/commands/init/command-help.ts +2 -2
  593. package/src/cli/commands/init/config-generator.ts +9 -0
  594. package/src/cli/commands/init/types.ts +1 -1
  595. package/src/cli/help/formatters.ts +11 -4
  596. package/src/cli/help/main-help.ts +2 -3
  597. package/src/cli/help/tips.ts +1 -1
  598. package/src/cli/mcp/remote-file-tools.ts +1 -1
  599. package/src/cli/mcp/server.ts +2 -5
  600. package/src/cli/mcp/tools/catalog-tools.ts +3 -3
  601. package/src/cli/mcp/tools/dev-tools.ts +1 -2
  602. package/src/cli/mcp/tools.ts +8 -2
  603. package/src/cli/shared/reserve-slug.ts +1 -4
  604. package/src/cli/sync/ignore.ts +26 -21
  605. package/src/cli/templates/index.ts +2 -2
  606. package/src/cli/templates/manifest.js +15 -13
  607. package/src/cli/templates/types.ts +1 -1
  608. package/src/cli/ui/colors.ts +0 -12
  609. package/src/cli/ui/dot-matrix.ts +3 -6
  610. package/src/cli/ui/tui.ts +3 -3
  611. package/src/cli/utils/index.ts +1 -1
  612. package/src/cli/utils/package-manager.ts +3 -4
  613. package/src/deno.js +30 -20
  614. package/src/src/agent/chat-handler.ts +138 -28
  615. package/src/src/agent/factory.ts +58 -9
  616. package/src/src/agent/index.ts +24 -2
  617. package/src/src/agent/memory/memory.ts +0 -9
  618. package/src/src/agent/react/index.ts +2 -0
  619. package/src/src/agent/react/use-chat/index.ts +2 -0
  620. package/src/src/agent/react/use-chat/streaming/handler.ts +66 -5
  621. package/src/src/agent/react/use-chat/streaming/parts-builder.ts +18 -1
  622. package/src/src/agent/react/use-chat/streaming/types.ts +6 -0
  623. package/src/src/agent/react/use-chat/types.ts +26 -1
  624. package/src/src/agent/react/use-chat/use-chat.ts +245 -36
  625. package/src/src/agent/runtime/index.ts +213 -35
  626. package/src/src/agent/runtime/tool-helpers.ts +9 -0
  627. package/src/src/agent/types.ts +10 -0
  628. package/src/src/ai/registry-manager.ts +2 -1
  629. package/src/src/build/bundler/code-splitter/manifest-builder.ts +1 -1
  630. package/src/src/build/compiler/mdx-compiler/validator.ts +3 -7
  631. package/src/src/build/compiler/mdx-to-js.ts +0 -101
  632. package/src/src/build/index.ts +0 -8
  633. package/src/src/build/production-build/build/route-collector.ts +2 -4
  634. package/src/src/build/production-build/client-runtime.ts +21 -5
  635. package/src/src/build/production-build/templates.ts +9 -18
  636. package/src/src/build/vendor-cache.ts +0 -6
  637. package/src/src/cache/tokenizing-gateway.ts +1 -9
  638. package/src/src/chat/index.ts +169 -34
  639. package/src/src/config/define-config.ts +30 -29
  640. package/src/src/config/loader.ts +10 -9
  641. package/src/src/config/schemas/config.schema.ts +12 -0
  642. package/src/src/data/data-fetcher.ts +15 -21
  643. package/src/src/data/server-data-fetcher.ts +1 -8
  644. package/src/src/data/static-data-fetcher.ts +1 -6
  645. package/src/src/discovery/discovery-engine.ts +27 -0
  646. package/src/src/discovery/discovery-utils.ts +0 -7
  647. package/src/src/discovery/file-discovery.ts +3 -9
  648. package/src/src/discovery/handlers/index.ts +1 -0
  649. package/src/src/discovery/handlers/skill-handler.ts +123 -0
  650. package/src/src/discovery/handlers/task-handler.ts +1 -5
  651. package/src/src/discovery/transpiler.ts +7 -2
  652. package/src/src/discovery/types.ts +3 -0
  653. package/src/src/embedding/chunk.ts +60 -0
  654. package/src/src/embedding/embedding.ts +62 -0
  655. package/src/src/embedding/index.ts +49 -0
  656. package/src/src/embedding/react/use-uploads.ts +101 -0
  657. package/src/src/embedding/resolve.ts +126 -0
  658. package/src/src/embedding/types.ts +103 -0
  659. package/src/src/embedding/upload-handler.ts +180 -0
  660. package/src/src/embedding/upload-loader.ts +76 -0
  661. package/src/src/embedding/upload-store.ts +299 -0
  662. package/src/src/embedding/vector-store.ts +282 -0
  663. package/src/src/errors/error-registry.ts +2 -2
  664. package/src/src/errors/http-error.ts +7 -3
  665. package/src/src/errors/middleware/cli-error-boundary.ts +28 -2
  666. package/src/src/errors/middleware/wrap-unknown.ts +0 -10
  667. package/src/src/errors/veryfront-error.ts +0 -9
  668. package/src/src/html/styles-builder/css-hash-cache.ts +5 -2
  669. package/src/src/html/styles-builder/plugin-loader.ts +58 -21
  670. package/src/src/html/styles-builder/tailwind-compiler-cache.ts +11 -4
  671. package/src/src/html/utils.ts +0 -33
  672. package/src/src/modules/component-registry/registry.ts +0 -3
  673. package/src/src/modules/import-map/default-import-map.ts +10 -0
  674. package/src/src/modules/react-loader/component-loader.ts +1 -0
  675. package/src/src/modules/react-loader/ssr-module-loader/loader.ts +12 -1
  676. package/src/src/modules/react-loader/ssr-module-loader/types.ts +2 -0
  677. package/src/src/modules/react-loader/types.ts +2 -0
  678. package/src/src/modules/server/module-server.ts +4 -1
  679. package/src/src/modules/server/websocket-handler.ts +1 -1
  680. package/src/src/oauth/handlers/callback-handler.ts +17 -5
  681. package/src/src/oauth/providers/base.ts +3 -3
  682. package/src/src/oauth/providers/common.ts +0 -23
  683. package/src/src/observability/auto-instrument/react-instrumentation.ts +2 -2
  684. package/src/src/observability/instruments/instruments-factory.ts +6 -6
  685. package/src/src/observability/metrics/config.ts +5 -5
  686. package/src/src/observability/metrics/manager.ts +1 -1
  687. package/src/src/observability/tracing/span-operations.ts +14 -9
  688. package/src/src/platform/compat/console/node.ts +4 -14
  689. package/src/src/platform/compat/fs.ts +14 -3
  690. package/src/src/platform/compat/opaque-deps.ts +32 -2
  691. package/src/src/platform/compat/path/basic-operations.ts +19 -10
  692. package/src/src/platform/compat/path/resolution.ts +69 -18
  693. package/src/src/platform/compat/path/url-conversion.ts +10 -6
  694. package/src/src/platform/compat/process.ts +133 -76
  695. package/src/src/provider/index.ts +1 -0
  696. package/src/src/provider/local/ai-sdk-adapter.ts +40 -37
  697. package/src/src/provider/local/env.ts +4 -1
  698. package/src/src/provider/local/local-embedding-adapter.ts +37 -0
  699. package/src/src/provider/local/local-embedding-engine.ts +88 -0
  700. package/src/src/provider/local/local-engine.ts +1 -1
  701. package/src/src/provider/local/model-catalog.ts +67 -1
  702. package/src/src/provider/model-registry.ts +47 -0
  703. package/src/src/proxy/retry.ts +0 -9
  704. package/src/src/proxy/tracing.ts +1 -9
  705. package/src/src/react/components/ai/agent-card.tsx +13 -13
  706. package/src/src/react/components/ai/chat/components/animations.tsx +31 -1
  707. package/src/src/react/components/ai/chat/components/attachment-pill.tsx +110 -0
  708. package/src/src/react/components/ai/chat/components/branch-picker.tsx +70 -0
  709. package/src/src/react/components/ai/chat/components/code-block.tsx +82 -0
  710. package/src/src/react/components/ai/chat/components/drop-zone.tsx +49 -0
  711. package/src/src/react/components/ai/chat/components/empty-state.tsx +20 -8
  712. package/src/src/react/components/ai/chat/components/inference-badge.tsx +1 -1
  713. package/src/src/react/components/ai/chat/components/inline-citation.tsx +150 -0
  714. package/src/src/react/components/ai/chat/components/message-actions.tsx +73 -51
  715. package/src/src/react/components/ai/chat/components/message-edit-form.tsx +95 -0
  716. package/src/src/react/components/ai/chat/components/message-feedback.tsx +72 -0
  717. package/src/src/react/components/ai/chat/components/quick-actions.tsx +38 -0
  718. package/src/src/react/components/ai/chat/components/reasoning.tsx +40 -35
  719. package/src/src/react/components/ai/chat/components/sidebar.tsx +204 -0
  720. package/src/src/react/components/ai/chat/components/skill-badge.tsx +51 -0
  721. package/src/src/react/components/ai/chat/components/sources.tsx +99 -0
  722. package/src/src/react/components/ai/chat/components/step-indicator.tsx +33 -0
  723. package/src/src/react/components/ai/chat/components/tab-switcher.tsx +69 -0
  724. package/src/src/react/components/ai/chat/components/tool-ui.tsx +31 -29
  725. package/src/src/react/components/ai/chat/components/upgrade-cta.tsx +3 -4
  726. package/src/src/react/components/ai/chat/components/uploads-panel.tsx +129 -0
  727. package/src/src/react/components/ai/chat/composition/api.tsx +12 -62
  728. package/src/src/react/components/ai/chat/composition/chat-composer.tsx +205 -0
  729. package/src/src/react/components/ai/chat/composition/chat-empty.tsx +77 -0
  730. package/src/src/react/components/ai/chat/composition/chat-if.tsx +25 -0
  731. package/src/src/react/components/ai/chat/composition/chat-message-list.tsx +356 -0
  732. package/src/src/react/components/ai/chat/composition/chat-root.tsx +181 -0
  733. package/src/src/react/components/ai/chat/composition/error-banner.tsx +38 -0
  734. package/src/src/react/components/ai/chat/composition/message.tsx +337 -0
  735. package/src/src/react/components/ai/chat/composition/model-avatar.tsx +103 -0
  736. package/src/src/react/components/ai/chat/contexts/chat-context.tsx +78 -0
  737. package/src/src/react/components/ai/chat/contexts/composer-context.tsx +59 -0
  738. package/src/src/react/components/ai/chat/contexts/index.ts +36 -0
  739. package/src/src/react/components/ai/chat/contexts/message-context.tsx +49 -0
  740. package/src/src/react/components/ai/chat/contexts/thread-list-context.tsx +40 -0
  741. package/src/src/react/components/ai/chat/hooks/use-threads.ts +208 -0
  742. package/src/src/react/components/ai/chat/index.tsx +389 -230
  743. package/src/src/react/components/ai/chat/utils/export.ts +77 -0
  744. package/src/src/react/components/ai/chat/utils/message-parts.ts +63 -1
  745. package/src/src/react/components/ai/chat-with-sidebar.tsx +371 -0
  746. package/src/src/react/components/ai/chat.tsx +122 -7
  747. package/src/src/react/components/ai/error-boundary.tsx +6 -6
  748. package/src/src/react/components/ai/icons/index.ts +100 -0
  749. package/src/src/react/components/ai/markdown.tsx +12 -15
  750. package/src/src/react/components/ai/model-selector.tsx +223 -15
  751. package/src/src/react/components/ai/theme.ts +205 -39
  752. package/src/src/react/primitives/input-box.tsx +27 -4
  753. package/src/src/rendering/cache/index.ts +12 -5
  754. package/src/src/rendering/component-handling.ts +9 -9
  755. package/src/src/rendering/orchestrator/pipeline.ts +12 -2
  756. package/src/src/rendering/page-renderer.ts +1 -0
  757. package/src/src/rendering/renderer.ts +1 -1
  758. package/src/src/rendering/shared/context-aware-cache.ts +0 -5
  759. package/src/src/repositories/schemas/index.ts +0 -2
  760. package/src/src/repositories/schemas/repository.schema.ts +0 -15
  761. package/src/src/repositories/types.ts +1 -6
  762. package/src/src/routing/api/module-loader/esbuild-plugin.ts +11 -25
  763. package/src/src/routing/api/module-loader/loader.ts +421 -17
  764. package/src/src/routing/api/openapi/path-utils.ts +0 -39
  765. package/src/src/routing/api/openapi/spec-generator.ts +1 -20
  766. package/src/src/routing/api/openapi/types.ts +20 -0
  767. package/src/src/sandbox/sandbox.ts +8 -8
  768. package/src/src/security/http/cors/constants.ts +0 -4
  769. package/src/src/security/http/response/index.ts +3 -9
  770. package/src/src/server/context/enriched-context.ts +1 -19
  771. package/src/src/server/dev-server/server.ts +11 -4
  772. package/src/src/server/dev-ui/manifest.js +20 -20
  773. package/src/src/server/handlers/dev/framework-candidates.generated.ts +5188 -0
  774. package/src/src/server/handlers/dev/styles-candidate-scanner.ts +3 -191
  775. package/src/src/server/handlers/request/module/module-server-handler.ts +1 -0
  776. package/src/src/server/runtime-handler/index.ts +17 -28
  777. package/src/src/server/shared/renderer/memory/pressure.ts +2 -15
  778. package/src/src/server/utils/domain-lookup.ts +0 -4
  779. package/src/src/skill/allowed-tools.ts +107 -0
  780. package/src/src/skill/executor.ts +215 -0
  781. package/src/src/skill/index.ts +60 -0
  782. package/src/src/skill/parser.ts +214 -0
  783. package/src/src/skill/path-safety.ts +203 -0
  784. package/src/src/skill/prompt-augmentation.ts +48 -0
  785. package/src/src/skill/registry.ts +51 -0
  786. package/src/src/skill/tools.ts +197 -0
  787. package/src/src/skill/types.ts +107 -0
  788. package/src/src/studio/bridge/bridge-bundle.generated.ts +1 -1
  789. package/src/src/studio/element-selector-injector.ts +0 -2
  790. package/src/src/task/runner.ts +10 -8
  791. package/src/src/tool/factory.ts +54 -54
  792. package/src/src/transforms/esm/http-cache-helpers.ts +0 -20
  793. package/src/src/transforms/esm/path-resolver.ts +1 -140
  794. package/src/src/transforms/esm/source-url-embed.ts +0 -53
  795. package/src/src/transforms/esm/transform-cache.ts +3 -7
  796. package/src/src/transforms/mdx/index.ts +0 -5
  797. package/src/src/transforms/pipeline/context.ts +0 -2
  798. package/src/src/transforms/pipeline/index.ts +0 -4
  799. package/src/src/transforms/pipeline/stages/ssr-http-cache.ts +0 -1
  800. package/src/src/transforms/plugins/rehype-node-positions.ts +1 -0
  801. package/src/src/types/entities/getEntityInfo.ts +1 -1
  802. package/src/src/types/index.ts +1 -20
  803. package/src/src/types/server.ts +1 -1
  804. package/src/src/utils/cache-file-ops.ts +5 -5
  805. package/src/src/utils/logger/logger.ts +2 -2
  806. package/src/src/utils/lru-wrapper.ts +2 -8
  807. package/src/src/workflow/claude-code/event-publisher.ts +13 -4
  808. package/src/src/workflow/executor/workflow-executor.ts +7 -2
  809. package/src/src/workflow/react/use-workflow-list.ts +3 -2
  810. package/esm/src/transforms/mdx/parser.d.ts +0 -4
  811. package/esm/src/transforms/mdx/parser.d.ts.map +0 -1
  812. package/esm/src/transforms/mdx/parser.js +0 -49
  813. package/src/src/transforms/mdx/parser.ts +0 -65
@@ -17,8 +17,11 @@ import { serverLogger } from "../../utils/index.js";
17
17
  import { withSpan } from "../../observability/tracing/otlp-setup.js";
18
18
  import { SpanNames } from "../../observability/tracing/span-names.js";
19
19
  import { hashCSS } from "./candidate-extractor.js";
20
- import { buildCSSCacheEntry, parseCSSCacheEntry } from "./tailwind-compiler-utils.js";
21
- import { resolveStylesheet } from "./tailwind-compiler-utils.js";
20
+ import {
21
+ buildCSSCacheEntry,
22
+ parseCSSCacheEntry,
23
+ resolveStylesheet,
24
+ } from "./tailwind-compiler-utils.js";
22
25
 
23
26
  const logger = serverLogger.component("tailwind");
24
27
 
@@ -52,6 +52,49 @@ try {
52
52
  __esModule: true,
53
53
  };
54
54
 
55
+ function isRealDenoRuntime(): boolean {
56
+ return typeof dntShim.Deno !== "undefined" && typeof dntShim.Deno.version === "object";
57
+ }
58
+
59
+ function encodeToBase64(source: string): string {
60
+ const bufferCtor = (dntShim.dntGlobalThis as {
61
+ Buffer?: {
62
+ from: (input: string, encoding: string) => { toString: (encoding: string) => string };
63
+ };
64
+ }).Buffer;
65
+
66
+ if (bufferCtor?.from) {
67
+ return bufferCtor.from(source, "utf8").toString("base64");
68
+ }
69
+
70
+ const bytes = new TextEncoder().encode(source);
71
+ let binary = "";
72
+ for (const byte of bytes) binary += String.fromCharCode(byte);
73
+ return btoa(binary);
74
+ }
75
+
76
+ async function importBundledModule(code: string): Promise<unknown> {
77
+ if (!isRealDenoRuntime()) {
78
+ const dataUrl = `data:text/javascript;base64,${encodeToBase64(code)}`;
79
+ return await import(dataUrl);
80
+ }
81
+
82
+ const tempPath = await dntShim.Deno.makeTempFile({ prefix: "vf_tw_plugin_", suffix: ".mjs" });
83
+ await dntShim.Deno.writeTextFile(tempPath, code);
84
+ logger.debug("Wrote plugin to temp file", { path: tempPath });
85
+
86
+ try {
87
+ return await import(`file://${tempPath}`);
88
+ } finally {
89
+ await dntShim.Deno.remove(tempPath).catch((error) => {
90
+ logger.error("Failed to clean up temp plugin file", {
91
+ path: tempPath,
92
+ error: error instanceof Error ? error.message : String(error),
93
+ });
94
+ });
95
+ }
96
+ }
97
+
55
98
  /**
56
99
  * Dynamically load a module from esm.sh in a compiled Deno binary.
57
100
  *
@@ -111,21 +154,7 @@ export async function loadModuleFromEsmSh(packageName: string): Promise<unknown>
111
154
  "(globalThis.__localStorageShim||(globalThis.__localStorageShim={getItem:()=>null,setItem:()=>{},length:0}))",
112
155
  );
113
156
 
114
- // Step 5: Write to temp file and import
115
- const tempPath = `/tmp/tw_plugin_${dntShim.crypto.randomUUID()}.mjs`;
116
- await dntShim.Deno.writeTextFile(tempPath, code);
117
- logger.debug("Wrote plugin to temp file", { path: tempPath });
118
-
119
- try {
120
- return await import(`file://${tempPath}`);
121
- } finally {
122
- await dntShim.Deno.remove(tempPath).catch((error) => {
123
- logger.error("Failed to clean up temp plugin file", {
124
- path: tempPath,
125
- error: error instanceof Error ? error.message : String(error),
126
- });
127
- });
128
- }
157
+ return await importBundledModule(code);
129
158
  }
130
159
 
131
160
  export async function loadPlugin(
@@ -151,12 +180,20 @@ export async function loadPlugin(
151
180
  logger.debug("Loading plugin from node_modules", { id });
152
181
  try {
153
182
  mod = await import(id);
154
- } catch {
155
- const errorMsg = `Failed to load plugin "${id}": plugin not installed`;
156
- logger.warn("Plugin not installed", { id });
157
- pluginErrors.set(id, errorMsg);
158
- pluginCache.set(id, null);
159
- throw new Error(errorMsg);
183
+ } catch (importError) {
184
+ logger.debug("Plugin not found in node_modules, falling back to esm.sh", { id });
185
+ try {
186
+ mod = await loadModuleFromEsmSh(id);
187
+ } catch {
188
+ const errorMsg = `Failed to load plugin "${id}": plugin not installed`;
189
+ logger.warn("Plugin not installed", {
190
+ id,
191
+ error: importError instanceof Error ? importError.message : String(importError),
192
+ });
193
+ pluginErrors.set(id, errorMsg);
194
+ pluginCache.set(id, null);
195
+ throw new Error(errorMsg);
196
+ }
160
197
  }
161
198
  }
162
199
 
@@ -47,12 +47,19 @@ async function getTailwindBaseCSS(): Promise<string> {
47
47
  const url = getTailwindCSSUrl();
48
48
  logger.debug("Fetching base CSS", { url });
49
49
 
50
- const response = await dntShim.fetch(url);
51
- if (!response.ok) {
52
- throw new Error(`Failed to fetch Tailwind CSS: ${response.status} ${response.statusText}`);
50
+ try {
51
+ const response = await dntShim.fetch(url);
52
+ if (!response.ok) {
53
+ throw new Error(`Failed to fetch Tailwind CSS: ${response.status} ${response.statusText}`);
54
+ }
55
+ tailwindBaseCSS = await response.text();
56
+ } catch (error) {
57
+ logger.warn("Failed to fetch Tailwind base CSS, using empty fallback", {
58
+ error: error instanceof Error ? error.message : String(error),
59
+ });
60
+ tailwindBaseCSS = "";
53
61
  }
54
62
 
55
- tailwindBaseCSS = await response.text();
56
63
  return tailwindBaseCSS;
57
64
  }
58
65
 
@@ -37,30 +37,6 @@ const DEFAULT_VERSIONS: DetectedVersions = {
37
37
  veryfront: VERYFRONT_VERSION,
38
38
  };
39
39
 
40
- export async function detectVersions(projectDir: string): Promise<DetectedVersions> {
41
- try {
42
- const { createFileSystem } = await import("../platform/compat/fs.js");
43
- const fs = createFileSystem();
44
- const content = await fs.readTextFile(`${projectDir}/package.json`);
45
- const pkg = JSON.parse(content) as {
46
- dependencies?: Record<string, string>;
47
- devDependencies?: Record<string, string>;
48
- };
49
-
50
- const deps = { ...pkg.dependencies, ...pkg.devDependencies };
51
-
52
- // Use shared resolver for React version (ensures consistency with module server)
53
- const reactVersion = await resolveProjectReactVersion({ projectDir });
54
-
55
- return {
56
- react: reactVersion,
57
- veryfront: deps.veryfront ? stripSemverRange(deps.veryfront) : DEFAULT_VERSIONS.veryfront,
58
- };
59
- } catch {
60
- return DEFAULT_VERSIONS;
61
- }
62
- }
63
-
64
40
  type CdnProvider = "esm.sh" | "unpkg" | "jsdelivr";
65
41
 
66
42
  // Platform utilities served from local module server to match SSR behavior.
@@ -220,10 +196,6 @@ function getCdnImportMap(
220
196
  return (CDN_IMPORT_MAP_FACTORIES[provider] ?? getEsmShImportMap)(versions);
221
197
  }
222
198
 
223
- function getDefaultHTMLImportMap(): Record<string, string> {
224
- return getEsmShImportMap(DEFAULT_VERSIONS);
225
- }
226
-
227
199
  async function resolveVersions(
228
200
  projectDir: string,
229
201
  config?: VeryfrontConfig,
@@ -314,11 +286,6 @@ export async function buildImportMapJson(
314
286
  return JSON.stringify({ imports }, null, 2);
315
287
  }
316
288
 
317
- export function buildImportMapJsonSync(importMap?: Record<string, string>): string {
318
- const imports = importMap ?? getDefaultHTMLImportMap();
319
- return JSON.stringify({ imports }, null, 2);
320
- }
321
-
322
289
  export function shouldDisableLayout(frontmatter?: Record<string, unknown>): boolean {
323
290
  return frontmatter?.layout === false || frontmatter?.layout === "false";
324
291
  }
@@ -164,9 +164,6 @@ export class ComponentRegistry {
164
164
  return new Map(this.components);
165
165
  }
166
166
 
167
- /**
168
- * Loader accessor for compatibility with older tests; loader is not used in this registry.
169
- */
170
167
  getLoader(): ComponentLoader | undefined {
171
168
  return undefined;
172
169
  }
@@ -28,7 +28,16 @@ function getVeryfrontSsrImportMap(): Record<string, string> {
28
28
  // the React hooks (useWorkflowStart, useWorkflowList, useWorkflow, useApproval).
29
29
  const workflowReact = `${base}/workflow/react/index.js${ssr}`;
30
30
 
31
+ // veryfront/react is a barrel that re-exports all browser-side modules.
32
+ const react = `${base}/react/public.js${ssr}`;
33
+
34
+ // Map veryfront/embedding to the React hooks submodule for SSR.
35
+ // The full embedding/index.ts imports heavy server-side code (vectorStore, uploadStore,
36
+ // AI SDK) that fails to transform. SSR only needs the React hook (useUploads).
37
+ const embedding = `${base}/embedding/react/index.js${ssr}`;
38
+
31
39
  return {
40
+ "veryfront/react": react,
32
41
  "veryfront/head": head,
33
42
  "veryfront/router": router,
34
43
  "veryfront/context": context,
@@ -36,6 +45,7 @@ function getVeryfrontSsrImportMap(): Record<string, string> {
36
45
  "veryfront/markdown": markdown,
37
46
  "veryfront/chat": chat,
38
47
  "veryfront/mdx": mdx,
48
+ "veryfront/embedding": embedding,
39
49
  "veryfront/workflow": workflowReact,
40
50
  "veryfront/react/head": head,
41
51
  "veryfront/react/router": router,
@@ -35,6 +35,7 @@ export function loadComponentFromSource(
35
35
  dev,
36
36
  contentSourceId: options?.contentSourceId,
37
37
  reactVersion: options?.reactVersion,
38
+ mode: options?.mode,
38
39
  });
39
40
 
40
41
  return loader.loadModule(filePath, source);
@@ -53,6 +53,7 @@ import { SSRDependencyValidator } from "./ssr-dependency-validator.js";
53
53
  import { preflightLocalImports } from "./preflight-imports.js";
54
54
  import { resolveVfModuleImports } from "./vf-module-resolver.js";
55
55
  import { registerCSSImport } from "../css-import-collector.js";
56
+ import { injectNodePositions } from "../../../transforms/plugins/babel-node-positions.js";
56
57
 
57
58
  const logger = rendererLogger.component("ssr-module-loader");
58
59
 
@@ -344,7 +345,17 @@ export class SSRModuleLoader {
344
345
  );
345
346
  }
346
347
 
347
- const code = source ?? (await this.options.adapter.fs.readFile(filePath));
348
+ let code = source ?? (await this.options.adapter.fs.readFile(filePath));
349
+
350
+ // Inject node positions for JSX files in dev or preview mode
351
+ const shouldInjectPositions = this.options.dev || this.options.mode === "preview";
352
+ if (shouldInjectPositions && /\.(tsx|jsx)$/i.test(filePath)) {
353
+ const relativeFilePath = filePath.startsWith(this.options.projectDir)
354
+ ? filePath.slice(this.options.projectDir.length).replace(/^\/+/, "")
355
+ : filePath;
356
+ code = injectNodePositions(code, { filePath: relativeFilePath });
357
+ }
358
+
348
359
  const contentHash = await this.cache.hashContentAsync(code);
349
360
  const contentCacheKey = this.cache.getCacheKey(`${filePath}:${contentHash}`);
350
361
  const filePathCacheKey = this.cache.getCacheKey(filePath);
@@ -20,6 +20,8 @@ export interface SSRModuleLoaderOptions {
20
20
  contentSourceId?: string;
21
21
  /** React version for transforms (defaults to DEFAULT_REACT_VERSION) */
22
22
  reactVersion?: string;
23
+ /** Request mode ("preview" | "production") for studio features */
24
+ mode?: string;
23
25
  }
24
26
 
25
27
  export interface ModuleCacheEntry {
@@ -13,6 +13,8 @@ export interface LoadComponentOptions {
13
13
  contentSourceId?: string;
14
14
  /** React version for transforms (from project config) */
15
15
  reactVersion?: string;
16
+ /** Request mode ("preview" | "production") for studio features */
17
+ mode?: string;
16
18
  }
17
19
 
18
20
  export interface ComponentSource {
@@ -146,6 +146,8 @@ export interface ModuleServerOptions {
146
146
  allowedImportDirs?: string[];
147
147
  /** React version for transforms (from project config) */
148
148
  reactVersion?: string;
149
+ /** Request mode ("preview" | "production") for studio features like node positions */
150
+ mode?: string;
149
151
  }
150
152
 
151
153
  /** Serve transformed module at /_vf_modules/* path */
@@ -399,8 +401,9 @@ export function serveModule(req: dntShim.Request, options: ModuleServerOptions):
399
401
  const isSSR = url.searchParams.get("ssr") === "true" || userAgent.startsWith("Deno/");
400
402
 
401
403
  const studioEmbed = url.searchParams.get("studio_embed") === "true";
404
+ const shouldInjectPositions = dev || options.mode === "preview";
402
405
  const isJsxFile = /\.(tsx|jsx)$/i.test(sourceFile);
403
- if (studioEmbed && !isFrameworkFile && isJsxFile) {
406
+ if (shouldInjectPositions && !isFrameworkFile && isJsxFile) {
404
407
  const relativeFilePath = sourceFile.startsWith(projectDir)
405
408
  ? sourceFile.slice(projectDir.length).replace(/^\/+/, "")
406
409
  : sourceFile;
@@ -65,7 +65,7 @@ export function setupWebSocketHandlers(
65
65
  return;
66
66
  }
67
67
 
68
- let message: any;
68
+ let message: { type?: string };
69
69
  try {
70
70
  message = JSON.parse(event.data);
71
71
  } catch (parseError) {
@@ -14,7 +14,7 @@ import {
14
14
  } from "../../config/environment-config.js";
15
15
  import { type EnvReader, OAuthService } from "../providers/base.js";
16
16
  import { memoryTokenStore } from "../token-store/memory.js";
17
- import type { OAuthServiceConfig, TokenStore } from "../types.js";
17
+ import type { OAuthServiceConfig, OAuthState, TokenStore } from "../types.js";
18
18
 
19
19
  const logger = baseLogger.component("o-auth");
20
20
 
@@ -37,6 +37,9 @@ export interface OAuthCallbackHandlerOptions {
37
37
  /** Custom error callback */
38
38
  onError?: (serviceId: string, error: string) => void | Promise<void>;
39
39
 
40
+ /** Skip state validation for providers that don't return state */
41
+ skipStateValidation?: boolean;
42
+
40
43
  /** EnvironmentConfig for test isolation (defaults to getEnvironmentConfig()) */
41
44
  env?: EnvironmentConfig;
42
45
 
@@ -55,6 +58,7 @@ export function createOAuthCallbackHandler(
55
58
  errorRedirect = "/",
56
59
  onSuccess,
57
60
  onError,
61
+ skipStateValidation = false,
58
62
  env = getEnvironmentConfig(),
59
63
  envReader = getEnv,
60
64
  } = options;
@@ -106,12 +110,20 @@ export function createOAuthCallbackHandler(
106
110
 
107
111
  if (!code) return handleError(appUrl, "no_code");
108
112
 
109
- let oauthState: Awaited<ReturnType<TokenStore["getState"]>> | null = null;
113
+ let oauthState: OAuthState | null = null;
114
+
115
+ if (!skipStateValidation && !state) {
116
+ return handleError(appUrl, "invalid_state", "Missing state parameter", {
117
+ serviceId: config.serviceId,
118
+ });
119
+ }
120
+
110
121
  if (state) {
111
122
  oauthState = await tokenStore.getState(state);
112
- if (!oauthState) {
113
- logger.warn("Invalid or expired state", { serviceId: config.serviceId });
114
- // Continue anyway - some providers don't properly return state
123
+ if (!skipStateValidation && !oauthState) {
124
+ return handleError(appUrl, "invalid_state", "Invalid or expired state", {
125
+ serviceId: config.serviceId,
126
+ });
115
127
  }
116
128
  }
117
129
 
@@ -141,7 +141,7 @@ export class OAuthProvider {
141
141
  body: URLSearchParams,
142
142
  clientId: string,
143
143
  clientSecret: string,
144
- ): Promise<{ response: dntShim.Response; data: any }> {
144
+ ): Promise<{ response: dntShim.Response; data: Record<string, unknown> }> {
145
145
  const response = await dntShim.fetch(this.config.tokenUrl, {
146
146
  method: "POST",
147
147
  headers: this.buildTokenHeaders(clientId, clientSecret),
@@ -174,8 +174,8 @@ export class OAuthProvider {
174
174
  if (!response.ok) {
175
175
  return {
176
176
  success: false,
177
- error: data.error || errorFallback,
178
- errorDescription: data.error_description ||
177
+ error: (data.error as string) || errorFallback,
178
+ errorDescription: (data.error_description as string) ||
179
179
  (errorDescriptionFallback ? errorDescriptionFallback(response.status) : undefined),
180
180
  };
181
181
  }
@@ -10,7 +10,6 @@ export const githubConfig: OAuthServiceConfig = {
10
10
  clientSecretEnvVar: "GITHUB_CLIENT_SECRET",
11
11
  apiBaseUrl: "https://api.github.com",
12
12
  defaultScopes: ["repo", "user"],
13
- additionalAuthParams: {},
14
13
  };
15
14
 
16
15
  export const slackConfig: OAuthServiceConfig = {
@@ -23,7 +22,6 @@ export const slackConfig: OAuthServiceConfig = {
23
22
  clientSecretEnvVar: "SLACK_CLIENT_SECRET",
24
23
  apiBaseUrl: "https://slack.com/api",
25
24
  defaultScopes: ["channels:read", "chat:write", "users:read"],
26
- additionalAuthParams: {},
27
25
  };
28
26
 
29
27
  export const notionConfig: OAuthServiceConfig = {
@@ -52,7 +50,6 @@ export const figmaConfig: OAuthServiceConfig = {
52
50
  clientSecretEnvVar: "FIGMA_CLIENT_SECRET",
53
51
  apiBaseUrl: "https://api.figma.com/v1",
54
52
  defaultScopes: ["file_read"],
55
- additionalAuthParams: {},
56
53
  };
57
54
 
58
55
  export const discordConfig: OAuthServiceConfig = {
@@ -65,7 +62,6 @@ export const discordConfig: OAuthServiceConfig = {
65
62
  clientSecretEnvVar: "DISCORD_CLIENT_SECRET",
66
63
  apiBaseUrl: "https://discord.com/api/v10",
67
64
  defaultScopes: ["identify", "guilds"],
68
- additionalAuthParams: {},
69
65
  };
70
66
 
71
67
  export const linearConfig: OAuthServiceConfig = {
@@ -78,7 +74,6 @@ export const linearConfig: OAuthServiceConfig = {
78
74
  clientSecretEnvVar: "LINEAR_CLIENT_SECRET",
79
75
  apiBaseUrl: "https://api.linear.app",
80
76
  defaultScopes: ["read", "write"],
81
- additionalAuthParams: {},
82
77
  };
83
78
 
84
79
  export const gitlabConfig: OAuthServiceConfig = {
@@ -91,7 +86,6 @@ export const gitlabConfig: OAuthServiceConfig = {
91
86
  clientSecretEnvVar: "GITLAB_CLIENT_SECRET",
92
87
  apiBaseUrl: "https://gitlab.com/api/v4",
93
88
  defaultScopes: ["read_user", "api"],
94
- additionalAuthParams: {},
95
89
  };
96
90
 
97
91
  export const airtableConfig: OAuthServiceConfig = {
@@ -105,7 +99,6 @@ export const airtableConfig: OAuthServiceConfig = {
105
99
  apiBaseUrl: "https://api.airtable.com/v0",
106
100
  defaultScopes: ["data.records:read", "data.records:write", "schema.bases:read"],
107
101
  useBasicAuth: true,
108
- additionalAuthParams: {},
109
102
  };
110
103
 
111
104
  export const dropboxConfig: OAuthServiceConfig = {
@@ -133,7 +126,6 @@ export const hubspotConfig: OAuthServiceConfig = {
133
126
  clientSecretEnvVar: "HUBSPOT_CLIENT_SECRET",
134
127
  apiBaseUrl: "https://api.hubapi.com",
135
128
  defaultScopes: ["crm.objects.contacts.read", "crm.objects.contacts.write"],
136
- additionalAuthParams: {},
137
129
  };
138
130
 
139
131
  export const salesforceConfig: OAuthServiceConfig = {
@@ -146,7 +138,6 @@ export const salesforceConfig: OAuthServiceConfig = {
146
138
  clientSecretEnvVar: "SALESFORCE_CLIENT_SECRET",
147
139
  apiBaseUrl: "https://login.salesforce.com/services/data/v59.0",
148
140
  defaultScopes: ["api", "refresh_token"],
149
- additionalAuthParams: {},
150
141
  };
151
142
 
152
143
  export const twitterConfig: OAuthServiceConfig = {
@@ -160,7 +151,6 @@ export const twitterConfig: OAuthServiceConfig = {
160
151
  apiBaseUrl: "https://api.twitter.com/2",
161
152
  defaultScopes: ["tweet.read", "users.read", "offline.access"],
162
153
  useBasicAuth: true,
163
- additionalAuthParams: {},
164
154
  };
165
155
 
166
156
  export const asanaConfig: OAuthServiceConfig = {
@@ -173,7 +163,6 @@ export const asanaConfig: OAuthServiceConfig = {
173
163
  clientSecretEnvVar: "ASANA_CLIENT_SECRET",
174
164
  apiBaseUrl: "https://app.asana.com/api/1.0",
175
165
  defaultScopes: ["default"],
176
- additionalAuthParams: {},
177
166
  };
178
167
 
179
168
  export const mondayConfig: OAuthServiceConfig = {
@@ -186,7 +175,6 @@ export const mondayConfig: OAuthServiceConfig = {
186
175
  clientSecretEnvVar: "MONDAY_CLIENT_SECRET",
187
176
  apiBaseUrl: "https://api.monday.com/v2",
188
177
  defaultScopes: ["me:read", "boards:read", "boards:write"],
189
- additionalAuthParams: {},
190
178
  };
191
179
 
192
180
  export const zoomConfig: OAuthServiceConfig = {
@@ -200,7 +188,6 @@ export const zoomConfig: OAuthServiceConfig = {
200
188
  apiBaseUrl: "https://api.zoom.us/v2",
201
189
  defaultScopes: ["meeting:read", "meeting:write", "user:read"],
202
190
  useBasicAuth: true,
203
- additionalAuthParams: {},
204
191
  };
205
192
 
206
193
  export const intercomConfig: OAuthServiceConfig = {
@@ -213,7 +200,6 @@ export const intercomConfig: OAuthServiceConfig = {
213
200
  clientSecretEnvVar: "INTERCOM_CLIENT_SECRET",
214
201
  apiBaseUrl: "https://api.intercom.io",
215
202
  defaultScopes: [],
216
- additionalAuthParams: {},
217
203
  };
218
204
 
219
205
  export const freshdeskConfig: OAuthServiceConfig = {
@@ -226,7 +212,6 @@ export const freshdeskConfig: OAuthServiceConfig = {
226
212
  clientSecretEnvVar: "FRESHDESK_CLIENT_SECRET",
227
213
  apiBaseUrl: "https://domain.freshdesk.com/api/v2",
228
214
  defaultScopes: ["freshdesk"],
229
- additionalAuthParams: {},
230
215
  };
231
216
 
232
217
  export const mailchimpConfig: OAuthServiceConfig = {
@@ -239,7 +224,6 @@ export const mailchimpConfig: OAuthServiceConfig = {
239
224
  clientSecretEnvVar: "MAILCHIMP_CLIENT_SECRET",
240
225
  apiBaseUrl: "https://server.api.mailchimp.com/3.0",
241
226
  defaultScopes: [],
242
- additionalAuthParams: {},
243
227
  };
244
228
 
245
229
  export const shopifyConfig: OAuthServiceConfig = {
@@ -252,7 +236,6 @@ export const shopifyConfig: OAuthServiceConfig = {
252
236
  clientSecretEnvVar: "SHOPIFY_CLIENT_SECRET",
253
237
  apiBaseUrl: "https://shop.myshopify.com/admin/api/2024-01",
254
238
  defaultScopes: ["read_products", "write_products", "read_orders"],
255
- additionalAuthParams: {},
256
239
  };
257
240
 
258
241
  export const quickbooksConfig: OAuthServiceConfig = {
@@ -265,7 +248,6 @@ export const quickbooksConfig: OAuthServiceConfig = {
265
248
  clientSecretEnvVar: "QUICKBOOKS_CLIENT_SECRET",
266
249
  apiBaseUrl: "https://quickbooks.api.intuit.com/v3",
267
250
  defaultScopes: ["com.intuit.quickbooks.accounting"],
268
- additionalAuthParams: {},
269
251
  };
270
252
 
271
253
  export const xeroConfig: OAuthServiceConfig = {
@@ -284,7 +266,6 @@ export const xeroConfig: OAuthServiceConfig = {
284
266
  "accounting.transactions",
285
267
  "offline_access",
286
268
  ],
287
- additionalAuthParams: {},
288
269
  };
289
270
 
290
271
  export const boxConfig: OAuthServiceConfig = {
@@ -297,7 +278,6 @@ export const boxConfig: OAuthServiceConfig = {
297
278
  clientSecretEnvVar: "BOX_CLIENT_SECRET",
298
279
  apiBaseUrl: "https://api.box.com/2.0",
299
280
  defaultScopes: [],
300
- additionalAuthParams: {},
301
281
  };
302
282
 
303
283
  export const webexConfig: OAuthServiceConfig = {
@@ -310,7 +290,6 @@ export const webexConfig: OAuthServiceConfig = {
310
290
  clientSecretEnvVar: "WEBEX_CLIENT_SECRET",
311
291
  apiBaseUrl: "https://webexapis.com/v1",
312
292
  defaultScopes: ["spark:all", "spark:kms"],
313
- additionalAuthParams: {},
314
293
  };
315
294
 
316
295
  export const trelloConfig: OAuthServiceConfig = {
@@ -338,7 +317,6 @@ export const clickupConfig: OAuthServiceConfig = {
338
317
  clientSecretEnvVar: "CLICKUP_CLIENT_SECRET",
339
318
  apiBaseUrl: "https://api.clickup.com/api/v2",
340
319
  defaultScopes: [],
341
- additionalAuthParams: {},
342
320
  };
343
321
 
344
322
  export const pipedriveConfig: OAuthServiceConfig = {
@@ -351,7 +329,6 @@ export const pipedriveConfig: OAuthServiceConfig = {
351
329
  clientSecretEnvVar: "PIPEDRIVE_CLIENT_SECRET",
352
330
  apiBaseUrl: "https://api.pipedrive.com/v1",
353
331
  defaultScopes: [],
354
- additionalAuthParams: {},
355
332
  };
356
333
 
357
334
  export const commonServices = {
@@ -1,5 +1,5 @@
1
1
  import * as dntShim from "../../../_dnt.shims.js";
2
- import type { Span } from "@opentelemetry/api";
2
+ import { type Span, SpanStatusCode } from "@opentelemetry/api";
3
3
  import { endSpan, setSpanAttributes, SpanNames, startSpan, withSpan } from "../tracing/index.js";
4
4
  import { recordRenderError } from "../metrics/index.js";
5
5
 
@@ -48,7 +48,7 @@ function handleRenderError(span: Span | null, error: unknown, componentName: str
48
48
  if (!span) return;
49
49
 
50
50
  span.recordException(error as Error);
51
- span.setStatus({ code: 2, message: String(error) }); // 2 = ERROR
51
+ span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
52
52
  }
53
53
 
54
54
  function recordRenderDuration(span: Span | null, startTime: number): void {
@@ -16,8 +16,8 @@ export function initializeInstruments(
16
16
  meter: Meter,
17
17
  config: MetricsConfig,
18
18
  runtimeState: RuntimeState,
19
- ): Promise<MetricsInstruments> {
20
- const instruments: MetricsInstruments = {
19
+ ): MetricsInstruments {
20
+ const emptyInstruments: MetricsInstruments = {
21
21
  httpRequestCounter: null,
22
22
  httpRequestDuration: null,
23
23
  httpActiveRequests: null,
@@ -53,7 +53,8 @@ export function initializeInstruments(
53
53
  };
54
54
 
55
55
  try {
56
- Object.assign(instruments, {
56
+ return {
57
+ ...emptyInstruments,
57
58
  ...createHttpInstruments(meter, config),
58
59
  ...createCacheInstruments(meter, config, runtimeState),
59
60
  ...createRenderInstruments(meter, config),
@@ -62,10 +63,9 @@ export function initializeInstruments(
62
63
  ...createDataInstruments(meter, config),
63
64
  ...createMemoryInstruments(meter, config),
64
65
  ...createErrorInstruments(meter, config),
65
- });
66
+ };
66
67
  } catch (error) {
67
68
  logger.warn("Failed to initialize metric instruments", error);
69
+ return emptyInstruments;
68
70
  }
69
-
70
- return Promise.resolve(instruments);
71
71
  }
@@ -14,14 +14,14 @@ export const DEFAULT_CONFIG: MetricsConfig = {
14
14
  };
15
15
 
16
16
  function getEnvVar(env: unknown, key: string): string | undefined {
17
- const envObj = env as Record<string, unknown> | null | undefined;
17
+ if (env == null || typeof env !== "object") return undefined;
18
18
 
19
- const getter = envObj?.get;
20
- if (typeof getter === "function") {
21
- return getter.call(envObj, key) as string | undefined;
19
+ const envObj = env as Record<string, unknown>;
20
+ if (typeof envObj.get === "function") {
21
+ return envObj.get(key) as string | undefined;
22
22
  }
23
23
 
24
- const value = envObj?.[key];
24
+ const value = envObj[key];
25
25
  return typeof value === "string" ? value : undefined;
26
26
  }
27
27
 
@@ -82,7 +82,7 @@ export class MetricsManager {
82
82
  this.api = await import("@opentelemetry/api");
83
83
  this.meter = this.api.metrics.getMeter(finalConfig.prefix, VERSION);
84
84
 
85
- this.instruments = await initializeInstruments(this.meter, finalConfig, this.runtimeState);
85
+ this.instruments = initializeInstruments(this.meter, finalConfig, this.runtimeState);
86
86
  this.recorder.instruments = this.instruments;
87
87
 
88
88
  logger.info("OpenTelemetry metrics initialized", {