veryfront 0.1.128 → 0.1.129

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 (382) hide show
  1. package/esm/cli/router.d.ts +0 -5
  2. package/esm/cli/router.d.ts.map +1 -1
  3. package/esm/cli/router.js +30 -2
  4. package/esm/cli/shared/update-check.d.ts +4 -0
  5. package/esm/cli/shared/update-check.d.ts.map +1 -0
  6. package/esm/cli/shared/update-check.js +97 -0
  7. package/esm/deno.d.ts +5 -0
  8. package/esm/deno.js +13 -8
  9. package/esm/src/channels/control-plane.d.ts.map +1 -1
  10. package/esm/src/channels/control-plane.js +5 -5
  11. package/esm/src/channels/invoke.d.ts +1 -1
  12. package/esm/src/channels/invoke.d.ts.map +1 -1
  13. package/esm/src/channels/invoke.js +6 -6
  14. package/esm/src/chat/index.d.ts +12 -24
  15. package/esm/src/chat/index.d.ts.map +1 -1
  16. package/esm/src/chat/index.js +5 -25
  17. package/esm/src/config/env.d.ts.map +1 -1
  18. package/esm/src/config/env.js +18 -10
  19. package/esm/src/data/static-data-fetcher.d.ts +3 -0
  20. package/esm/src/data/static-data-fetcher.d.ts.map +1 -1
  21. package/esm/src/data/static-data-fetcher.js +29 -25
  22. package/esm/src/data/static-paths-fetcher.d.ts.map +1 -1
  23. package/esm/src/data/static-paths-fetcher.js +3 -2
  24. package/esm/src/errors/logging.d.ts.map +1 -1
  25. package/esm/src/errors/logging.js +16 -7
  26. package/esm/src/errors/user-friendly/error-formatter.d.ts.map +1 -1
  27. package/esm/src/errors/user-friendly/error-formatter.js +9 -25
  28. package/esm/src/fs/index.d.ts +11 -12
  29. package/esm/src/fs/index.d.ts.map +1 -1
  30. package/esm/src/fs/index.js +11 -24
  31. package/esm/src/html/dev-scripts.d.ts.map +1 -1
  32. package/esm/src/html/dev-scripts.js +5 -8
  33. package/esm/src/html/html-escape.d.ts +1 -0
  34. package/esm/src/html/html-escape.d.ts.map +1 -1
  35. package/esm/src/html/html-escape.js +3 -0
  36. package/esm/src/html/html-injection.js +2 -2
  37. package/esm/src/html/html-shell-generator.d.ts +5 -2
  38. package/esm/src/html/html-shell-generator.d.ts.map +1 -1
  39. package/esm/src/html/html-shell-generator.js +41 -30
  40. package/esm/src/html/hydration-script-builder/dev-client-renderer.js +2 -2
  41. package/esm/src/html/hydration-script-builder/dev-component-manifest.js +2 -2
  42. package/esm/src/html/hydration-script-builder/dev-error-logger.d.ts.map +1 -1
  43. package/esm/src/html/hydration-script-builder/dev-error-logger.js +2 -6
  44. package/esm/src/html/hydration-script-builder/dev-scripts.js +2 -2
  45. package/esm/src/html/hydration-script-builder/hydration-data-generator.d.ts +3 -1
  46. package/esm/src/html/hydration-script-builder/hydration-data-generator.d.ts.map +1 -1
  47. package/esm/src/html/hydration-script-builder/hydration-data-generator.js +2 -2
  48. package/esm/src/html/hydration-script-builder/index.d.ts +1 -1
  49. package/esm/src/html/hydration-script-builder/index.d.ts.map +1 -1
  50. package/esm/src/html/hydration-script-builder/index.js +1 -1
  51. package/esm/src/html/hydration-script-builder/prod-hydration.js +2 -2
  52. package/esm/src/html/hydration-script-builder/prod-scripts.d.ts +2 -0
  53. package/esm/src/html/hydration-script-builder/prod-scripts.d.ts.map +1 -1
  54. package/esm/src/html/hydration-script-builder/prod-scripts.js +14 -14
  55. package/esm/src/html/schemas/html.schema.d.ts +2 -0
  56. package/esm/src/html/schemas/html.schema.d.ts.map +1 -1
  57. package/esm/src/html/schemas/html.schema.js +2 -0
  58. package/esm/src/html/styles-builder/css-pregeneration.d.ts +17 -1
  59. package/esm/src/html/styles-builder/css-pregeneration.d.ts.map +1 -1
  60. package/esm/src/html/styles-builder/css-pregeneration.js +103 -1
  61. package/esm/src/html/styles-builder/dev-styles.js +2 -2
  62. package/esm/src/html/utils.d.ts +2 -0
  63. package/esm/src/html/utils.d.ts.map +1 -1
  64. package/esm/src/html/utils.js +49 -28
  65. package/esm/src/integrations/remote-tools.d.ts.map +1 -1
  66. package/esm/src/integrations/remote-tools.js +32 -39
  67. package/esm/src/internal-agents/ag-ui-sse.d.ts +0 -1
  68. package/esm/src/internal-agents/ag-ui-sse.d.ts.map +1 -1
  69. package/esm/src/internal-agents/ag-ui-sse.js +2 -16
  70. package/esm/src/internal-agents/control-plane-auth.d.ts.map +1 -1
  71. package/esm/src/internal-agents/control-plane-auth.js +5 -3
  72. package/esm/src/internal-agents/request-body.d.ts.map +1 -1
  73. package/esm/src/internal-agents/request-body.js +6 -3
  74. package/esm/src/internal-agents/session-manager.d.ts +1 -0
  75. package/esm/src/internal-agents/session-manager.d.ts.map +1 -1
  76. package/esm/src/internal-agents/session-manager.js +12 -18
  77. package/esm/src/issues/core.d.ts.map +1 -1
  78. package/esm/src/issues/core.js +24 -23
  79. package/esm/src/issues/schemas/issue.schema.d.ts.map +1 -1
  80. package/esm/src/issues/schemas/issue.schema.js +2 -1
  81. package/esm/src/jobs/runtime-env.d.ts.map +1 -1
  82. package/esm/src/jobs/runtime-env.js +21 -44
  83. package/esm/src/markdown/index.d.ts +1 -2
  84. package/esm/src/markdown/index.d.ts.map +1 -1
  85. package/esm/src/markdown/index.js +1 -6
  86. package/esm/src/mcp/server.d.ts +0 -1
  87. package/esm/src/mcp/server.d.ts.map +1 -1
  88. package/esm/src/mcp/server.js +40 -41
  89. package/esm/src/mdx/index.d.ts +3 -2
  90. package/esm/src/mdx/index.d.ts.map +1 -1
  91. package/esm/src/mdx/index.js +3 -5
  92. package/esm/src/middleware/builtin/logger.d.ts.map +1 -1
  93. package/esm/src/middleware/builtin/logger.js +31 -28
  94. package/esm/src/middleware/builtin/security/rate-limit.d.ts.map +1 -1
  95. package/esm/src/middleware/builtin/security/rate-limit.js +17 -12
  96. package/esm/src/middleware/builtin/timeout.d.ts.map +1 -1
  97. package/esm/src/middleware/builtin/timeout.js +17 -10
  98. package/esm/src/modules/import-map/default-import-map.d.ts.map +1 -1
  99. package/esm/src/modules/import-map/default-import-map.js +4 -3
  100. package/esm/src/oauth/handlers/callback-handler.d.ts +0 -5
  101. package/esm/src/oauth/handlers/callback-handler.d.ts.map +1 -1
  102. package/esm/src/oauth/handlers/callback-handler.js +9 -14
  103. package/esm/src/oauth/handlers/index.d.ts +1 -1
  104. package/esm/src/oauth/handlers/index.js +1 -1
  105. package/esm/src/oauth/handlers/init-handler.d.ts.map +1 -1
  106. package/esm/src/oauth/handlers/init-handler.js +32 -20
  107. package/esm/src/oauth/providers/index.d.ts +1 -1
  108. package/esm/src/oauth/providers/index.js +1 -1
  109. package/esm/src/oauth/schemas/index.d.ts +1 -1
  110. package/esm/src/oauth/schemas/index.js +1 -1
  111. package/esm/src/oauth/token-store/index.d.ts +1 -1
  112. package/esm/src/oauth/token-store/index.js +1 -1
  113. package/esm/src/oauth/token-store/memory.d.ts +1 -1
  114. package/esm/src/oauth/token-store/memory.d.ts.map +1 -1
  115. package/esm/src/oauth/token-store/memory.js +8 -8
  116. package/esm/src/observability/request-profiler.d.ts +31 -0
  117. package/esm/src/observability/request-profiler.d.ts.map +1 -0
  118. package/esm/src/observability/request-profiler.js +94 -0
  119. package/esm/src/observability/tracing/otlp-setup.d.ts.map +1 -1
  120. package/esm/src/observability/tracing/otlp-setup.js +16 -21
  121. package/esm/src/prompt/factory.d.ts.map +1 -1
  122. package/esm/src/prompt/factory.js +10 -12
  123. package/esm/src/prompt/registry.d.ts.map +1 -1
  124. package/esm/src/prompt/registry.js +12 -10
  125. package/esm/src/prompt/schemas/prompt.schema.d.ts.map +1 -1
  126. package/esm/src/prompt/schemas/prompt.schema.js +0 -2
  127. package/esm/src/prompt/types.d.ts +1 -1
  128. package/esm/src/prompt/types.d.ts.map +1 -1
  129. package/esm/src/provider/local/ai-sdk-adapter.d.ts.map +1 -1
  130. package/esm/src/provider/local/ai-sdk-adapter.js +3 -8
  131. package/esm/src/provider/local/env.d.ts +4 -6
  132. package/esm/src/provider/local/env.d.ts.map +1 -1
  133. package/esm/src/provider/local/env.js +14 -1
  134. package/esm/src/provider/local/local-engine.d.ts.map +1 -1
  135. package/esm/src/provider/local/local-engine.js +2 -7
  136. package/esm/src/provider/model-registry.d.ts.map +1 -1
  137. package/esm/src/provider/model-registry.js +2 -7
  138. package/esm/src/provider/veryfront-cloud/provider.d.ts.map +1 -1
  139. package/esm/src/provider/veryfront-cloud/provider.js +1 -7
  140. package/esm/src/provider/veryfront-cloud/shared.d.ts.map +1 -1
  141. package/esm/src/provider/veryfront-cloud/shared.js +9 -11
  142. package/esm/src/proxy/handler.d.ts.map +1 -1
  143. package/esm/src/proxy/handler.js +56 -57
  144. package/esm/src/react/compat/hooks-adapter.d.ts +1 -7
  145. package/esm/src/react/compat/hooks-adapter.d.ts.map +1 -1
  146. package/esm/src/react/compat/hooks-adapter.js +35 -40
  147. package/esm/src/react/components/Head.d.ts +1 -26
  148. package/esm/src/react/components/Head.d.ts.map +1 -1
  149. package/esm/src/react/components/Head.js +1 -172
  150. package/esm/src/react/context/index.d.ts +2 -46
  151. package/esm/src/react/context/index.d.ts.map +1 -1
  152. package/esm/src/react/context/index.js +1 -44
  153. package/esm/src/react/head-collector.d.ts +1 -10
  154. package/esm/src/react/head-collector.d.ts.map +1 -1
  155. package/esm/src/react/head-collector.js +4 -0
  156. package/esm/src/react/router/index.d.ts +2 -45
  157. package/esm/src/react/router/index.d.ts.map +1 -1
  158. package/esm/src/react/router/index.js +1 -49
  159. package/esm/src/react/runtime/core.d.ts +49 -0
  160. package/esm/src/react/runtime/core.d.ts.map +1 -0
  161. package/esm/src/react/runtime/core.js +200 -0
  162. package/esm/src/rendering/orchestrator/html.d.ts +2 -0
  163. package/esm/src/rendering/orchestrator/html.d.ts.map +1 -1
  164. package/esm/src/rendering/orchestrator/html.js +69 -12
  165. package/esm/src/rendering/orchestrator/ssr-orchestrator.d.ts.map +1 -1
  166. package/esm/src/rendering/orchestrator/ssr-orchestrator.js +4 -0
  167. package/esm/src/rendering/orchestrator/types.d.ts +4 -0
  168. package/esm/src/rendering/orchestrator/types.d.ts.map +1 -1
  169. package/esm/src/repositories/types.d.ts.map +1 -1
  170. package/esm/src/resource/factory.d.ts.map +1 -1
  171. package/esm/src/resource/factory.js +12 -9
  172. package/esm/src/resource/registry.d.ts +3 -3
  173. package/esm/src/resource/registry.d.ts.map +1 -1
  174. package/esm/src/resource/registry.js +7 -7
  175. package/esm/src/schemas/common.d.ts.map +1 -1
  176. package/esm/src/schemas/common.js +7 -4
  177. package/esm/src/security/http/config.d.ts +0 -1
  178. package/esm/src/security/http/config.d.ts.map +1 -1
  179. package/esm/src/security/http/config.js +3 -16
  180. package/esm/src/security/http/response/security-handler.d.ts +1 -0
  181. package/esm/src/security/http/response/security-handler.d.ts.map +1 -1
  182. package/esm/src/security/http/response/security-handler.js +17 -12
  183. package/esm/src/security/index.d.ts +4 -2
  184. package/esm/src/security/index.d.ts.map +1 -1
  185. package/esm/src/security/index.js +3 -1
  186. package/esm/src/server/handlers/dev/styles-css.handler.d.ts.map +1 -1
  187. package/esm/src/server/handlers/dev/styles-css.handler.js +8 -7
  188. package/esm/src/server/handlers/monitoring/metrics.handler.d.ts.map +1 -1
  189. package/esm/src/server/handlers/monitoring/metrics.handler.js +3 -1
  190. package/esm/src/server/handlers/request/module/module-server-handler.d.ts.map +1 -1
  191. package/esm/src/server/handlers/request/module/module-server-handler.js +18 -15
  192. package/esm/src/server/handlers/request/prod-hydration-module.handler.d.ts +8 -0
  193. package/esm/src/server/handlers/request/prod-hydration-module.handler.d.ts.map +1 -0
  194. package/esm/src/server/handlers/request/prod-hydration-module.handler.js +41 -0
  195. package/esm/src/server/handlers/request/ssr/ssr.handler.d.ts.map +1 -1
  196. package/esm/src/server/handlers/request/ssr/ssr.handler.js +3 -0
  197. package/esm/src/server/production-server.d.ts.map +1 -1
  198. package/esm/src/server/production-server.js +65 -0
  199. package/esm/src/server/runtime-handler/handler-context-builder.d.ts +1 -1
  200. package/esm/src/server/runtime-handler/handler-context-builder.d.ts.map +1 -1
  201. package/esm/src/server/runtime-handler/index.d.ts +1 -1
  202. package/esm/src/server/runtime-handler/index.d.ts.map +1 -1
  203. package/esm/src/server/runtime-handler/index.js +36 -11
  204. package/esm/src/server/runtime-handler/request-utils.d.ts +7 -0
  205. package/esm/src/server/runtime-handler/request-utils.d.ts.map +1 -1
  206. package/esm/src/server/runtime-handler/request-utils.js +10 -0
  207. package/esm/src/server/services/rendering/ssr.service.d.ts +1 -0
  208. package/esm/src/server/services/rendering/ssr.service.d.ts.map +1 -1
  209. package/esm/src/server/services/rendering/ssr.service.js +12 -5
  210. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +1 -1
  211. package/esm/src/skill/allowed-tools.d.ts +3 -8
  212. package/esm/src/skill/allowed-tools.d.ts.map +1 -1
  213. package/esm/src/skill/executor.js +2 -2
  214. package/esm/src/skill/parser.d.ts.map +1 -1
  215. package/esm/src/skill/parser.js +12 -12
  216. package/esm/src/skill/path-safety.js +1 -1
  217. package/esm/src/skill/tools.d.ts.map +1 -1
  218. package/esm/src/skill/tools.js +18 -11
  219. package/esm/src/studio/bridge/bridge-bundle.generated.d.ts.map +1 -1
  220. package/esm/src/studio/bridge/bridge-bundle.generated.js +1 -1
  221. package/esm/src/task/discovery.d.ts.map +1 -1
  222. package/esm/src/task/discovery.js +73 -95
  223. package/esm/src/tool/executor.d.ts.map +1 -1
  224. package/esm/src/tool/executor.js +8 -7
  225. package/esm/src/tool/factory.d.ts.map +1 -1
  226. package/esm/src/tool/factory.js +13 -16
  227. package/esm/src/transforms/esm/package-registry.d.ts +4 -0
  228. package/esm/src/transforms/esm/package-registry.d.ts.map +1 -1
  229. package/esm/src/transforms/esm/package-registry.js +34 -17
  230. package/esm/src/transforms/import-rewriter/strategies/veryfront-strategy.d.ts.map +1 -1
  231. package/esm/src/transforms/import-rewriter/strategies/veryfront-strategy.js +2 -1
  232. package/esm/src/transforms/mdx/esm-module-loader/cache-format.d.ts.map +1 -1
  233. package/esm/src/transforms/mdx/esm-module-loader/cache-format.js +26 -1
  234. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts +1 -1
  235. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts.map +1 -1
  236. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.js +1 -1
  237. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.d.ts +1 -0
  238. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.d.ts.map +1 -1
  239. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.js +3 -0
  240. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/index.d.ts +1 -1
  241. package/esm/src/transforms/pipeline/stages/ssr-vf-modules/index.js +1 -1
  242. package/esm/src/transforms/veryfront-module-urls.d.ts.map +1 -1
  243. package/esm/src/transforms/veryfront-module-urls.js +7 -3
  244. package/esm/src/types/entities/getEntityInfo.d.ts.map +1 -1
  245. package/esm/src/types/entities/getEntityInfo.js +79 -127
  246. package/esm/src/utils/path-utils.d.ts +1 -1
  247. package/esm/src/utils/path-utils.d.ts.map +1 -1
  248. package/esm/src/utils/path-utils.js +16 -7
  249. package/esm/src/utils/version-constant.d.ts +1 -1
  250. package/esm/src/utils/version-constant.js +1 -1
  251. package/esm/src/utils/version.d.ts.map +1 -1
  252. package/esm/src/utils/version.js +0 -1
  253. package/esm/src/workflow/worker/dynamic-job-entrypoint.d.ts.map +1 -1
  254. package/esm/src/workflow/worker/dynamic-job-entrypoint.js +5 -72
  255. package/esm/src/workflow/worker/job-entrypoint.d.ts.map +1 -1
  256. package/esm/src/workflow/worker/job-entrypoint.js +5 -72
  257. package/esm/src/workflow/worker/shared.d.ts +18 -0
  258. package/esm/src/workflow/worker/shared.d.ts.map +1 -0
  259. package/esm/src/workflow/worker/shared.js +77 -0
  260. package/package.json +1 -1
  261. package/src/cli/router.ts +41 -2
  262. package/src/cli/shared/update-check.ts +110 -0
  263. package/src/deno.js +13 -8
  264. package/src/src/channels/control-plane.ts +6 -10
  265. package/src/src/channels/invoke.ts +7 -7
  266. package/src/src/chat/index.ts +96 -132
  267. package/src/src/config/env.ts +24 -11
  268. package/src/src/data/static-data-fetcher.ts +59 -34
  269. package/src/src/data/static-paths-fetcher.ts +4 -2
  270. package/src/src/errors/logging.ts +21 -7
  271. package/src/src/errors/user-friendly/error-formatter.ts +14 -29
  272. package/src/src/fs/index.ts +21 -30
  273. package/src/src/html/dev-scripts.ts +5 -9
  274. package/src/src/html/html-escape.ts +4 -0
  275. package/src/src/html/html-injection.ts +2 -2
  276. package/src/src/html/html-shell-generator.ts +60 -26
  277. package/src/src/html/hydration-script-builder/dev-client-renderer.ts +2 -2
  278. package/src/src/html/hydration-script-builder/dev-component-manifest.ts +2 -2
  279. package/src/src/html/hydration-script-builder/dev-error-logger.ts +2 -8
  280. package/src/src/html/hydration-script-builder/dev-scripts.ts +2 -2
  281. package/src/src/html/hydration-script-builder/hydration-data-generator.ts +2 -1
  282. package/src/src/html/hydration-script-builder/index.ts +5 -1
  283. package/src/src/html/hydration-script-builder/prod-hydration.ts +2 -2
  284. package/src/src/html/hydration-script-builder/prod-scripts.ts +16 -15
  285. package/src/src/html/schemas/html.schema.ts +2 -0
  286. package/src/src/html/styles-builder/css-pregeneration.ts +133 -1
  287. package/src/src/html/styles-builder/dev-styles.ts +2 -2
  288. package/src/src/html/utils.ts +62 -29
  289. package/src/src/integrations/remote-tools.ts +39 -37
  290. package/src/src/internal-agents/ag-ui-sse.ts +2 -17
  291. package/src/src/internal-agents/control-plane-auth.ts +8 -6
  292. package/src/src/internal-agents/request-body.ts +7 -5
  293. package/src/src/internal-agents/session-manager.ts +16 -20
  294. package/src/src/issues/core.ts +24 -27
  295. package/src/src/issues/schemas/issue.schema.ts +3 -1
  296. package/src/src/jobs/runtime-env.ts +24 -50
  297. package/src/src/markdown/index.ts +5 -8
  298. package/src/src/mcp/server.ts +50 -53
  299. package/src/src/mdx/index.ts +7 -8
  300. package/src/src/middleware/builtin/logger.ts +44 -29
  301. package/src/src/middleware/builtin/security/rate-limit.ts +20 -11
  302. package/src/src/middleware/builtin/timeout.ts +22 -13
  303. package/src/src/modules/import-map/default-import-map.ts +4 -3
  304. package/src/src/oauth/handlers/callback-handler.ts +9 -16
  305. package/src/src/oauth/handlers/index.ts +1 -1
  306. package/src/src/oauth/handlers/init-handler.ts +56 -27
  307. package/src/src/oauth/providers/index.ts +1 -1
  308. package/src/src/oauth/schemas/index.ts +1 -1
  309. package/src/src/oauth/token-store/index.ts +1 -1
  310. package/src/src/oauth/token-store/memory.ts +8 -8
  311. package/src/src/observability/request-profiler.ts +140 -0
  312. package/src/src/observability/tracing/otlp-setup.ts +16 -22
  313. package/src/src/prompt/factory.ts +16 -14
  314. package/src/src/prompt/registry.ts +14 -13
  315. package/src/src/prompt/schemas/prompt.schema.ts +0 -4
  316. package/src/src/prompt/types.ts +1 -2
  317. package/src/src/provider/local/ai-sdk-adapter.ts +3 -10
  318. package/src/src/provider/local/env.ts +22 -2
  319. package/src/src/provider/local/local-engine.ts +2 -9
  320. package/src/src/provider/model-registry.ts +2 -9
  321. package/src/src/provider/veryfront-cloud/provider.ts +1 -8
  322. package/src/src/provider/veryfront-cloud/shared.ts +12 -15
  323. package/src/src/proxy/handler.ts +90 -74
  324. package/src/src/react/compat/hooks-adapter.ts +43 -44
  325. package/src/src/react/components/Head.tsx +1 -181
  326. package/src/src/react/context/index.tsx +2 -83
  327. package/src/src/react/head-collector.ts +9 -0
  328. package/src/src/react/router/index.tsx +2 -100
  329. package/src/src/react/runtime/core.ts +303 -0
  330. package/src/src/rendering/orchestrator/html.ts +122 -18
  331. package/src/src/rendering/orchestrator/ssr-orchestrator.ts +8 -0
  332. package/src/src/rendering/orchestrator/types.ts +4 -0
  333. package/src/src/repositories/types.ts +0 -4
  334. package/src/src/resource/factory.ts +15 -11
  335. package/src/src/resource/registry.ts +7 -7
  336. package/src/src/schemas/common.ts +8 -5
  337. package/src/src/security/http/config.ts +3 -19
  338. package/src/src/security/http/response/security-handler.ts +22 -13
  339. package/src/src/security/index.ts +4 -7
  340. package/src/src/server/handlers/dev/styles-css.handler.ts +32 -14
  341. package/src/src/server/handlers/monitoring/metrics.handler.ts +3 -1
  342. package/src/src/server/handlers/request/module/module-server-handler.ts +24 -17
  343. package/src/src/server/handlers/request/prod-hydration-module.handler.ts +61 -0
  344. package/src/src/server/handlers/request/ssr/ssr.handler.ts +3 -0
  345. package/src/src/server/production-server.ts +84 -0
  346. package/src/src/server/runtime-handler/handler-context-builder.ts +1 -1
  347. package/src/src/server/runtime-handler/index.ts +44 -13
  348. package/src/src/server/runtime-handler/request-utils.ts +11 -0
  349. package/src/src/server/services/rendering/ssr.service.ts +31 -18
  350. package/src/src/server/services/rsc/endpoints/rsc-bundles.generated.ts +1 -1
  351. package/src/src/skill/allowed-tools.ts +1 -8
  352. package/src/src/skill/executor.ts +2 -2
  353. package/src/src/skill/parser.ts +13 -20
  354. package/src/src/skill/path-safety.ts +1 -1
  355. package/src/src/skill/tools.ts +27 -20
  356. package/src/src/studio/bridge/bridge-bundle.generated.ts +1 -1
  357. package/src/src/task/discovery.ts +97 -97
  358. package/src/src/tool/executor.ts +10 -8
  359. package/src/src/tool/factory.ts +21 -22
  360. package/src/src/tool/types.ts +0 -17
  361. package/src/src/transforms/esm/package-registry.ts +52 -20
  362. package/src/src/transforms/import-rewriter/strategies/veryfront-strategy.ts +2 -1
  363. package/src/src/transforms/mdx/esm-module-loader/cache-format.ts +34 -1
  364. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/index.ts +1 -1
  365. package/src/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.ts +4 -0
  366. package/src/src/transforms/pipeline/stages/ssr-vf-modules/index.ts +1 -1
  367. package/src/src/transforms/veryfront-module-urls.ts +6 -2
  368. package/src/src/types/entities/getEntityInfo.ts +131 -152
  369. package/src/src/utils/path-utils.ts +16 -7
  370. package/src/src/utils/version-constant.ts +1 -1
  371. package/src/src/utils/version.ts +0 -1
  372. package/src/src/workflow/worker/dynamic-job-entrypoint.ts +18 -84
  373. package/src/src/workflow/worker/job-entrypoint.ts +18 -85
  374. package/src/src/workflow/worker/shared.ts +127 -0
  375. package/esm/src/prompt/schemas/index.d.ts +0 -7
  376. package/esm/src/prompt/schemas/index.d.ts.map +0 -1
  377. package/esm/src/prompt/schemas/index.js +0 -6
  378. package/esm/src/security/http/handlers-index.d.ts +0 -5
  379. package/esm/src/security/http/handlers-index.d.ts.map +0 -1
  380. package/esm/src/security/http/handlers-index.js +0 -3
  381. package/src/src/prompt/schemas/index.ts +0 -7
  382. package/src/src/security/http/handlers-index.ts +0 -4
@@ -1,8 +1,3 @@
1
- /**************************************************
2
- * OAuth Callback Handler
3
- *
4
- * Reusable handler for OAuth callback routes.
5
- **************************************************/
6
1
  import * as dntShim from "../../../_dnt.shims.js";
7
2
  import { logger as baseLogger } from "../../utils/index.js";
8
3
  import { getEnv } from "../../platform/compat/process.js";
@@ -32,29 +27,29 @@ export function createOAuthCallbackHandler(config, options = {}) {
32
27
  const url = new URL(request.url);
33
28
  const code = url.searchParams.get("code");
34
29
  const state = url.searchParams.get("state");
35
- const oauthError = url.searchParams.get("error");
30
+ const providerError = url.searchParams.get("error");
36
31
  const errorDescription = url.searchParams.get("error_description");
37
32
  const appUrl = getAppUrl();
38
- if (oauthError) {
33
+ if (providerError) {
39
34
  logger.error("Callback error", {
40
35
  serviceId: config.serviceId,
41
- error: oauthError,
36
+ error: providerError,
42
37
  description: errorDescription,
43
38
  });
44
- await onError?.(config.serviceId, oauthError);
45
- return redirectWithError(appUrl, oauthError, errorDescription);
39
+ await onError?.(config.serviceId, providerError);
40
+ return redirectWithError(appUrl, providerError, errorDescription);
46
41
  }
47
42
  if (!code)
48
43
  return handleError(appUrl, "no_code");
49
- let oauthState = null;
44
+ let storedState = null;
50
45
  if (!skipStateValidation && !state) {
51
46
  return handleError(appUrl, "invalid_state", "Missing state parameter", {
52
47
  serviceId: config.serviceId,
53
48
  });
54
49
  }
55
50
  if (state) {
56
- oauthState = await tokenStore.getState(state);
57
- if (!skipStateValidation && !oauthState) {
51
+ storedState = await tokenStore.getState(state);
52
+ if (!skipStateValidation && !storedState) {
58
53
  return handleError(appUrl, "invalid_state", "Invalid or expired state", {
59
54
  serviceId: config.serviceId,
60
55
  });
@@ -66,7 +61,7 @@ export function createOAuthCallbackHandler(config, options = {}) {
66
61
  const result = await service.exchangeCode({
67
62
  code,
68
63
  redirectUri,
69
- codeVerifier: oauthState?.codeVerifier,
64
+ codeVerifier: storedState?.codeVerifier,
70
65
  });
71
66
  if (!result.success || !result.tokens) {
72
67
  return handleError(appUrl, result.error ?? "token_exchange_failed", `Token exchange failed for ${config.serviceId}:`, result.error);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Oauth Handlers
2
+ * OAuth Handlers
3
3
  *
4
4
  * @module oauth/handlers
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Oauth Handlers
2
+ * OAuth Handlers
3
3
  *
4
4
  * @module oauth/handlers
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"init-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/oauth/handlers/init-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAElD,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK3F,MAAM,WAAW,uBAAuB;IACtC,oDAAoD;IACpD,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,uCAAuC;IACvC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IAEtC,gFAAgF;IAChF,GAAG,CAAC,EAAE,iBAAiB,CAAC;IAExB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,uBAA4B,GACpC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAsCjC;AAED,MAAM,WAAW,yBAAyB;IACxC,oDAAoD;IACpD,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,kFAAkF;IAClF,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxE;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,yBAA8B,GACtC,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAwBrD;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kFAAkF;IAClF,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE,GACL,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAerD"}
1
+ {"version":3,"file":"init-handler.d.ts","sourceRoot":"","sources":["../../../../src/src/oauth/handlers/init-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAElD,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,KAAK,SAAS,EAAgB,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAyC3F,MAAM,WAAW,uBAAuB;IACtC,oDAAoD;IACpD,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,uCAAuC;IACvC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IAEtC,gFAAgF;IAChF,GAAG,CAAC,EAAE,iBAAiB,CAAC;IAExB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,uBAA4B,GACpC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CA4BjC;AAED,MAAM,WAAW,yBAAyB;IACxC,oDAAoD;IACpD,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,kFAAkF;IAClF,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxE;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,yBAA8B,GACtC,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CA2BrD;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kFAAkF;IAClF,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE,GACL,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAerD"}
@@ -5,20 +5,36 @@ import { getEnv } from "../../platform/compat/process.js";
5
5
  import { OAuthService } from "../providers/base.js";
6
6
  import { memoryTokenStore } from "../token-store/memory.js";
7
7
  const logger = baseLogger.component("o-auth");
8
+ const DEFAULT_APP_URL = "http://localhost:3000";
9
+ function createUnauthorizedResponse() {
10
+ return dntShim.Response.json({ error: "Unauthorized" }, { status: 401 });
11
+ }
12
+ async function isRequestUnauthorized(req, isAuthenticated) {
13
+ return isAuthenticated ? !(await isAuthenticated(req)) : false;
14
+ }
15
+ function resolveAppUrl(baseUrl, env) {
16
+ return baseUrl ?? env.appUrl ?? DEFAULT_APP_URL;
17
+ }
18
+ function createNotConfiguredResponse(config) {
19
+ return dntShim.Response.json({
20
+ error: `${config.displayName} OAuth not configured`,
21
+ details: `Missing ${config.clientIdEnvVar} or ${config.clientSecretEnvVar}`,
22
+ }, { status: 500 });
23
+ }
24
+ function createInitErrorResponse(error) {
25
+ return dntShim.Response.json({
26
+ error: "Failed to initiate OAuth flow",
27
+ details: error instanceof Error ? error.message : "Unknown error",
28
+ }, { status: 500 });
29
+ }
8
30
  export function createOAuthInitHandler(config, options = {}) {
9
- const tokenStore = options.tokenStore ?? memoryTokenStore;
10
- const authOptions = options.authOptions ?? {};
11
- const env = options.env ?? getEnvironmentConfig();
12
- const envReader = options.envReader ?? getEnv;
31
+ const { tokenStore = memoryTokenStore, baseUrl, authOptions = {}, env = getEnvironmentConfig(), envReader = getEnv, } = options;
13
32
  return async function handler() {
14
33
  const service = new OAuthService(config, tokenStore, envReader);
15
34
  if (!service.isConfigured()) {
16
- return dntShim.Response.json({
17
- error: `${config.displayName} OAuth not configured`,
18
- details: `Missing ${config.clientIdEnvVar} or ${config.clientSecretEnvVar}`,
19
- }, { status: 500 });
35
+ return createNotConfiguredResponse(config);
20
36
  }
21
- const appUrl = options.baseUrl ?? env.appUrl ?? "http://localhost:3000";
37
+ const appUrl = resolveAppUrl(baseUrl, env);
22
38
  const redirectUri = `${appUrl}/api/auth/${config.serviceId}/callback`;
23
39
  try {
24
40
  const { url, state } = await service.createAuthorizationUrl({ ...authOptions, redirectUri });
@@ -27,19 +43,15 @@ export function createOAuthInitHandler(config, options = {}) {
27
43
  }
28
44
  catch (error) {
29
45
  logger.error("Init error", { serviceId: config.serviceId }, error);
30
- return dntShim.Response.json({
31
- error: "Failed to initiate OAuth flow",
32
- details: error instanceof Error ? error.message : "Unknown error",
33
- }, { status: 500 });
46
+ return createInitErrorResponse(error);
34
47
  }
35
48
  };
36
49
  }
37
50
  export function createOAuthStatusHandler(config, options = {}) {
38
- const tokenStore = options.tokenStore ?? memoryTokenStore;
39
- const envReader = options.envReader ?? getEnv;
51
+ const { tokenStore = memoryTokenStore, envReader = getEnv, isAuthenticated, } = options;
40
52
  return async function handler(req) {
41
- if (options.isAuthenticated && !(await options.isAuthenticated(req))) {
42
- return dntShim.Response.json({ error: "Unauthorized" }, { status: 401 });
53
+ if (await isRequestUnauthorized(req, isAuthenticated)) {
54
+ return createUnauthorizedResponse();
43
55
  }
44
56
  const tokens = await tokenStore.getTokens(config.serviceId);
45
57
  const isConnected = !!tokens?.accessToken;
@@ -56,10 +68,10 @@ export function createOAuthStatusHandler(config, options = {}) {
56
68
  };
57
69
  }
58
70
  export function createOAuthDisconnectHandler(config, options = {}) {
59
- const tokenStore = options.tokenStore ?? memoryTokenStore;
71
+ const { tokenStore = memoryTokenStore, isAuthenticated } = options;
60
72
  return async function handler(req) {
61
- if (options.isAuthenticated && !(await options.isAuthenticated(req))) {
62
- return dntShim.Response.json({ error: "Unauthorized" }, { status: 401 });
73
+ if (await isRequestUnauthorized(req, isAuthenticated)) {
74
+ return createUnauthorizedResponse();
63
75
  }
64
76
  await tokenStore.clearTokens(config.serviceId);
65
77
  return dntShim.Response.json({
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Oauth Providers
2
+ * OAuth Providers
3
3
  *
4
4
  * @module oauth/providers
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Oauth Providers
2
+ * OAuth Providers
3
3
  *
4
4
  * @module oauth/providers
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Oauth Schemas
2
+ * OAuth Schemas
3
3
  *
4
4
  * @module oauth/schemas
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Oauth Schemas
2
+ * OAuth Schemas
3
3
  *
4
4
  * @module oauth/schemas
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Oauth Token Store
2
+ * OAuth Token Store
3
3
  *
4
4
  * @module oauth/token-store
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Oauth Token Store
2
+ * OAuth Token Store
3
3
  *
4
4
  * @module oauth/token-store
5
5
  */
@@ -9,7 +9,7 @@ export declare class MemoryTokenStore implements TokenStore {
9
9
  setTokens(serviceId: string, tokens: OAuthTokens): Promise<void>;
10
10
  clearTokens(serviceId: string): Promise<void>;
11
11
  getState(state: string): Promise<OAuthState | null>;
12
- setState(oauthState: OAuthState): Promise<void>;
12
+ setState(storedState: OAuthState): Promise<void>;
13
13
  clearState(state: string): Promise<void>;
14
14
  private cleanupExpiredStates;
15
15
  getConnectedServices(): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/src/oauth/token-store/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKvE,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,SAAY;IAIjC,OAAO,CAAC,SAAS;IAIX,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAIzD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAYnD,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/C,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,OAAO,CAAC,oBAAoB;IAS5B,oBAAoB,IAAI,MAAM,EAAE;IAIhC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAQvC,QAAQ,IAAI,IAAI;CAIjB;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/src/oauth/token-store/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKvE,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,SAAY;IAIjC,OAAO,CAAC,SAAS;IAIX,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAIzD,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAYnD,QAAQ,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,OAAO,CAAC,oBAAoB;IAS5B,oBAAoB,IAAI,MAAM,EAAE;IAIhC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAQvC,QAAQ,IAAI,IAAI;CAIjB;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -20,17 +20,17 @@ export class MemoryTokenStore {
20
20
  this.tokens.delete(this.scopedKey(serviceId));
21
21
  }
22
22
  async getState(state) {
23
- const oauthState = this.states.get(state);
24
- if (!oauthState)
23
+ const storedState = this.states.get(state);
24
+ if (!storedState)
25
25
  return null;
26
- if (Date.now() - oauthState.createdAt > STATE_EXPIRATION_MS) {
26
+ if (Date.now() - storedState.createdAt > STATE_EXPIRATION_MS) {
27
27
  this.states.delete(state);
28
28
  return null;
29
29
  }
30
- return oauthState;
30
+ return storedState;
31
31
  }
32
- async setState(oauthState) {
33
- this.states.set(oauthState.state, oauthState);
32
+ async setState(storedState) {
33
+ this.states.set(storedState.state, storedState);
34
34
  this.cleanupExpiredStates();
35
35
  }
36
36
  async clearState(state) {
@@ -38,8 +38,8 @@ export class MemoryTokenStore {
38
38
  }
39
39
  cleanupExpiredStates() {
40
40
  const now = Date.now();
41
- for (const [state, oauthState] of this.states) {
42
- if (now - oauthState.createdAt > STATE_EXPIRATION_MS) {
41
+ for (const [state, storedState] of this.states) {
42
+ if (now - storedState.createdAt > STATE_EXPIRATION_MS) {
43
43
  this.states.delete(state);
44
44
  }
45
45
  }
@@ -0,0 +1,31 @@
1
+ export interface RequestProfileRecord {
2
+ sequence: number;
3
+ category: string;
4
+ method: string;
5
+ pathname: string;
6
+ projectSlug?: string;
7
+ requestMode?: string;
8
+ status?: number;
9
+ startedAt: string;
10
+ completedAt: string;
11
+ totalMs: number;
12
+ phases: Record<string, number>;
13
+ }
14
+ export declare function isRequestProfilingEnabled(pathname?: string): boolean;
15
+ export declare function runWithRequestProfiling<T>(options: {
16
+ category: string;
17
+ method: string;
18
+ pathname: string;
19
+ projectSlug?: string;
20
+ requestMode?: string;
21
+ }, fn: () => Promise<T>): Promise<T>;
22
+ export declare function profilePhase<T>(name: string, fn: () => Promise<T>): Promise<T>;
23
+ export declare function profileSyncPhase<T>(name: string, fn: () => T): T;
24
+ export declare function finalizeRequestProfiling(status?: number): void;
25
+ export declare function snapshotRequestProfiles(): {
26
+ enabled: boolean;
27
+ last_sequence: number;
28
+ records: RequestProfileRecord[];
29
+ };
30
+ export declare function resetRequestProfiles(): void;
31
+ //# sourceMappingURL=request-profiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-profiler.d.ts","sourceRoot":"","sources":["../../../src/src/observability/request-profiler.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAgCD,wBAAgB,yBAAyB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAIpE;AAED,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,EACD,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAWpF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAWhE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAoB9D;AAED,wBAAgB,uBAAuB,IAAI;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACjC,CAMA;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C"}
@@ -0,0 +1,94 @@
1
+ import * as dntShim from "../../_dnt.shims.js";
2
+ import { AsyncLocalStorage } from "node:async_hooks";
3
+ const storage = new AsyncLocalStorage();
4
+ const records = [];
5
+ const MAX_RECORDS = 200;
6
+ let sequence = 0;
7
+ function roundMs(value) {
8
+ return Math.round(value * 100) / 100;
9
+ }
10
+ function shouldEnableProfiling() {
11
+ return dntShim.Deno.env.get("VERYFRONT_ENABLE_PERF_PROFILING") === "1";
12
+ }
13
+ function shouldProfilePath(pathname) {
14
+ return pathname.startsWith("/bench/") ||
15
+ pathname.startsWith("/api/bench/") ||
16
+ pathname.startsWith("/_vf_styles/") ||
17
+ pathname.startsWith("/_vf_modules/");
18
+ }
19
+ export function isRequestProfilingEnabled(pathname) {
20
+ if (!shouldEnableProfiling())
21
+ return false;
22
+ if (!pathname)
23
+ return true;
24
+ return shouldProfilePath(pathname);
25
+ }
26
+ export async function runWithRequestProfiling(options, fn) {
27
+ if (!isRequestProfilingEnabled(options.pathname)) {
28
+ return await fn();
29
+ }
30
+ const session = {
31
+ ...options,
32
+ startedAt: performance.now(),
33
+ phases: new Map(),
34
+ };
35
+ return await storage.run(session, fn);
36
+ }
37
+ export async function profilePhase(name, fn) {
38
+ const session = storage.getStore();
39
+ if (!session)
40
+ return await fn();
41
+ const startedAt = performance.now();
42
+ try {
43
+ return await fn();
44
+ }
45
+ finally {
46
+ const duration = performance.now() - startedAt;
47
+ session.phases.set(name, roundMs((session.phases.get(name) ?? 0) + duration));
48
+ }
49
+ }
50
+ export function profileSyncPhase(name, fn) {
51
+ const session = storage.getStore();
52
+ if (!session)
53
+ return fn();
54
+ const startedAt = performance.now();
55
+ try {
56
+ return fn();
57
+ }
58
+ finally {
59
+ const duration = performance.now() - startedAt;
60
+ session.phases.set(name, roundMs((session.phases.get(name) ?? 0) + duration));
61
+ }
62
+ }
63
+ export function finalizeRequestProfiling(status) {
64
+ const session = storage.getStore();
65
+ if (!session)
66
+ return;
67
+ const record = {
68
+ sequence: ++sequence,
69
+ category: session.category,
70
+ method: session.method,
71
+ pathname: session.pathname,
72
+ projectSlug: session.projectSlug,
73
+ requestMode: session.requestMode,
74
+ status,
75
+ startedAt: new Date(Date.now() - (performance.now() - session.startedAt)).toISOString(),
76
+ completedAt: new Date().toISOString(),
77
+ totalMs: roundMs(performance.now() - session.startedAt),
78
+ phases: Object.fromEntries(session.phases.entries()),
79
+ };
80
+ records.push(record);
81
+ while (records.length > MAX_RECORDS)
82
+ records.shift();
83
+ }
84
+ export function snapshotRequestProfiles() {
85
+ return {
86
+ enabled: shouldEnableProfiling(),
87
+ last_sequence: sequence,
88
+ records: [...records],
89
+ };
90
+ }
91
+ export function resetRequestProfiles() {
92
+ records.length = 0;
93
+ sequence = 0;
94
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"otlp-setup.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/tracing/otlp-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;4BAS4B;AAC5B,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAalD,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AA2DD,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA4EpD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CASlD;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,OAAO,CAAC,CAAC,CAAC,CAwBZ;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,CAAC,EACX,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,CAAC,CAsBH;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAahE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAW5D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GACtB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAW5C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAqBpF;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACpD,IAAI,CAKN;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACpD,IAAI,CAON;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAG3F;AAED,wBAAgB,eAAe,IAAI;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAQvE;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAG5D"}
1
+ {"version":3,"file":"otlp-setup.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/tracing/otlp-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;4BAS4B;AAC5B,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAalD,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AAsDD,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA4EpD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CASlD;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,OAAO,CAAC,CAAC,CAAC,CAwBZ;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,CAAC,EACX,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,CAAC,CAsBH;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAahE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAW5D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GACtB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAW5C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAoBpF;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACpD,IAAI,CAKN;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACpD,IAAI,CAON;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAG3F;AAED,wBAAgB,eAAe,IAAI;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAQvE;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAG5D"}
@@ -38,10 +38,6 @@ async function ensureApis() {
38
38
  traceApi = await import("@opentelemetry/api");
39
39
  propagationApi = await import("@opentelemetry/core");
40
40
  }
41
- function getServiceName() {
42
- const tracingConfig = getOtelTracingConfig();
43
- return tracingConfig.serviceName || "veryfront";
44
- }
45
41
  function setSpanErrorStatus(span, error) {
46
42
  if (!traceApi)
47
43
  return;
@@ -129,8 +125,8 @@ export function isOTLPEnabled() {
129
125
  }
130
126
  export async function withSpan(name, fn, attributes) {
131
127
  if (!traceApi || !isOTLPEnabled())
132
- return await fn();
133
- const tracer = traceApi.trace.getTracer(getServiceName());
128
+ return fn();
129
+ const tracer = traceApi.trace.getTracer(getConfig().serviceName);
134
130
  const parentContext = traceApi.context.active();
135
131
  const span = tracer.startSpan(name, { kind: traceApi.SpanKind.INTERNAL, attributes }, parentContext);
136
132
  const spanContext = traceApi.trace.setSpan(parentContext, span);
@@ -150,7 +146,7 @@ export async function withSpan(name, fn, attributes) {
150
146
  export function withSpanSync(name, fn, attributes) {
151
147
  if (!traceApi || !isOTLPEnabled())
152
148
  return fn();
153
- const tracer = traceApi.trace.getTracer(getServiceName());
149
+ const tracer = traceApi.trace.getTracer(getConfig().serviceName);
154
150
  const parentContext = traceApi.context.active();
155
151
  const span = tracer.startSpan(name, { kind: traceApi.SpanKind.INTERNAL, attributes }, parentContext);
156
152
  try {
@@ -187,7 +183,7 @@ export function injectContext(headers) {
187
183
  export function startServerSpan(method, path, parentContext) {
188
184
  if (!traceApi || !isOTLPEnabled())
189
185
  return null;
190
- const tracer = traceApi.trace.getTracer(getServiceName());
186
+ const tracer = traceApi.trace.getTracer(getConfig().serviceName);
191
187
  const ctx = (parentContext || traceApi.context.active());
192
188
  const span = tracer.startSpan(`${method} ${path}`, { kind: traceApi.SpanKind.SERVER }, ctx);
193
189
  span.setAttribute("http.method", method);
@@ -197,28 +193,27 @@ export function startServerSpan(method, path, parentContext) {
197
193
  export function endServerSpan(span, statusCode, error) {
198
194
  if (!span || !traceApi)
199
195
  return;
200
- const s = span;
201
- s.setAttribute("http.status_code", statusCode);
196
+ const otelSpan = span;
197
+ otelSpan.setAttribute("http.status_code", statusCode);
202
198
  if (error) {
203
- s.setStatus({ code: traceApi.SpanStatusCode.ERROR, message: error.message });
204
- s.recordException(error);
205
- s.end();
199
+ setSpanErrorStatus(otelSpan, error);
200
+ otelSpan.end();
206
201
  return;
207
202
  }
208
203
  if (statusCode >= 400) {
209
- s.setStatus({ code: traceApi.SpanStatusCode.ERROR });
210
- s.end();
204
+ otelSpan.setStatus({ code: traceApi.SpanStatusCode.ERROR });
205
+ otelSpan.end();
211
206
  return;
212
207
  }
213
- s.setStatus({ code: traceApi.SpanStatusCode.OK });
214
- s.end();
208
+ otelSpan.setStatus({ code: traceApi.SpanStatusCode.OK });
209
+ otelSpan.end();
215
210
  }
216
211
  export function setSpanAttributes(span, attributes) {
217
212
  if (!span || !traceApi)
218
213
  return;
219
- const s = span;
214
+ const otelSpan = span;
220
215
  for (const [key, value] of Object.entries(attributes))
221
- s.setAttribute(key, value);
216
+ otelSpan.setAttribute(key, value);
222
217
  }
223
218
  export function setActiveSpanAttributes(attributes) {
224
219
  if (!traceApi)
@@ -231,8 +226,8 @@ export function setActiveSpanAttributes(attributes) {
231
226
  }
232
227
  export async function withContext(spanContext, fn) {
233
228
  if (!traceApi)
234
- return await fn();
235
- return await traceApi.context.with(spanContext, fn);
229
+ return fn();
230
+ return traceApi.context.with(spanContext, fn);
236
231
  }
237
232
  export function getTraceContext() {
238
233
  if (!traceApi)
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/src/prompt/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAIvD,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA4BnD"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/src/prompt/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQvD,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA2BnD"}
@@ -1,18 +1,20 @@
1
1
  import { createError, toError } from "../errors/veryfront-error.js";
2
2
  import { COMMON_BLOCKED_PATTERNS } from "../agent/middleware/security/validator.js";
3
+ const BLOCKED_PROMPT_PATTERNS = COMMON_BLOCKED_PATTERNS.promptInjection;
3
4
  export function prompt(config) {
5
+ const { content, description, generate, suggestion } = config;
4
6
  const id = config.id ?? generatePromptId();
5
7
  return {
6
8
  id,
7
- description: config.description,
8
- suggestion: config.suggestion,
9
+ description,
10
+ suggestion,
9
11
  async getContent(variables) {
10
- const vars = variables ?? {};
11
- if (config.content) {
12
- return interpolateVariables(config.content, vars);
12
+ const resolvedVariables = variables ?? {};
13
+ if (content) {
14
+ return interpolateVariables(content, resolvedVariables);
13
15
  }
14
- if (config.generate) {
15
- return config.generate(vars);
16
+ if (generate) {
17
+ return generate(resolvedVariables);
16
18
  }
17
19
  throw toError(createError({
18
20
  type: "agent",
@@ -26,11 +28,7 @@ function generatePromptId() {
26
28
  return `prompt_${Date.now()}_${promptIdCounter++}`;
27
29
  }
28
30
  function sanitizeVariableValue(value) {
29
- let sanitized = value;
30
- for (const pattern of COMMON_BLOCKED_PATTERNS.promptInjection) {
31
- sanitized = sanitized.replace(pattern, "");
32
- }
33
- return sanitized;
31
+ return BLOCKED_PROMPT_PATTERNS.reduce((sanitizedValue, pattern) => sanitizedValue.replace(pattern, ""), value);
34
32
  }
35
33
  function interpolateVariables(template, variables) {
36
34
  return template.replace(/\{(\w+)\}/g, (match, key) => {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/src/prompt/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIhE,cAAM,mBAAoB,SAAQ,oBAAoB,CAAC,MAAM,CAAC;IAC5D,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAc5E,IAAI,IAAI,MAAM,EAAE;CAGjB;AAED,eAAO,MAAM,cAAc,qBAAyC,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/src/prompt/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAahE,cAAM,mBAAoB,SAAQ,oBAAoB,CAAC,MAAM,CAAC;IAC5D,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAM5E,IAAI,IAAI,MAAM,EAAE;CAGjB;AAED,eAAO,MAAM,cAAc,qBAAiD,CAAC"}
@@ -1,20 +1,22 @@
1
1
  import { createError, toError } from "../errors/veryfront-error.js";
2
2
  import { ProjectScopedRegistryManager } from "../ai/registry-manager.js";
3
3
  import { ScopedRegistryFacade } from "../ai/registry-facade.js";
4
- const promptManager = new ProjectScopedRegistryManager("prompt");
4
+ const promptRegistryManager = new ProjectScopedRegistryManager("prompt");
5
+ function createMissingPromptError(id) {
6
+ return toError(createError({
7
+ type: "agent",
8
+ message: `Prompt "${id}" not found`,
9
+ }));
10
+ }
5
11
  class PromptRegistryClass extends ScopedRegistryFacade {
6
12
  getContent(id, variables) {
7
- const promptInstance = this.get(id);
8
- if (!promptInstance) {
9
- throw toError(createError({
10
- type: "agent",
11
- message: `Prompt "${id}" not found`,
12
- }));
13
- }
14
- return promptInstance.getContent(variables);
13
+ const registeredPrompt = this.get(id);
14
+ if (registeredPrompt)
15
+ return registeredPrompt.getContent(variables);
16
+ throw createMissingPromptError(id);
15
17
  }
16
18
  list() {
17
19
  return this.getAllIds();
18
20
  }
19
21
  }
20
- export const promptRegistry = new PromptRegistryClass(promptManager);
22
+ export const promptRegistry = new PromptRegistryClass(promptRegistryManager);
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/prompt/schemas/prompt.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;iBAO7B,CAAC;AAGH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"prompt.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/prompt/schemas/prompt.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;iBAO7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -7,5 +7,3 @@ export const PromptConfigSchema = z.object({
7
7
  /** Example message text to use as a chat suggestion */
8
8
  suggestion: z.string().optional(),
9
9
  });
10
- // Note: Prompt interface with getContent method stays as TypeScript interface
11
- // since it includes a method that returns a Promise
@@ -1,4 +1,4 @@
1
- export type { PromptConfig } from "./schemas/index.js";
1
+ export type { PromptConfig } from "./schemas/prompt.schema.js";
2
2
  export interface Prompt {
3
3
  id: string;
4
4
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/prompt/types.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACtE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/prompt/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk-adapter.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/ai-sdk-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AA8ExC;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAoHhE"}
1
+ {"version":3,"file":"ai-sdk-adapter.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/ai-sdk-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AA8ExC;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CA6GhE"}
@@ -10,8 +10,8 @@
10
10
  import { generate, generateStream } from "./local-engine.js";
11
11
  import { DEFAULT_LOCAL_MODEL } from "./model-catalog.js";
12
12
  import { serverLogger } from "../../utils/index.js";
13
- import { createError, fromError, toError } from "../../errors/veryfront-error.js";
14
- import { isLocalAIDisabled } from "./env.js";
13
+ import { fromError } from "../../errors/veryfront-error.js";
14
+ import { throwIfLocalAIDisabled } from "./env.js";
15
15
  const logger = serverLogger.component("local-llm");
16
16
  /** Default maximum new tokens for local model generation */
17
17
  const DEFAULT_MAX_NEW_TOKENS = 512;
@@ -99,12 +99,7 @@ export function createLocalModel(modelId) {
99
99
  // Note: getTransformers() in local-engine.ts also checks this, but we need
100
100
  // the check here too because doStream creates a ReadableStream wrapper and
101
101
  // errors inside it would be swallowed as in-band stream errors.
102
- if (isLocalAIDisabled()) {
103
- throw toError(createError({
104
- type: "no_ai_available",
105
- message: "Local AI disabled via VERYFRONT_DISABLE_LOCAL_AI environment variable.",
106
- }));
107
- }
102
+ throwIfLocalAIDisabled();
108
103
  const messages = convertPrompt(options.prompt);
109
104
  const genOptions = toGenerateOptions(options);
110
105
  logger.debug(`[local] doStream: ${messages.length} messages → ${resolvedId}`);